以太坊 2.0 会议摘要 #40

会议:以太坊2.0会议 #40

会议日期:2020年5月28日,星期四

会议时长:1.5小时

会议视频链接:

https://youtu.be/xvIk22HvTVE

会议日程:

1.测试和版本更新

2.测试网更新

3.客户端更新

4.研究更新

5.网络更新

6.规范讨论

7.开放讨论/总结

会议主要内容:

1.主持人Danny 开始 第一个议题:测试和版本更新 。Danny表示v0.12版本发布了,耗费的时间比预期的要长。v0.12版本主要将BLS升级到最新版的IETF标准,修复了一些奖励和惩罚相关的错误,同时做了一个小改动:在二次泄露的时候网络不会去错误地惩罚好的验证者。其它没有大的改动。Danny强调这是一个闭环,大家都陆续升级到最新版本,然后在使用中发现并反馈问题,紧接着再在下一个版本持续改进。这次在Serenity上发现了一些奖励和惩罚相关的错误,修改了很多地方,所以他认为这个版本预期不会再出现太多这方面的问题。v0.12并没有包含TXRX的Alex提出的分叉选择规则,但他计划在v0.12.1里面将这个规则包含进去。这个分叉选择规则本身已经很完善了,只是考虑到测试的因素,所以还没有将其并入这次的新版本。

Proto表示现在有两个网络测试的工具。一个是Rumor,适合ad-hoc形式的网络,另一个是Stethoscope工具,其更适合多层结构的网络的测试工作。他们会尽快推出这些工具,因为网络测试的优先级在提高,因此有不少和创世相关的以及基本网络侧的错误需要尽快测试和解决。

2.Danny说他互换了测试网更新和客户端更新的顺序。所以今天 第二个议题是测试网更新 。Afi表示Schlesi测试网暴露了几个错误,最终死机了。他尝试了几次去重启Schlesi测试网但没有成功,所以他关闭了最后一个验证者,官方宣布Schlesi测试网失效了。同时他尝试启动一个新的测试网络叫Witti。和之前相比,不同的地方在于这次创世状态有三个客户端(而不是之前的2个客户端),因此相比之前来说,测试网启动的难度更高。Teku,Lighthouse和Prysm已经成功和网络连接了。其实一开始他们遇到了一些关于创世时间的小问题,但随后立刻加了补丁,然后在昨天晚上上线,并很完美地和客户端连接。

Danny表示他知道客户端其实很关心测试网下一步的计划,因此他建议他和Afi一起做一个小文档,可以提前告诉大家一些相关的计划,比如网络重启计划或组成更大范围的测试网络计划。他强调说,尤其是在某些重大改变发布前,提前公布计划让客户端提前准备会更好。Afi说,他预测在进入更稳定的阶段之前,他会尝试启动许多小型且快速失效的测试网。尽量多地去发布新测试网是为了代替老的死机的测试网,或者是针对需要发布新的规范的新测试网络。最后,Danny说有个小问题,是关于在创世过程里去调整每天测试网络启动时间的。Afi现在持续在凌晨2点启动这个网络,以后需要调整。

https://github.com/ethereum/eth2.0-specs/issues/1849

3. 下一个议题是客户端的更新。Cayman代表Lodestar 第一个发言。Cayman表示Lodestar在Herumi上发表了一个新的BLS库,代码和Wasm是兼容的。现在任务是要升级v0.12版本和更新GossipSub。 第二个发言的是Nimbus 。Mamy表示他们和Lighthouse一起解决了在网络侧互联的问题。今天早上他们更新了多客户端的脚本。用这个脚本可以创建一个50%用Lighthouse的验证者,50%用Nimbus验证者的网络。这种类型的网络有助于他们更好地调查网络互联的问题。他们也加入了snappy解决办法。同时也发现GossipSub以为它能实时验证认证信息,但实际上有时候认证信息到了,区块还没有收到,需要等待一段时间。至于网络侧,目前已经连上了Witti,他们在调查同步的问题和一个关于对等节点的问题(Nimbus和其它客户端互联时候对等节点比别人少)。此外,他们还集成了BLS的更新,并且更新了控制文件,现在可以在v0.11.3和v0.12之间切换。最后Mamy表示他们在寻找审计的供应商。

