调查:新公链们为何频现宕机事故?( 二 )


调查:新公链们为何频现宕机事故?
文章图片
而根据SolanaStatus公告 , Solana网络从去年12月初出现、延续至今的拥堵现象 , 也与「9·14」宕机事件暴露的问题有关 。 SolanaStatus是Solana基金会运营的发布网络性能公告的推特账户 。
据区块链公司Laine分析 , 近期市场行情波动性大 , DeFi项目中的许多杠杆仓位都达到清算标准 。 执行DeFi清算的人会收到奖励 , 任何人都可以申请充当清算人 。 因此这也开创了一个市场 , 许多人竞相清算来争夺赏金 , 其中有不少人使用的是自行开发的自动化程序(也即通常所说的「机器人」) , 为了确保能「赢得」比赛 , 这些「机器人」会发送几十次、甚至上百次相同的交易请求 。
「我们看到每秒有接近200万个事务(交易或其他类型的请求)到达同一节点 , 其中90%以上是完全相同的重复 。 」Solana联合创始人AnatolyYakovenko1月27日凌晨在TwitterSpace活动中表示 。
针对宕机原因 , 边界智能研究院院长胡智威则进一步向链捕手表示 , 由于Solana将共识消息也作为一种特殊的事务消息在验证节点间传递 , 大量的消息堵塞导致了共识消息无法正常传递 , 而使得共识无法正常进行 。
调查:新公链们为何频现宕机事故?
文章图片
SolanaTPS的结构组成来源:solanabeach
调查:新公链们为何频现宕机事故?】「同时Solana的一些特性被针对性的利用导致了网络宕机 。 例如为了并发处理事务的写入锁定(write-lock)在很多重要地址上被锁定 , 使得事务变成顺序执行而非并发 , 极大的影响了对消息的处理能力;节点为处理分叉 , 不断保留了可能的分叉信息 , 导致内存溢出等 。 」胡智威说 。
国内知名公链Conflux的CTO伍鸣向链捕手分析 , 在Solana网络中交易过多导致网络拥塞的情况下 , 区块的转发(广播)延迟就会增加 , 账本随之容易出现分叉;当账本分叉情况严重时 , 共识算法的压力就会增加 , 如果处理不好 , 最终就会导致系统彻底崩溃 。
「这里面一个很重要的问题是 , 节点不应该无节制地转发成本很低的垃圾交易 , Solana应该是在这方面的流控(流量控制)没有做好 。 」伍鸣表示 。
AnatolyYakovenko也在上述TwitterSpace活动中承认了该问题 。 他称 , 主要问题在于 , 原先的程序设计中 , 「重复交易检查」是在签名验证之后进行 , 因此所有的重复数据都必须先经过签名验证 , 才会被检查是否属于「垃圾交易」 。 此外 , 在节点客户端升级前 , Solana用于删除重复数据、清除网络冗余的程序运行得非常缓慢 , 需耗时几百微秒 。
为避免下次大行情期间 , 「机器人」交易再度干扰网络 , AnatolyYakovenko称接下来将在Solana主网beta的1.9版本中引入「实际的流量控制(actualflowcontrol)」 。
另一条热门公链Harmony也面临类似问题 。 1月15日 , Harmony网络中断数小时 , 团队官方将基础gas费提高到30gwei , 来提高发送垃圾交易的门槛 。
Harmony社区发布的事后分析显示 , 网络的领导节点(leadernode)收到了大量垃圾流量(spam) , 再加上验证节点的旧版客户端对高流量情况的处理不佳 , 内、外部的因素综合导致了这一「宕机」事故的发生 。
HarmonyCTORongjianLan对链捕手表示 , 点对点网络(p2p)数据包重复发送 , 造成了p2p网络的拥堵 , 正常的共识消息无法顺利发送 , 网络因此无法达成「共识」 。 其中内部原因在于 , Harmonyp2p网络的参数存在潜在bug , 因而发生了上述现象 。
「新的Web3基建需要更好的流量监测和流量限制的机制 , 才能杜绝网络被滥用 。 」RongjianLan称 , Harmony对p2p网络协议层参数进行优化后 , 将开展长期性的系统改良工程 , 在共识、网络和RPC层都进行优化 。