Solana TdS 测试网第一周回顾:最新版本压力测试中,完美修复多个技术错误

6,156

区块律动 BlockBeats 消息,今日高性能公链 Solana 发布推特,回顾了其 Tour de SOL(TdS)测试网在第一周的进展,其官方博客称,Solana 开始了对最新版本的压力测试,以消除该版本中的漏洞。

同时,CertusOne 团队成功提交了第一份关于缺陷研究的攻击报告,该攻击旨在使群集上的任何验证节点失效,Solana 迅速着手解决了相关问题。截至目前,Solana 已经重启了 2 个集群,发现了 1 个严重的错误,并且发现了我们正在解决的一系列较小的错误。

下为 Solana 官方博文:

Solana 正式进入了 Tour de SOL(TdS)测试网第一阶段,现在已经过去了一个周。Solana 的目标是开始对最新版本 v0.23.3 进行压力测试,并消除该版本中的任何问题,以便后续使用该版本将 Solana 的软启动阶段 1(Soft Launch Phase 1,SLP1)集群升级到全球集群(Global Cluster,GC)。

截至目前,Solana 已经重启了 2 个集群,发现了 1 个严重的错误,并且发现了我们正在解决的一系列较小的错误。可以说,这正是我们启动测试网的初心。

攻击/错误事件的缘由

首先,祝贺 CertusOne 团队成功提交了第一份关于严重缺陷研究的报告!通过该攻击方式,他们设法使八卦网络中的内存泄漏化,使内核分配器错误,这或将使群集上的任何验证节点失效(一次或全部失效)。

参考下图,这是执行此攻击时群集的反应。左图显示了最新块与最后一个确定块之间的差距越来越大,而正常的集群应是一条水平线。右边的图看起来像是线性增加的函数,然而,它是一条平线,表明未达成共识。

Solana TdS 测试网第一周回顾:最新版本压力测试中,完美修复多个技术错误

其他问题

好消息是,尽管存在以下两个问题,该集群仍然可以运转,但是确实导致了验证节点入选时的摩擦:

1.Solana 集群中的混合公钥

在验证节点入选期间,跨越 TdS 测试网和 SLP1.1 的八卦网络将合并为一个更大的集群。

几周前,有些人可能已经看到我们有关 SLP1 集群启动的公告,该集群与 TdS 并行运行。为了连接到该集群以及我们的任何其他集群,流程通常是要求验证节点向我们提供其公钥,即其节点的公共标识符。

因此,随着验证程序在 24 小时内开始连接到新设置的 TdS 集群,我们提前收集了他们的公共密钥,以便可以将 SOL 代币委派给他们。

一些在线的验证节点重新使用了与 SLP1 集群相同的公共密钥。结果,这些验证节点(无法识别 SLP1 集群和 TdS 集群是分开的)将两者之间的八卦集群合并为一个更大的整体,最终其验证被无效化。

2.RPC 入口超载

tds.solana.com 验证程序的 RPC 入口已多次添加到八卦网络中,导致过多的入站流量,对其他流量的低效管理最终导致我们的验证程序内存不足。

对于加入 Tour de SOL(TdS)集群的验证节点,有两种连接的方法:

a. 使用 Solana 提供的现有 RPC 入口

b. 设置自己的 RPC 入口

到目前为止,第一种选择是最方便的。但是,在群集上线的前 48 小时内,验证程序发现,在利用我们经过多次尝试后准备的单个 RPC 入口点方面取得了间歇性的成功。

当我们在调试时,观察到了两个关键的问题。首先是我们的 RPC 入口被多次(至少 10 次)添加到八卦网络中,由于快照问题这导致大量流量增加。随之而来的第二个问题是,RPC 节点无法正确管理额外的流量,结果内存不足。但是到目前为止,我们仍在调查中。

集群重启

a.Bootstrap Leader 节点迁移失败

引导程序节点从 Google Cloud 迁移到 Co-Location 设置中,令其重新传输一个区块,而集群的其余部分将被分叉,因此永久失去共识。

b. 数据中心的群集被中断

由于托管引导节点数据中心的群集发生故障,该群集停止了运转,需要我们重新启动该群集。

原文链接: https://forums.solana.com/t/tour-de-sol-stage-1-week-1-recap/328

区块律动 BlockBeats 提醒,根据银保监会等五部门于 2018 年 8 月发布《关于防范以「虚拟货币」「区块链」名义进行非法集资的风险提示》的文件,请广大公众理性看待区块链,不要盲目相信天花乱坠的承诺,树立正确的货币观念和投资理念,切实提高风险意识;对发现的违法犯罪线索,可积极向有关部门举报反映。    

发表评论

电子邮件地址不会被公开。 必填项已用*标注