第三个发言的是Teku。Meredith介绍说Teku开始执行两周一次的正式升级,目前升级到v0.12版本,并且开始连接Witti。GossipSub1.1的升级基本完成,BLS的升级在审核中。他们对Open API进行了改进以便于更好地做代码开发工具。他们还升级了Eth1的数据处理机制,现在已经不需要Eth1.0节点上的历史数据了,所以同步速度会更快。最后,她表示Teku还修复了处理大流量数据包的JVM Libp2p问题。

下一个发言的是Prysm。Raul表示Prysm升级到了v0.12版本,运行良好,各种测试配置的测试参与度都是100%。他们会用同样的配置再重启Topaz,同时准备在主网上发布提高内存使用的功能。罚没机制有了很大的进步,能够和信标节点很好的融合。之前罚没机制会覆盖信标节点,导致其无法对验证者进行处理。Quantstamp的审计进展顺利。

接下来发言的是Lighthouse。Age表示和ToB一起开展共识代码的审计工作。需要审计的代码分为共识代码和网络侧代码。网络侧代码的审计暂停了,因为他们发现还有些底层的协议需要改进。他们在Witti测试网络发布后做了很多调试的工作。Discv5花费了大量的CPU资源,他们决定重构,用RUST Discv5来解决这个问题。

Jacek询问他们的Rust Libp2p相比其它Libp2p偏离了多少?Age表示,之前Discv5是做在Libp2p的里面的,所以他们把Discv5分离出来了,所有的GossipSub合并进了主网。现在他们的GossipSub用的就是官方的Rust Libp2p,所以没有偏离。

下一个发言的是Trinity。Alex表示最大的更新是他们增加了一个全职工作者,让人手短缺的他们速度提高了很多。Alex说,为了实现最新的p2p协议,他们合并了一个很大的PR。下一步要做的就是连上Witti。,目前他们计划把版本先升级到v0.11.3上面,然后再升级到v0.12。

最后是Nethermind。Danny介绍说为证词写的代码合并进了主网。Tomasz开发了能连接Merkle树的数据库的代码。下一步当有了最新的Merkle树的代码,他计划测试多个验证者。找了一个初级开发者来确保以太坊2.0的测试不中断。Tomasz把以太坊1.0中最小结构移植到了以太坊2.0中,并希望六月底能够加入新的测试网络Witti。

Joseph说他们也在网络代理服务器上更新Age的Discv5的代码以提升效率。与此同时,他们也公布了一篇论文,内容是关于模拟跨分片交易的研究。模拟结果反映

4. 下一个议题是研究更新 。TXRX的Joseph首先发言。Dimitri发表了两篇关于Discv5的论文,第一篇论文名字叫Discovery协议簇的效率对比:结合ENR属性及基于话题(topic)的通告机制(Comparing discovery advertisement features by efficiency: ENRattributes and topic advertisement)。文章起了一个高大上的名字,但里面的内容也很有干货。同时他们也在将网络侧的代理程序升级到Age的Discv5的代码。他说他是一个Pi的规范里面的传送者(transpiler)。他将一阶段的规范转换为Kotlin代码。然后Kotlin代码作为PoC被集成进了Teku。Jonny用他的工具做了一些网络测试的分析。这些工具很好用,下次会作为原型工具来分析测试网络的问题。

了网络侧数据量大小的影响。他贴出了一个链接:

https://hackmd.io/@zilm/BJGorvHzL

https://ethresear.ch/t/comparing-discovery-advertisement-features-by-efficiency-enr-attributes-and-topic-advertisement/7448

https://ethresear.ch/t/cross-shard-transaction-probabilistic-simulation/7474

接着是Quilt。Will介绍说Quilt团队在研究账户抽象(account abstraction)。现在在以太坊1.0的Geth上面实验。之后如果改动太大,不能在以太坊1.0上面推行下去,那么就做成一种账号抽象的示例,再放到以太坊2.0上面来。他们已经在以太坊1.0上面获取到一些数据,当前正在整合,并已经有初步结果。接下来的一两周就能完成基本的MVP。同时也在做一个DoS的工具来测试账户抽象如何应对此类攻击。

下一个是Ewasm团队。Axics说Ewasm团队主要在做两个事情。首先还是继续上次说的Eth1x64项目。他们在开发yanking,并把它放在Eth1x64变体1的上层,作为layer2的解决方案。如此一来,发送方就能让自己在存储单元可见,并把所有的数据都发送到接收方,而接收方则在存储单元中重新复原出数据。Ewasm团队发现还是需要一个协议来管理这个过程。原因在于,在EVM里面存储的成本比较昂贵,如果没有协议,则需要使用大量的存储空间来存放数据。目前他们正在准备开发这个协议。

