
一年多前,软件开发人员兼以太坊基金会(Ethereum Jameson Foundation)的成员哈德逊•詹姆森(Hudson Jameson)宣布了推出Metropolis的计划。在这段时间里,开发人员一直对其最后阶段君士坦丁堡(Constantinople,简称君士坦丁堡)的日期保密。
9月14日,在该团队每两周一次的视频通话中,社区终于公布计划中的硬叉将于11月正式发布。然而,由于10月13日新更新测试期间发生的“共识问题”,开发商决定将君士坦丁堡推迟到2019年1月。
在通往验证的路上
以太坊是一个开发去中心化应用程序(DApps)的平台,为了使网络的功能更好地满足这一目的,在开发过程中需要进行了四次主要的升级(Frontier前沿,Homestead家园,Metropolis大都会,Serenity宁静。以太坊目前处于第三阶段——Metropolis的Byzantium(拜占庭)版本)。
以太坊基金会的最终目标是遵循Vitalik Buterin的愿景,从工作证明协议(PoW)过渡到权益政协协议 (proof -of-Stake),预计该网络将解决与挖矿和可扩展性相关的问题。
虽然这一转变计划在最终升级“宁静时期”时进行,但准备工作几乎是在启动以太坊主网之后立即开始。路线图被分为五个主要部分,拜占庭和君士坦丁堡是一个被称为大都会的阶段的一部分。

什么是君士坦丁堡
即将到来的君士坦丁堡硬分叉包括五个不同的以太坊改进建议(循环)从POW平滑过渡到PoS。一旦启动,他们将从根本上改变以太坊,且有一系列新的升级, 比如防止向后兼容性,即节节点必须与整个系统同步更新,或者作为独立的区块链实体继续运行。

君士坦丁堡在置后“困难炸弹”的关键作用
此外,君士坦丁堡硬分叉还包括了对以太坊潜在的矿业经济政策的改变和“困难炸弹”的延迟,旨在使新区块的生产更加复杂和不利于挖矿。这是一组用于触发所谓的“以太坊冰河时代”的程序代码,其主要目的是使采矿无利可图,并促进向PoS的过渡。
以太坊冰河期的设计是为了确保所有参与者在使用硬分叉后都能切换到新的网络。炸弹逐渐使挖矿复杂化,增加了挖矿时间。随着Casper更新作为宁静阶段里程碑的一部分引入,且复杂性预计会越来越高。
矿商将无法与复杂性挖矿路径相匹配:购买新设备及其通过减少电费等经济上的措施依然是无利可图的。因此这个网络将没有矿工,并将“冻结”——即冰河时代将到来。这枚炸弹是在2015年9月以太坊网络启动后不久推出的想法。
“困难炸弹”延迟将包括在君士坦丁堡,以保持系统的稳定,使网络保持当前的状态。当Ethereum接近权益证明时,减少区块奖励也会降低矿机驱动的链条断裂的可能性。
君士坦丁堡的五个元素
代码优化和网络稳定是君士坦丁堡扩展路线图的主要目的,通过五个eip的实现可以实现。这些是由以太坊基金会成员在不同时期开发的标准,包括核心协议规范、客户端api和合同标准。
EIP 145
2017年2月13日
Alex Beregszaszi和Pawel Bylica提出了一项改进方案,引入了本地位移位作为一种更有效的信息处理方法Ethereum区块链。
EIP 1014
2018年4月20日
由Vitalik Buterin创建的升级旨在提供基于“非链”事务的更好的扩展解决方案。它允许与尚未在链上存在但可信赖的地址进行交互。
EIP 1052
2018年5月2日
由核心开发人员Nick Johnson提出的一项建议,允许在Ethereum进行大规模代码执行的优化。
EIP 1234
2018年7月19日
EIP 1234是由Parity发布经理Afri Schoedon写的,它的作用是将方块挖掘奖励从3ETH减少到2ETH,并将“困难炸弹”延迟12个月。这些变化主要是针对网络稳定和更顺利的准备,以执行下一个升级,逐步远离POW。
EIP 1283
2018年8月1日
基于EIP 1087,此升级主要通过减少与大多数实现工作方式不匹配的过度GAS成本而使智能合约开发人员受益。
简而言之,这5个eip都对以太坊产生影响,影响了在君士坦丁堡最终发行后仍需管理的一些更广泛的目标和计划。Peter Szilagyi是一个很受欢迎以太坊项目Geth的首席开发者,他说:“eip大部分已经完成。”
硬分叉故障时间线
升级计划原定于10月14日在Ropsten测试网络上启动,但出乎意料地提前了24小时。
这场测试在周六的世界时15:21分左右开启,比预期提前了大约1天,而哈希能力和Ropsten上的阻塞时间是出了名的难以预测,在开启之后,分叉被冻结,没有新的区块被开采。
- Lane Rettig (@lrettig) 2018年10月15日
首先,硬分厂在第42999999号街区停了两个小时,表明君士坦丁堡没有被矿工充分激活。即使在经过长时间中断后,测试网络块恢复处理,但随后也依然没有看到任何新的区块事务。
Etherscan上的零交易记录,2018年10月21日。图片来源:Etherscan
Parity Schoedon的开发人员Afri Schoedon是第一个在自己的Twitter上发布更新的人。他说发生了一个不幸事情是,出现了“共识”问题,使Geth、Parity和其他负责维护和升级网络的Ethereum客户端之间形成了三方分叉。问题是,有10个开发团队参与eip的开发和测试的实现,并不是所有的开发团队都能按时准备发布。

