编者注:本文为AlexeyAkhunov介绍以太坊1.x理想开发流程的一篇文章,既总结了现有开发流程中的一些局限,也列举了新开发流程可能会面临的一些挑战。大家都知道公链治理很难,但作为外围人员,通常也并不清楚其中的流程到底是什么样的,我们能做的也只有尽可能展现他们的工作氛围,然后为值得信任的开发者争取他们应得的支持。
题目中所说的“流程”指的是修改以太坊规则的流程。关于规则的修改情况,下面有几个例子:
新增EVM操作码
更改GasSchedule
取消某些规则
更改某些数据的含义和某些操作的作用
免责声明
我不想在行文过程中涉及太多的细节,因此下面的插图省略了一些重要的团队和人员,并且有意无意地省略了整个流程中的一些步骤。如果你觉得我遗漏了很重要的内容,请告诉我,在此先谢过了。你也可以在我给出的流程上进行修改,重新发布你自己的一版!
数据:Gains Network总锁仓量为5100万美元:金色财经报道,defillama数据显示,截至目前,Gains Network总锁仓量为5106万美元,其中Arbitrum上为3484万美元,Polygon上为1623万美元,最近一个月增长率为11.33%。
此前报道,去中心化交易所Gains Network在部署近一个月后在Arbitrum区块链上的交易量已超过15亿美元。[2023/3/21 13:16:01]
我个人总结的流程
网络中的人产生了修改以太坊的想法,于是写了EIP。大多数想法到这一步就没下文了。
如果三个客户端实现团队之一注意到了一些EIP,就会把它们挑出来创建原型,并做出进一步评估。我在图中列出了三个实现团队,每个都有其特殊性和重要性:
Ref.Finance已重启上线并拟在区块高度45195764处快照分叉出新REF代币:NEAR生态去中心化交易所Ref.Finance8月21日在主网完成部署测试,已于UTC时间8月23日凌晨12点重新启动上线。与此同时,Ref.Finance发布社区讨论,计划在区块高度45195764处进行快照,从而分叉出新的REF代币,且新的REF代币将继承旧REF代币所有当前和未来的属性,包括作为Ref exchange的白名单代币、作为平台的主要流动性激励以及作为最终的治理代币。按计划REF的持有人余额将恢复到区块高度45195764处的数据,在此期间REF的持有人将直接接收新的 REF 代币,无需采取任何行动。同时Ref.Finance的DAO将烧毁其控制的旧REF代币供应的97.5%,还将创建新的REF-NEAR交易对并增加流动性,以支持新的REF代币。
此前报道,8月14日NEAR生态去中心化交易所Ref.Finance遭遇攻击,占REF总流通供应量40%的约100万枚REF受到影响,截止目前只有25万枚REF得到返还。[2021/8/23 22:31:12]
Parity?——第二大常用实现,不过矿池明显用的最多。
主力大单跟踪:OKEx主力昨日开多4789.51万美元,获利超过10%:AICoin PRO版K线主力大单跟踪显示:6月1日全天,OKEx BTC当季合约累计有18笔,共计4789.51万美元的大额委托买入单成交,买入均价9572.49美元。根据AI-PD-持仓差值指标,这些大单成交过程中,该指标大都是较高绿柱,即持仓量增长明显,可判断为买入开多。 比特币今晨放量拉升至最高10548美元,主力开多获利超过10%。[2020/6/2]
Geth(go-ethereum)?——?第一大常用实现。
Aleth(原生C实现)?——目前唯一一个能够“生成”共识测试的实现。
简而言之——如果上述三个团队有意向为某个EIP创建原型,这个EIP就有可能实现。
公告 | Kraken将于1月23日0:30上线Algorand(ALGO):据官方公告,Kraken将在UTC时间1月22日14:30(北京时间1月23日0:30)开放Algorand(ALGO)存取款业务。随后将开放交易对ALGO/USD、ALGO/EUR、ALGO/XBT和ALGO/ETH。初始交易限额最少为50枚ALGO。[2020/1/22]
在拜占庭硬分叉到君士坦丁堡升级这段时间内,客户端实现必须完成大量工作,确保其性能能够负担增多的交易量和状态量。这可能就是君士坦丁堡升级实际上没有做出什么重大改变的原因之一,因为这需要投入大量研究和/或实现。
原型实现通常会让EIP变得更加细化和完善,有时候会因为出现问题而被放弃。原型实现还会降低创建测试向量——描述有可能改变规则的各种场景——的难度。
测试向量需要按照特殊格式编写,有时被称为“fillertest”。这里有一个例子。
我之前说过Aleth(C)实现比较特殊。原因是,在fillertest编写完成之后,将其转化成共识测试的工具是与Aleth紧密耦合的。整个过程等于是让EIP在Aleth中的实现变成了实现范例。以这种方式生成的共识测试也可以在大多数其他实现中运行。
测试团队也很特殊,因为大多数测试向量都是他们创建的。
虽然整个流程到这还没结束,但我就不画示意图了。客户端实现使用共识测试找bug。共识测试也用来驱动“Hive”中的测试。这里面还涉及到模糊测试。然后还有测试网。
以太坊1.x或将采用的流程
以太坊1.x不会让已有的实现团队按照主观意愿来处理改进提议,可能会专门创建一个工作组来负责这块。虽然并没有降低其中的难度,毕竟要找到愿意处理这些改进协议的开发者、愿意为此付费的人等等。不过,这个流程至少划分了职责,并且增强了流程的可扩展性。
工作组选择一个成员最熟悉的客户端实现,然后通过这个客户端实现来创建一个实现范例,再由这个范例实现产生出EIP和测试向量。目前,这个步骤已经可以实现。
目前尚未实现的是如何通过非Aleth参考实现来生成共识测试。不过,我们希望能够将新工具“retesteth”集成至最流行的实现中。最初,我想过要为此专门创建一个工作组,不过后来意识到不如直接做来的快一点。点击此处,查看我们目前正在进行的开发工作。
获取人力和资金支持
我们如何为这些工作组找到成员呢?如何为工作组寻求资金支持?这些都不是小问题,但是我们尚未找到答案。我认为目前主要面临两大挑战:
我们的人才来源非常有限,可能是因为我们的“核心开发”在外人看来有点像是黑暗艺术。我认为应该加强自我描述和用户教育。后面我会另外写一篇文章。
我们需要从不同的角度来看待资金支持,一方面是持续资助实现团队的工作,另一方面是资助更多具体的临时性方案。还需要解决一些问题。例如,应该将“尽职调查”和监督控制在什么程度内?谁可以决定工作组是否完成交付?诸如此类。这些问题都是可以解决的,之后会另外写一篇文章。
Ethereum2.0会采用什么样的流程?
以太坊的进化之路原本是PoW->PoW/PoS混合机制->PoS->分片,却在2018年6月全部推翻重写。我怀疑这一历史性转折的原因之一是以太坊的改进进程太过缓慢,无法赶上Casper和分片的开发进度。
很多系统在演化过程中都会出现这种转折点。通常是因为原有系统不堪应对挑战,或是维护原有系统的工程师开发进度不给力。我认为只有才满足下面至少一种条件的情况下,这种转折才能获得成功:
1)需要比原有开发团队更富有经验和能力的团队来执行新的进程
2)开发和改进进程经过了彻头彻尾的改变,能够解决原定进程所面对的挑战
我认为,以太坊2.0尚未与新的开发和改进计划接轨,不过我们不知道这个流程实际会是什么样子。因此,我猜想人们可能还是会回归以太坊1.0的流程。然而,这正是以太坊2.0想要避免的。
我想说的是,人们都低估了投资以太坊1.0的开发和改进进程的重要性,只有这样才能为以太坊2.0打下一个良好的基础。当然了,要是以太坊2.0一开始就完美无缺,不需要改进的话,这些就都不成问题了:)
结语
我认为以太坊1.x不仅仅是一组路线图,而是以更高效和包容的方式改进以太坊的尝试之举。这篇文章大致表述了我的想法。
原文链接:
https://medium.com/@akhounov/ethereum-1x-as-an-attempt-to-change-the-process-783efa23cf60
作者:AlexeyAkhunov
翻译&校对:闵敏&阿剑
本文由作者授权EthFans翻译及再出版。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。