编者按:本文来自以太坊爱好者,作者:BenEdgington,翻译&校对:闵敏&阿剑,Odaily星球日报经授权转载。大型的分布式多客户端区块链启动事件并不常见。昨天是ETH1.0诞生5周年:由此可见,如此重大的诞辰盛事更是少之又少。ETH2.0测试网Medalla于8月4日上线,这可能是今年晚些时候信标链正式推出前的唯一一次预演。ETH2.0创世机制有一点复杂。我打算详细解释一下。对于实际的技术规范,你可以参见我在“ETH2.0规范注解”中的评论。在下文中,“创世”指的是信标链上线并开始处理见证消息和区块的起始时刻,也就是epoch0的slot0的开始。验证者保证金
这里先介绍一下背景。只要向ETH1.0的合约发送32ETH的保证金以及其它一些数据,任何人都可以成为ETH2.0的验证者。例如,你可以通过Lanchpad门户成为Medalla测试网的验证者。要注意的是,在Medalla测试网上,我们使用的是Goerli测试网ETH!不要尝试将主网ETH发送至合约。当然了,等到信标链正式上线时,我们将使用真正的主网ETH。保证金合约只会对有效保证金作出反应,即金额达32ETH及以上的单笔保证金、总计金额达32ETH及以上的多笔保证金。任何无效或不足的保证金都会忽略不计。信标链节点
在预创世阶段,只有信标链节点会参与ETH2.0网络;一旦创世之后,验证者就可以立即参与共识机制。信标链节点维护系统状态,并在点对点网络上互相通信。因此,在创世之前,会有一些信标链节点监听ETH1.0,并监控保证金合约中的有效保证金。实际上,信标链节点不需要一直监控ETH1.0:ETH1.0上的区块是有时间戳的,因此在创世之前,节点随时都能赶上进程。众所周知,ETH1.0链是可以回滚的,原本已经在链上的交易也可能因为区块链改变而失效。这就是为什么你将ETH转入交易所时,需要等待30个区块才能确保交易确认。回滚的范围通常很小——只有1至2个区块——但是当网络遭受攻击时,回滚的范围会大得多。为了避免ETH2.0发生回滚,我们在同步ETH1.0时非常谨慎地保持14*1024秒的延迟。我称之为对ETH1.0的“跟随距离”。何时?何人?
对于创世来说,最重要的两个问题是“何时”与“何人”?具体来说,就是“创世会在何时发生?”以及“谁会成为创世验证者?”这两个问题决定了信标链的创世状态,其它状态都源自创世状态。大致过程如下:监控ETH1.0上的保证金流入情况。等过了足够长的时间,有了足够的保证金,创建创世状态。两天之后,通过触发创世事件来启动ETH2.0。具体来说,在步骤2,我们要找到第一个满足以下两个条件的ETH1.0区块:锁定了足够多的保证金;区块中的时间戳没有过早。创世状态由这个区块决定。影响“何时”和“何人”的三大主要参数设置如下:MIN_GENESIS_TIME,指的是创世事件最早发生的时间。就Medalla而言,就是Unix时间1596546000,即,北京时间8月4日晚9点。GENESIS_DELAY是172800秒,约合48小时。这是从创建创世状态到触发创世事件之间的时间间隔。客户端团队可以利用这段时间将创世状态刻录到他们的信标链节点软件中。这样一来,那些不运行验证者节点的信标链节点就不需要继续监控ETH1.0链了。我们也有时间来组织创世直播和派对MIN_GENESIS_ACTIVE_VALIDATOR_COUNT指的是在创建创世状态之前,我们需要在ETH1.0保证金合约中锁定的有效保证金的最低笔数。就Medalla而言,最少需要16384名验证者。从Medalla测试网启动中学到的教训:虽然我们有时间组织派对了,但44个小时对确保启动节点状态良好、升级后的客户端软件能包含所有必要信息、终端用户易于使用来说,还是有点赶。我们有可能会提高主网的GENESIS_DELEY。场景
创世状态是在首个满足以下两个条件的ETH1.0区块的基础上生成的:这个区块创建时,验证者人数不得低于16384。时间戳没有过早。根据上述两个条件的满足顺序,创世流程可以通过以下两种方式完成:1.先达到最低保证金要求
在这种情况下,条件1先得到满足。在最早创世时间之前,我们已经获得了足够多的保证金。根据MIN_GENESIS_TIME-GENESIS_DELAY可知,Medalla的条件2时间点是北京时间8月2日晚9:00。我们用来触发创世事件的ETH1.0区块必须在这个时间点之后挖出。假设这个区块在北京时间8月2日晚9:00:05挖出。如果保证金合约收到了至少16384笔有效保证金,那么保证金合约中收到的所有保证金也都包含在创世状态中。因此,ETH2.0链上有超过16384名创世验证者。这个ETH1.0区块会触发创世状态的计算。Medalla创世事件将在这个区块的时间戳的48小时后准时发生。接着上文的例子,就是北京时间8月4日晚9:00:05。
-红色区块就是首个满足上述两个条件的ETH1.0区块-要注意的一点是,考虑到ETH1.0跟随距离,我们实际上要等待4小时之后才能获得创世状态。也就是说,在当前场景下,我们要等到北京时间8月2日下午5:00才能获得创世状态。总结如果先达到最低保证金要求,创世事件将在最早创世时间的几秒后触发。在创世事件触发的48个小时之前完成注册的验证者都将包含在创世状态中。2.后达到最低保证金要求
在这种情况下,条件2先得到满足。由于保证金流入速度较慢,没有在指定时间达到最低要求。在这种情况下,我们用来触发创世事件的ETH1.0区块必须包含第16384笔有效保证金。假设这个区块在北京时间8月5日晚8:34:56挖出。现在,信标链状态将包含16384名验证者以及这个区块中其它有效保证金。因此,如果这个区块包含多笔保证金,那么信标链状态中包含的保证金将略高于最低要求。创世时间是该区块的时间戳的48小时后。接着上文的例子,就是北京时间8月7日晚8:34:56。
-红色区块就是首个满足上述条件的ETH1.0区块-再强调一遍,考虑到ETH1.0跟随距离,我们要等到这个ETH1.0区块挖出4小时后才能获得创世状态。总结如果保证金流入速度较慢,创世事件将在包含第16384笔有效保证金的ETH1.0区块挖出后的第48小时触发。创世状态将包含至少16834名验证者,还可能因为这个ETH1.0区块中包含的保证金交易数量而稍有增加。结论
本文已经介绍了ETH2.0创世机制的基本内容。如果你想成为Medalla测试网上的创世验证者,请务必在北京时间8月2日晚9:00将保证金发送至保证金合约!如果你没有在创世状态确定前提交保证金,你就只能按照质押时间排队等待,等到创世后才能加入验证者集合。排队时间可能需要几小时或几天。期待在Medalla上见到你!
标签:FILFilecoinCOINECOFILST币filecoin币是哪国的cointigertopSBECOM价格
Odaily星球日报出品作者|王也编辑|郝方舟上周海外明星项目进展中值得关注的有:波卡发布中继测试网Rococo.
2020年,区块链技术的价值以及应用潜力已取得全球共识,不再遭质疑,许多国家开始加速行动,探索基于区块链技术的场景重构.
“‘财富效应’聚集的地方,往往充斥着各种谎言与局,一不小心就会踩雷。”杨姐谈及与IPFS&Filecoin矿机的纠葛,句句在理又扎心.
北京时间8月4日晚上21:00,以太坊2.0第0阶段信标链的最终版测试网Medalla正式上线.
Facebook刚刚宣布新成立一个部门FacebookFinancial,内部简称F2。这个部门继续是由DavidMarcus来领导.
作者:Kay,没有故事的男同学。本文经作者授权发布。太长不看这篇文章会很长,如果你不想读完,这里直接留给你结论。1.未经审视的人生是不值得过的,未经审计的合约是不值得薅的.