图片来源:Github
10月19日,在失败的尝试6天后,开发者们举行了一次视频电话会议,Schoedon对此进行了更深入的分析。
他指出,由于偏离了预定的上线时间,很多Ethereum社区成员和矿工对此毫无准备,导致了链条的去同步化。
Schoedon解释说,即使在430万块区域被埋之后,客户端“使用了错误的配置”,并且遵循了拜占庭协议,这也是今天以太坊主网的基础。
在对Ropsten硬分叉的事后分析中,Parity开发人员又提到了一些要点,他写道:
最近加入了哈希算力,减少了出块时间,并导致这个硬叉发生的时间远远早于预期周六,这是硬分叉最糟糕的时间。
硬分叉发生在Geth发布后6天,Parity以太坊发布后1天,用户没有足够的时间升级。
没有可用的fork监视器,只有http://ropsten- stats. parity.io,但这个上面也没有透露不同链条的细节。
根据Schoeden的观点,推迟君士坦丁堡的修建可能是一个合理的决定,因为在上述低效状态下到达君士坦丁堡会产生更多的问题,而不是解决问题:
“我一直觉得我们在赶时间,我认为我们应该深呼吸一下,看看会发生什么……在君士坦丁堡的测试准备好之前,我不太愿意谈论分叉日期。”
在会议中,以太坊基金会团队进一步讨论了在以太坊官方GitHub账户上公布的君士坦丁堡硬分叉情况。下次电话会议将于11月9日举行,因为DevCon会议将于10月30日至11月2日举行。
在会议结束时,Afri Schoedon告知社区,最早在明年1月底之前不会出现主流网络硬分叉。他还澄清说,以太坊基金会的开发者在完成测试和主网升级之间至少需要6周的时间。
不是更快,而是更安全
在开发人员分析问题的同时,也提出了各种改进建议。它们包括提供更清晰的eip规范,包括伪代码,让这些更简单伪代码,易于审查;当来自不同开发人员组的开发人员互相检查对方的代码时,对变更进行跨客户的审查。大家一致同意的是,最好是“行动不要更快,但要更安全”。
Schoedon对核心开发人员面临的越来越大的压力表示了担忧,他没有排除整个以太坊项目的潜在风险,并向用户保证延迟是最明智的决定。
社区的反应
Hudson Jameson创建了一个专门的Reddit帖子,用于与过于担忧的用户进行公开对话。在这里,开发人员遇到了批评和指责信息,这些信息的总量已经超过了100条。
你不知道这个领域的竞争。这种巨大而无用的硬件延迟对以太坊项目的可信性产生了非常负面的影响。- Produde (@Dudtrade) 2018年10月20日
“按照这个速度,我们将在2030年得到Casper。”“@TrueValueCapital
Schoedon和Jameson也试图让观众停止对开发者施压和催促他们的时候,有一些人表现出了理解和支持,甚至开玩笑说矿工们可能会因为发布的延迟而高兴。
“我宁愿他们推迟到最后一刻,就像去年那样需要3个紧急补丁。慢慢来,好好做。软件可能很困难。“@potatodotexe
“只要继续做你需要做的事情,以确保安全,感谢所有伟大的工作。”“@clarkster
Hudson Jameson向《电子新闻报》报告说,君士坦丁堡的主网络版本据称定于明年1月发布,而“硬叉”tesnet的发布日期尚未确定。据Vitalik Buterin说,在此期间,仍然需要跟踪君士坦丁堡的进展,并监视以太坊向PoS算法的过渡,这是升级网络所必需要做的。
我认为我的观点从来都没改变过,(I)每天都会有现存区块,包括ETH和BTC (ii) PoS是必要的。不知道为什么会有人感到惊讶。2018年9月4
来源:Cointelegraph
往期回顾


