[Tour De SOL] 第三期测试总结 Dry Run #3

各位,很抱歉这次更新得比较晚。由于我一直在柏林各地奔波,因此公共注册中心的沟通和管理一直滞后。但我们真的非常高兴,因为我们在上周二进行了一次相当成功的测试 (DR3)!

DR3 的目标是提高网络稳定性,使我们可以在不处理交易时不会出现任何问题。到目前为止,之前的测试仅持续了 30-60 分钟,因此这一次,我们真的希望看到它可以持续几天。如果还没有阅读之前的汇报,可以在此处[1] 查看。

在开始深入探讨之前,我想分享一些由我们团队的 rshea#2622 和 mvines#6646 汇总的快速统计数据(截至太平洋时区 8 月 19 日星期一):

注册:232 人注册参与 Tour de SOL

KYC/AML:

113 人完成了 KYC/AML
其中 92 人通过了 KYC/AML

密钥库和公钥:

其中 152 名申请人向我们提供了密钥库用户名
其中 67 名申请人共享了他们的公钥并完成了参与流程

我之前有点悲观,因为我们要在”柏林区块链周”活动期间运行 DR3,所以我之前预计 DR3 的参加人数会比较少。所以,当决定参与测试的验证者人数达到 48 位时,你可以想象我有多惊讶。你们总是超出我们的期望!❤️

这里先简要回顾一下 DR3 较 DR2 发生了哪些变化:

在 DR2 中,导致集群停止运行的 bug 是因过多权益过快上线[2] 所致。我们就如何解决此问题进行了一些内部讨论。目前,我们已通过放慢权益上线的速度来解决此问题,但这只是临时的解决办法,不是永久性的。因为我们的首要任务是在测试期间尽可能多地找出 bug。
在 DR2 即将结束时,我们看到很多节点因流言数据包[3] 而恐慌。因此,我们现在对布隆筛选器的大小进行了限制。
验证者耗尽了虚拟内存[4]。事实证明,Linux 似乎并不喜欢我们过多地使用 mmap。这意味着,如果帐户数量较多,我们只需要执行 append_vecs 即可。现在,我们在创建帐户时仅创建机会性帐户。
我们发布了一个有关验证者参与流程的文档,尝试将 Tour de SOL 中涉及的但之前遗漏的所有指导性内容汇总在一起。对此,我们公开征询公众建议,请在此处[5] 尽情发表评论或想法。
还有其他一些已确认和解决的问题,可以参阅 DR2 汇报(此处[6])的”已确定的主要 bug”部分。

本次测试的参数

总体参数与第一次测试中的参数基本一样。我们希望在第 0 阶段结束之前,参数保持相对一致。

测试中使用了 3 个 Solana 节点来启动集群,预计之后不久会加入 48 个外部验证者
一开始,所有节点均接收 1 个 SOL,得到的建议是对此持 50% 的权益(与 Solana 节点匹配)
此时无需使用 GPU,因为目标是维持闲置集群且不发送大量交易。
所用节点都使用 Mavericks v0.18.0-pre1 版本[7]

禁用了快照

测试详细经过

我们在太平洋标准时间上午 8:06 启动了网络。这是发生了一个不断出现的紧急情况:端口转发设置。一些经验丰富的参与者巧妙地处理了这个问题,但这肯定是我们需要改进的地方。如果你熟悉 WebRTC 代码并有兴趣帮助我们,请与我们联系。

有趣的是,DR3 的启动情况与 Anatoly 在 Web3 的演示基本一致。可见我们已经在时间上作出了最好的安排。能看到我们的一些验证者所启动的节点竟然来自 Web3 的听众,真的是太棒了。

即便如此,我们开端势头良好,并成功进入 epoch 7,这意味着 DR3 的存活时期正式超越 DR2!在 DR3 持续运行 90 分钟(48tps,闲置 2,778 tps)后,网络继续稳定运行,投票交易总计达到约 250,000 项。希望在不久的将来,我们能够在 5 秒或更短的时间内完成 250,000 项投票交易!在不久的将来,我们希望能够在 5 秒钟或更短的时间内完成这些交易!

想知道什么能让我们的区块链工程师感到兴奋吗,马上为你揭晓神秘答案:线路收敛。下面直观呈现了节点上线的情况,网络逐渐收敛,直到我们不再是网络中持多数权益的节点:

接着 mvines#6646 因为需要处理一些必须要处理的事务而暂时离开。上次他就是因为同样的原因非官方地导致 DR2 失败:

然而,再美好的事物也有终结的一天。DR3 在继续强劲运行了 3-4 小时之后,实际的总上线运行时间达到约 5 小时,这时投票开始中断,我们在太平洋标准时间下午 13:23 终止了 DR3。

上面是网络快终止时的快照。在根槽 44632 之后,大多数集群停止了投票。故障前后对 dash[8]输出的后处理表明,总权益中有 88% 处于离线状态。在如此多的权益离线的情况下,集群无法取得进展。大多数权益离线的原因是由于发生崩溃(#5570[9] 中有详细介绍),或由于验证者在未停用其委托的权益之前意外终止了其节点。

发现的主要 bug

集群”杀手”Solana-Window 对”断言失败”产生恐慌[10]

当权益密钥对文件不存在时,Solana-Wallet Delegate-Stake 崩溃[11]

重现阶段恐慌[12]

Solana-Validator 在无法打开账本时产生恐慌[13]

改善共识失败日志记录[14]

投票和权益程序报告无用的错误[15]

后续步骤和结语

可以看到,DR3 有了显著进步,我们希望下一次测试不仅可以运行更长的时间,还可以提高交易数量。希望我们能有好运,如果 DR4 的运行结果能达到预期,我们就可以认为我们已作好充分准备可以过渡到所有人都在期待的 Tour de SOL 阶段 1!

至于运行质量的问题,端口转发现在肯定是一个痛点。另一个问题是如何成功创建投票帐户。此问题现在有望通过针对验证者的修订版”常见问题解答”/”参与流程”文档得到解决。为此,我们还创建了一个新帖[16],用于收集有关验证者最希望得到解决的问题的反馈。因此,如果你认为我们可以采取任何有利措施,或者你经常遇到某些问题,请告知我们!

感谢参与 DR3 的所有 48 位验证者[17]!