作者|GaryMa吴说区块链

2 月 6 日, Solana 网络再次发生“久违”的宕机,上次宕机时间约为 2023 年 2 月 25 日。据 VanEck 数字资产研究负责人 matthew sigel 表示,本次Solana 宕机是由于 BPF(Berkley Packet Filter)加载器发生故障,这是在 Solana 上部署、升级和执行程序的机制。这可能与之前的一项 SMID 提案有关,该提案增加了一个阻止在 BPF 中使用元数据的拦截器,因为这些元数据已经不再需要了。这来自0093 升级,但里面出现了某种错误,该错误在测试网上被发现并且创建了修复方案,但尚未实施。猜测有人手动触发了该错误,导致 Solana 宕机。

Solana 的“宕机”问题此前常遭社区诟病,虽然过去一年网络基本稳定运行,但过去 Solana 已经经历了数次宕机或者网络卡死的情况,吴说整理如下:

1. 2024 年 2 月 6 日,BPF(Berkley Packet Filter)加载器发生故障,宕机的时间为 4 小时 46 分钟。

2. 2023 年 2 月 25 日,Solana 主网性能出现问题,无法处理用户交易。后 Solana 发布改进网络升级计划,包括改进 Solana 升级过程、组建对抗团队、改进重启过程等措施。

3. 2022 年 10 月 1 日附近,由于节点配置错误导致网络宕机。

4. 2022 年 8 月 3 日附近,Solana 钱包出现大规模盗币,最终发现是由于中心化 Sentry 服务器引发的漏洞。

5. 2022 年 6 月 1 日附近,由于交易中的 durable nonce 功能漏洞,导致网络重启,中断时间约 4.5 小时。

6. 2022 年 5 月 1 日附近,由于一个 NFT 新项目铸造,大量机器人交易涌现导致主网节点失去共识,之后暂停出块长达 7 小时。

7. 2022 年 1 月 21 日附近,由于市场波动较大,网络充斥着大量套利机器人提交的交易,导致网络引发严重负载,中断时间长达30小时。不过当时官方仅是将其定性为性能下降(Degraded Performance),Solana 社区随后将主网更新至 1.8.14 版本,尝试改善网络状态。

8. 2021年9月14日附近,由于去中心化社交网络协议Grape Protocol 在 Raydium 平台上的 IDO 活动火热,许多用户通过编写的机器脚本发送大量交易,这些交易造成「内存溢出」,导致验证节点崩溃,最终整个网络无法出块,中断时间长达 17 小时。

9. 2021 年 9 月 3 日附近,网络不稳定,性能下降,持续时间约为 1 小时。

10. 2021 年 5 月 4 日附近,网络性能下降,导致大量交易无法成交。

回顾历史网络事件,我们会发现大量交易的涌现是造成历史网络中断的主要原因,这可能跟 Solana 的机制相关,据边界智能研究院院长胡智威表示,由于 Solana 将共识消息也作为一种特殊的事务消息在验证节点间传递,大量的消息堵塞导致了共识消息无法正常传递,而使得共识无法正常进行。同时 Solana 的一些特性被针对性的利用导致了网络宕机。例如为了并发处理事务的写入锁定(write-lock)在很多重要地址上被锁定,使得事务变成顺序执行而非并发,极大的影响了对消息的处理能力;节点为处理分叉,不断保留了可能的分叉信息,导致内存溢出等。

面对常见的垃圾交易涌现导致网络性能下降甚至宕机,Solana 联合创始人 Anatoly Yakovenko 此前也承认了该问题,并表示引入「实际的流量控制(actual flow control)来解决该问题。至于像交易 nonce、节点配置错误等起因导致的网络宕机,Solana 官方事后也迅速发布修复版以供节点升级。

这时隔一年的再度宕机,可能既是好消息也是坏消息,但更多地是一种警惕,特别是在当前 Solana 生态热度逐渐升温的背景下,网络稳定性依旧是需要重力投入的环节。

参考链接:

https://mp.weixin.qq.com/s/JwPpmJOxIIsR7MzY_CtDog

https://twitter.com/SolanaStatus

https://twitter.com/laine_sa_