复制成功

分享至

主页 > 数字货币 >

深度解析:Solana究竟是如何堵上的?

2024.04.08

原文作者:Nishil Jain(Biconomy 生态合作负责人)

编译:Odaily 星球日报 Azuma

深度解析:Solana究竟是如何堵上的?

为什么当前 Solana 之上的交易总是在失败?

让我们从最基本的概念开始逐步解析。

从用户的角度来看,当我们在 Solana 上进行交易时,本质上会出现三种潜在结果:

交易执行成功,一切正常;

交易执行失败,用户已支付 gas 费用,但执行结果返还错误。当交易未满足条件时,就会发生这种情况,例如用户尝试购买的代币已售罄,或者价格波动过快(超出了预设滑点)等等;

交易丢失(Dropped):交易无迹可寻,即交易未能抵达“区块领导节点”(Odaily 注:即每 4 个区块轮值一次的当值节点)。这是当前大多数用户正在遇到的情况,本质上这是一个网络层的问题,而非共识层或执行层的问题。

执行问题并非拥堵主因

现在你可能会问,什么是网络层?交易为什么会丢失?为什么说它们才是当前 Solana 拥堵的主要原因?

我们暂且把这些最重要的问题抛在一边,先来看看那些执行失败的交易(即第二种情况),并解释为什么说执行失败的交易并非拥堵的主因。

结合链上数据可见,所有执行失败的交易中,只有约 8% 系由真实用户提交,剩余的都是链上机器人所发起的套利交易。

深度解析:Solana究竟是如何堵上的?

套利者之所以会持续不断地“垃圾”交易,是因为与成功套利可所得的潜在利润相比,频繁发起交易的成本可以说是微乎其微。

具体来说,套利者可以在一天时间内持续不断地发起交易,这么做的成本大概是每天几百美元(因为 Solana 的网络费用较低),但只要能成功一笔,就可能赚到数十万美元的利润。

总而言之,这些失败的交易并不意味着 Solana 网络出现了故障,区块链依旧在正常运行,这些只不过是一些因为条件未达成而失败的机器人交易。这也不是 Solana 当下体验糟糕的主因。

实际上,自去年 11 月以来,Solana 的交易失败率一直保持在大约 50% 左右。

深度解析:Solana究竟是如何堵上的?

真正的主因:交易被丢弃于网络层

现在,让我们来讨论一下 Solana 在过去几天里拥堵的真正主因——“交易丢失”。

如前文所述,这些都是未能抵达“区块领导节点”的交易,而交易之所为未能到达,是因为它们在网络层中被丢弃了。

网络层是互联网的通信层,它被用来将数据包从一个端点发送至另一个端点,常见的网络层协议包括 TCP、UDP、QUIC(由谷歌开发) 等等。Solana 此前将其网络层协议升级成了 QUIC,这有助于在用户与“区块领导节点”之间建立连接。

由于 Solana 采用了连续出块机制,且不存在用以暂存未确认交易的 mempool,这意味着一旦连接丢失,交易将再也不会被包含至某个区块之内。

深度解析:Solana究竟是如何堵上的?

QUIC 协议的优势在于,“区块领导节点”可借此获得一种新功能:根据特定的标准来切段某些用户的连接,或限制它们的数据传输速率。

这一功能的意义在于,当网络需求高峰期出现时,“区块领导节点”可以主动切断某些连接,从而防止了 Solana 会因网络活动增加而完全宕机。

你可能又要疑惑了,如果 QUIC 协议的设计这么完善,为什么 Solana 现在还是这么堵呢?

真正的问题在于,尽管“区块领导节点”现在可以选择主动调节某些连接,但决定哪些连接需要被调节的逻辑却存在问题。

为了更具象地理解这一问题,我们可以脑补这么一种情况,每个“区块领导节点”都有着 X 个可以进行通信的连接,可当网络需求高峰期出现时,该节点所接受到的连接请求是其承载能力的 10 至 100 倍……这时该节点就需要去选择切断某些连接。然而当前的情况是,如何选择将被切断的连接并没有一套既定的标准(比如切断所有费用低于 xxx 的连接),所有连接是否会被切断都是随机性的……

说到底,当前情况下如果你想要交易被确认,你能做的就是发送更多的交易请求,但由于有许多机器人也会不断地向网络发送大量的连接请求,普通用户建立连接并完成交易就变得越来越困难。

如何修复?需要多久?

这就是 Solana 现在所面临的问题。

免责声明:数字资产交易涉及重大风险,本资料不应作为投资决策依据,亦不应被解释为从事投资交易的建议。请确保充分了解所涉及的风险并谨慎投资。OKEx学院仅提供信息参考,不构成任何投资建议,用户一切投资行为与本站无关。

加⼊OKEx全球社群

和全球数字资产投资者交流讨论

扫码加入OKEx社群

相关推荐

industry-frontier