另一个事情和缓存有关。如果能确定标准的见证数据(witness)的格式,那么第二阶段就有机会引入短暂的分片缓存来减少交易数据的见证数据大小。但是区块的见证数据的大小不能被改变。所以这个缓存只能影响交易数据的见证数据大小。Axic解释说这还是一个粗略想法,还在完善过程中。Danny表示可以从更加整体的角度来研究如何减少带宽的使用。Axic补充道,这个也可以用在以太坊1.0,或许以后会看一下如何实施。

最后是EF团队。Danny介绍说在规范方面,v0.12已经完成,Hsiao Wei和他还有其他一些团队成员花了很多时间来确保第一阶段测试完备、结构清晰、所有的组件能正常工作以及各个客户端都能在上面做原型设计和办法实施。这是他的团队最高优先级的任务。

5. 下一个议题是网络侧更新 。Danny首先表示如果有需求,近期会再组织一次网络侧的电话会议。然后他说他知道有人在做GossipSub v1.1,他询问有没有要分享的内容。Jacek询问是否支持v1.0,或者至少理论上来说是兼容的?Danny回复道,规范上说客户端要支持v1.0,包括v1.1。v1.1就是一个在v1.0上面的组件。Danny认为测试网在不久的将来会合并这两个版本。现在两个版本都需要支持。他知道现在只有Prysm升级到了v1.1。

接着Felix说他改了一个Discv5 wire协议,并做了一个很详细的提议,里面建议在最后确定规范前,再重做一次外层的wire编码。这个提议获得了很多支持,但是还没有正式获得通过。他希望能有一个正式的决定,这样他可以发布最终版本。另一个事情是他也在看一个由TxRx团队的Dmitry提出的提议。这个提议和ENR(以太坊节点记录)有关,会在服务器侧自动过滤注释。Felix认为这个提议短期来看是有好处的,但长期来看,还需要检查是否是一个好的提议,因为他担心无法保证100%找到节点。他正在看哪里可以更加优化。Jacek回复Felix说,关于第一件事,他回去就会研究,然后第二天给出结果。Felix和Danny讨论了一些关于时间的问题。Felix又补充道,他们团队和Geth团队正式的在合作Discv5实现方法,他希望在两三周内完成,然后可以给整个客户端去测试。

Felix还提出有关QUIC使用的讨论,他说不同语言实现之间缺少TLS1.3支持。随后Age,Felix和Danny又讨论ENR的使用和可用性。Felix表示可以创建一种可读的ENR的形式。ENR已签名,从某些方面来说是不够的,但是这对于管理员来说是一个可用性问题。Felix建议使用多地址作为ENR的可读格式,但同时要在代码中使用ENR。他说ENR的格式在规范中没有明确规定,所以这取决于客户端自己的实现办法。他考虑使用Ed25519签名公式用来加快握手速度。

https://ethresear.ch/t/cross-shard-transaction-probabilistic-simulation/7474

6.Danny强调,如果客户端在v0.12版本碰到任何问题,可以马上直接联系他。开放讨论没有太多内容,Danny宣布会议结束。

与会开发者:

· Aditya

· Afi Schoe

· Age Manning

· Alex Stokes

· Axic

· Ansgar Dietrichs

· Ben Edgington

· Carl Beekhuizen

· Cayman

· Cem Ozer

· Chih-Cheng Liang

· Danny Ryan

· Dmitry Shmatko

· Evan Van Ness

· Felix

· Guillaume

· Herman Junge

· Hsiao-Wei Wang

· Joseph Delong

· Jacek Sieka

· Leo BSC

· Mamy

· Marin Petrunic

· Meredith Baxter

· Mikhail Kalinin

· Nicolas Liochon

· Nishant Das

· Paul Hauner

· Protolambda

· Sam Wilson

· Steven Schroeder

· Terence Tsao

· Tomasz Stanczak

· Trenton Van Epps

· Vitalik Buterin

欢迎转发,本内容遵循CC BY-SA 2.5协议:

https://creativecommons.org/licenses/by-sa/2.5/

你的支持,是对我们的认可。来打赏我们一杯咖啡吧! 打赏地址:

以太坊:

0x7Ba18D8d4B0E4EB06a720aF2BeC29603078c806b

Gitcoin:

https://gitcoin.co/grants/468/ethplanet