这篇文章是DannoFerrin和我在DevconV上的谈话的粗略记录。文章中讨论了社区在过去一年中提出的一些EIP流程改进建议,并且将其纳入到一个统一的框架中用来指导我们如何让以太坊更顺利地升级。我们把它称之为“火车站模型”。
摘要
我们根据过去一年来社区提出的几点建议,提出了一种协调以太坊网络升级的新方法。具体来说,我们认为:
升级应每年进行两次,以向社区提供明确的可预期性;
升级应该只包含准备好发布的以太坊改进提案,任何仍在讨论中的改进内容都应该放到下一个升级,而不应延迟当前的升级;
以太坊改进提案应由工作组以独立的方式制定,并且只有在完成后才应考虑纳入升级;
以太坊改进提案和工作组应该有一个拥护者或者代表,用来联络社区,解答社区对相关EIP的疑问。
如果你想更深入地讨论这个提案,请前往EthMagicians论坛的这个帖子。
让我们先简单谈谈以太坊的升级历史。最初的几次网络升级,包括前沿,家园,拜占庭和君士坦丁堡,有点像1950年代的家庭度假,爸爸妈妈会把车子行李打理好,我们会跳上后座,或许还会带上我们最喜欢的玩具,总之他们会把我们安全地送到目的地。这是一个过去升级的简单类比,但是对于这些升级,核心开发人员编写了大部分的以太坊改进提案,而以太坊社区足够小,以至于他们可以有组织地,有计划地与社区沟通,使得分叉和升级顺利进行。
观点:如果美国在CBDC上落后,国际金融体系会“断裂”:金色财经报道,大西洋理事会地缘经济中心主任Josh Lipsky认为,虽然美元目前没有任何风险,但在很长一段时间内(三年至七年),国际金融体系可能会出现断裂。Lipsky补充说,这并不一定意味着另一种货币将取代美元,但它确实表明“不同交易方式的真正分裂,而不仅仅是基于美元的交易”可能会随之而来。
Lipsky表示,在未来两年内,美国可以建立一个“网络安全、保护隐私和提供近乎即时结算”的CBDC模式,甚至可以成为“国际标准制定者”,促使其他国家效仿。(CoinDesk)[2022/10/7 18:41:36]
….但也有他们忙不过来的时候!少数那么几次,我们不得不赶着去救火。在那些场合,我们基本上是全民皆兵。无论是上海举办Devcon2期间发生的网络攻击事件,TheDAO导致的以太坊分叉事件,还是君士坦丁堡升级前最后一刻发现的弱点,社区总是能团结一致修复bug,解决问题同时让用户将他们的节点及时升级。
-一条以太坊色的瀑布-
直到现在的伊斯坦布尔升级。在开始计划升级的时候,我们已经很好地掌握了我们的工作流程,并决定更彻底地计划升级的流程。我们为升级过程的每一个阶段都设定了一个时间节点,从以太坊改进提案提出到最后主网升级都做了详细规划。在我们有所察觉之前,我们一直都处在一种以太坊瀑布模型中!
正如我们所知,瀑布模型不适用于软件开发。但是,我们还是将它用于伊斯坦布尔升级过程。我们原计划在一月份开始,花几个月的时间审议以太坊改进提案,并将5月中旬设定为以太坊改进提案最后的接受期限,然后花两个月完成新客户端的部署,估计结束要到7月中旬。做完以上所有的这些,预计8月中旬可以完成测试网升级,10月中旬完成主网升级,也就是说在以太坊开发者大会两周前完成。
观点:区块链将赋能电力新业态、新模式及新服务:2020电力区块链技术应用论坛16日在京举行。与会人士表示,依托其去中心化的特征与优势,区块链有望在电力行业新业态、新模式、新服务中发挥重要作用。中国电力发展促进会常务副会长兼秘书长游敏表示,区块链技术与电力行业的融合应用,是能源革命与数字革命融合发展的重要内容。目前我国把区块链作为核心技术自主创新的重要突破口,加快推动区块链技术和产业创新发展。当前,广大电力企业正积极探索区块链技术在电力行业市场化改革、数字化转型中的应用落地。未来,区块链技术将在电力行业新业态、新模式、新服务的探索与建设中,为落实能源安全新战略、实现电力行业高质量发展起到积极的促进作用。(新华财经)[2020/9/17]
然而,这些计划好的时间节点有多少真正按时完成呢?只有一个,就是刚开始的时候。
很多事情在执行的过程中出现了差错。其中一个更重要的原因是,自从上次升级以来,以太坊社区已经有了很大的发展,到了开始审查伊斯坦布尔升级提案的时候,核心开发人员不得不将30多个以太坊改进提案打包在一起阅读,而不是只有少数几个提案需要评议!
这大大拖慢了整个流程。数量多还只是一方面,重点是它们处于完全不同的开发阶段,还有一些相互依赖或相互竞争的以太坊改进提案。
-因为要在幻灯片中使用特定的字体,所以我们没法用一页把所有的伊斯坦布尔EIP列出来……-
观点:YFII等去中心化产品的优势在于没有准入许可和隐私危机:Primitive Ventures创始合伙人万卉(Dovey Wan)在微博表示,二姨夫是一个狭义定义上的基于智能合约的去中心化被动投资平台,二姨夫这类产品的优势在于:
1. 透明和无第三方资金托管,可以在链上清晰看到每一步的钱都是怎么用的,随时赎回。08年的金融危机和前两年各种P2P暴雷,就是因为中心化金融产品是一个黑盒。
2. 没有准入许可,没有隐私危机。中心化金融的准入许可和手续繁多,并且有极高的隐私维护成本。并且中心化金融就是利用手里的用户隐私数据做了很多定价上的操作,我们常说的价格歧视,这个价格歧视可能是因为信用差距,也可能是因为其他的差异。去中心化相当于让每笔钱都在同一个平台上,每个地址都是平等的 ,每笔钱和每笔钱享受一样的服务。
3. 现在无法自动化的瓶颈是无法做链上的合约审计,保证合约安全是可以去做合约交互的第一步。Formal Verification等常用的合约审计手段暂时还无法上链,而且逻辑漏洞很多时候也只能靠人脑,等AI编程成熟,外加基础链的性能大幅度提高,预言机升级多N个版本。可能链上合约审计才有可能实现..[2020/8/26]
当我们得到以太坊伊斯坦布尔最终改进提案列表时,已经是夏天的中期了,按照本来的计划,这时候我们应该要把客户端实现做完了。当这种情况发生时,很多人意识到这个开发过程远远不及预期,关于我们如何使伊斯坦布尔之后的柏林升级运行得更加顺畅,已经有人提出了很多建议。我们现在将讨论一些其中的建议,然后将它们合并到我们所称的“火车站模型”中。
-“柏林”会天气晴好、风景明媚-
以太坊1.X会尝试改变EIP开发流程
在伊斯坦布尔升级期间,第一个尝试解决开发流程问题的人是AlexeyAkhunov。他写了一篇博文,描述了我们可以如何通过组建工作组、使用ReTestEth来增加为以太坊协议改进作贡献的成员数量,同时减轻现有核心开发者的负担。在“pre-1.x”的改进流程中,提交的以太坊改进提案将主要由Geth,Parity和Aleth的客户端开发人员实现,在这种情况下,以太坊改进提案将由这些团队协同改进。一旦客户就以太坊改进提案的最终规范达成一致,就可以生成参考测试。Aleth是唯一可以生成测试的客户端,因此为了生成这些测试,所有以太坊改进提案都要在Aleth中得到实现。EF的测试团队随后将运行这些测试,并编写所有客户端都要运行的一致性测试。
观点:印度或是DeFi领域的巨大市场,但需解决流动性和监管问题:专家称,印度有望成为亚洲DeFi领导者,但有报道称印度政府可能对加密货币实施新禁令,可能会扼杀该行业发展。
尽管DeFi在印度处于起步阶段,但行业领袖认为,DeFi对印度未来的繁荣至关重要。对于数亿名无法获得传统金融服务的印度人来说,DeFi可以提供低成本的替代方案进行借贷,获取信贷和借款。
受新冠疫情影响,业内人士称,DeFi可能比以往任何时候都更重要,那些急需信贷或贷款维持生存的企业时间越来越紧迫。Nasscom调查显示,70%的印度初创企业的资金只能维持运营不到三个月。
此外,通过取消传统银行等中介机构,DeFi或许能够帮助海外印度工人以更低的成本将钱汇回家。Nuo Network联合创始人Siddharth Verma称,DeFi缺乏流动性和未解决的监管问题仍然是印度主流采用的障碍。
根据2017年全球Findex数据库,印度仍有约1.9亿人没有获得传统银行金融服务,DeFi支持者称替代融资服务可以填补这一缺口。CoinDCX联合创始人Neeraj Khandelwal称,当印度没有其他选择时,DeFi将成为开发者和印度社区的下一步行动。(Decrypt)[2020/6/25]
-幻灯片上的图片取自Alexey的原帖-
这个过程有几个瓶颈:主要的客户端实现团队,Aleth生成引用测试,EF的测试团队所编写的一致性测试。为了提升工作的效率,Alexey提出了设立工作组的想法。这些工作组将由有共同改善以太坊愿望的一部分人组成。他们可以从以太坊改进提案的早期阶段着手,帮助完善它,使其或多或少接近或者达到最终的版本。这样,客户端开发人员将看到成熟的以太坊改进提案,至少可能有一个初步的实现,大多数相关的开放式问题也已经得到了解答。
观点:BTC长期看涨,但面临7000美元的短期阻力位:Global Macro Investor首席执行官Raoul Pal表示,比特币的价格趋势在短期内仍不明朗,7000美元是比特币面临的巨大阻力。然而Pal也指出,从长远来看,BTC的宏观图表仍然保持高度乐观,因为其呈现了一个稳定的长期风险回报。(CryptoSlate)[2020/4/2]
除此之外,由EF测试团队开发的新测试工具retesth将使工作组能够为任一客户端生成所需的EIP参考测试。因此,这一工作组框架不仅会使以太坊改进提案的完善过程更加去中心化,也会减少测试方面的瓶颈和压力。
eEIP拥护者
在伊斯坦布尔升级的准备过程中,所有核心开发者开电话会议的时候,没有人谈论特定的以太坊改进提案是常见的现象,这不仅减缓了以太坊改进提案的发展进度,而且,在需要讨论一些相互依赖或相互竞争提案的时候,会明显降低整个升级过程的进度。
解决这个问题的一个简单方法由AlexBeregszaszi在以太坊1.x柏林会议上提出,即要求在以太坊改进提案讨论中要选举出一个拥护者。
-感谢MP和Boris协助举办了讨论这些事项的研讨会-
拥护者的作用是让其成为一个与以太坊改进提案相关的联络节点,他们作为以太坊改进提案的讨论协调员,负责确保升级过程顺利向前推进并确定合适的人参与到了合理的讨论中。他们并不负责所有的工作也不必然要自己去做实现,但他们应该是以太坊改进提案执行过程中的关键人物,并致力于在社区内与成员充分沟通升级的过程。
以EIP为中心的分叉
另一个想法,最近由EF团队的MartinHolstSwende提出,是调整以太坊网络升级过程,使其更加以EIP为中心。与其以升级为中心、努力确保所有以太坊改进提案在升级的各个阶段都步调一致,不如集中精力让各EIP成熟,并且仅为成熟、可发布的EIP计划升级。如果有人想让以太坊改进提案从草稿阶段直至成功在主网激活,下面是他们在这个框架下的实现方式:
步骤1:得到ACD的肯定假定以太坊改进提案存在,ALCORIEDEV将初步决定以太坊改进提案是否“初步接受”。“初步接受”是指主要客户端和生态系统利益相关者对该以太坊改进提案持有积极的态度,愿意接受的PR以将EIP整合到代码库中并开始测试……但这一阶段不会指定激活的实际区块高度。
这种“初步接受”的状态对于像EF、ConsenSys甚至MolochDAO这样的资助协议升级的组织来说也是一种有用的信号机制。资金资助可以分为几个阶段,以确保大多数资金都花在了促进主网上线的计划上。
步骤2:执行一旦ACD给出了明确的方向,开发人员和其他以太坊改进提案作者就可以着手实现,并针对客户端发布更新。如果实现的功能被合并到主要的客户端中,这个里程碑就完成了。
步骤3:测试案例由于该特性现在可以在客户端中“激活”,因此现在可以为该特性生成跨客户端测试,测试案例应该包含happy-path测试和quirk/edgecase测试,此步骤应交给不仅对该EIP有深入了解还对EVM有了解的人一起执行,以求最大限度的降低出错的可能性。到了这个阶段,还应进行安全审查,审查项目应以“安全考虑”的名义反馈至以太坊改进提案,审查的重点还应放在寻找边缘问题和容易被忽略的问题。这一阶段的完成以测试团队的认可为标志。
步骤4:ACD最终接受此时,ACD可以再次讨论和评估以太坊改进提案的实现、副作用和测试案例等。如果一切正常,ACD可以直接决定何时激活以太坊改进提案。“那么,让我们在一个月后在测试网上激活这个以太坊改进提案,两个月后在主网上激活这个以太坊改进提案。”所有的客户端都将在下一个版本中包含升级的内容,从现在起一周内,还可以从实际出发,通过命令行标志推迟以太坊改进提案。如果多个以太坊改进提案同时到达步骤4,ACD可以决定同时推出两个或三个以太坊改进提案,除非有人担心以太坊改进提案可能有内部之间的依赖/耦合。
为了直观地表示这个新过程,JamesHancock绘制了一个图形,显示了一个以太坊改进提案将如何通过上面提到的每个阶段直至在主网激活。
-谢谢JamesHancock画的这么直观清楚的图片!-使用这个框架将允许每个以太坊改进提案按自己的步调推动,因此可以减少升级过程中争论时间和讨论的范围,同时还能减少测试团队的压力,因为这个流程相较原来更可预测,测试团队就不用在截止日前手忙脚乱地集中测试了。
1872号以太坊改进提案
另外一个平滑以太坊网络升级过程的建议是1872号提案,是由DannoFerrin提出。随着越来越多的公司依赖以太坊作为其基础设施的核心部分,我们应该致力于使网络升级更具可预见性。这一提案建议以太坊采用默认的网络升级时间表,类似于微软固定周二发布补丁的做法。这样,运行以太坊节点的人就知道他们大概率该在什么时候监视潜在的升级。简而言之,这一提案建议我们这样做:
让主网升级默认发生在一个月的第三个星期三,最好是在1月、4月、7月或10月,以避开大多数主要的美国和欧洲假日。
如果升级不能如期推出,就推迟到下一个月的第三个星期三
目标是从现在开始,让主网每6个月升级一次
无论何时何地只要发生问题,即刻解决
这一EIP不会限制我们在意外情况发生时的处理能力,只是比较强调默认的周期性,比如6个月一次的固定升级,以减少市场对升级不确定性的担忧,同时减少核心开发者在升级过程中的沟通时间。它还为我们当前的方法和“一个以太坊改进提案,一次升级”方法之间提供了“中间地带”。
火车站模型
结合上述建议的各个部分,我们得出了一个更接近火车站运营方式的流程,而不是我们目前的“更接近机场运营方式”的流程。
当前,我们的升级类似于购买机票的工作方式:日期和时间是固定的,不管怎样,我们都会尽量让每个人都上飞机,哪怕会因为帮他们托运行李而延误。
我们相信,如果转向这样一种模式:人们手拿行李出现在火车站,准备出发,然后乘下一班有座的火车离开,这将有助于使网络升级比现在更加顺畅。
具体来说,火车站模型主要有四个部分。首先,各以太坊改进提案应该独立进行。工作组可以推动提案向前推进,并且只有当一个以太坊改进提案处于准备好投入使用的状态时,我们才会给它安排网络升级。
第二,以太坊改进提案和工作组需要拥护者。这些拥护者应作为以太坊改进提案的代表和默认联络点。他们负责将提案在AllCoreDevs或者其他论坛与社区沟通,他们可以是也可以不是EIP的实际实现者。
第三,完成了什么就发布什么。当网络要升级的时候,把所有已经准备好发布的EIP都放到升级中。任何仍在讨论中的提案都不会安排升级。类似地,如果提案在最后一分钟出现问题,我们也会将其转移到下一次升级,而不是推迟整个升级。
第四个也是最后一个,升级每年进行两次。通过设定每6个月的升级目标,我们可以减少在以太坊改进提案上工作的团队的不确定性和延宕性。这样,如果某次特定的升级中没有包含某些内容,那么这些内容在几个月后的下一次升级就会出现。虽然升级日期是提前选择的,但测试网的特定升级区块是在主网升级日期之前8-10周确定的,而主网特定升级区块是在升级日期之前4-6周确定的。
.……就在这里!我们希望这种方法能够为以太坊提供更高效、更可预测和更快速的网络升级。特别感谢AlexeyAkhunov、AlexBeregssaszi、MaríaPaulaFernández、BorisMann、MartinHolstSwende、JamesHancock和其他所有对改进以太坊升级方式提出建议的人。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。