作者:nishil,加密分析师;翻译:0xjs@1、让我们从最基础的开始。从用户的角度来看,当他们进行交易时,本质上可能会发生三件事: a. Tx 成功执行,没有任何错误。b. 执行但失败——
作者:nishil,加密分析师;翻译:0xjs@
1、让我们从最基础的开始。从用户的角度来看,当他们进行交易时,本质上可能会发生三件事:
a. Tx 成功执行,没有任何错误。
b. 执行但失败——支付了gas,但执行返回错误。当条件可能未得到满足时,就会发生这种情况,例如他们试图购买的mint已售完,或者由于价格变动非常快而导致滑点超过等等。
c. 丢弃的交易:tx 没有出现在任何地方,在这种情况下,tx 尚未到达区块leader。这是目前大多数用户看到的情况。这是一个网络层问题,而不是共识/执行问题。
2、 现在你可能会问什么是网络层,但稍后我们将讨论这些丢弃的交易,以及为什么它们是 Solana网络最近拥塞的主要原因。
首先让我们了解失败的交易怎么产生的,因为这对理解为什么失败的交易不是主要问题很重要。
3、你会惊讶地发现,这些失败的交易中只有大约 8% 是由实际用户进行的,其余的都是由链上机器人进行的失败的套利交易。套利者在链上发送垃圾邮件,因为与成功套利的最终回报相比,垃圾邮件的成本微乎其微。
4、例如:他们每天可以向链上发送多次垃圾邮件,这将花费他们几百美元(因为 Solana 的费用较低),而他们只需要完成一笔交易即可赚取超过 10 万美元的利润。
5、因此,值得注意的是,这些失败的交易并不意味着区块链失败,区块链正在按预期运行,这些只是少数机器人交易,最终因交易条件不符合而导致失败。这并不是Solana上用户体验现在不佳的原因。
6、事实上,自去年 11 月以来,Solana 的交易失败率一直保持在 50% 左右。如果你回顾一下我上面列出的失败与成功图表,你会发现之前也很类似。
7、现在让我们讨论过去几天 Solana 拥塞的主要原因——“从未成功的交易”。正如本文前面提到的,这些交易未能到达区块leader,并且由于网络层的问题而被丢弃。
8、网络层是互联网的通信层,它用于将数据包从一个连接发送到另一个连接。例如 - TCP、UDP、QUIC(由google设计)等。
9、Solana最近升级为 QUIC 作为其网络层,它有助于在用户和区块leader之间建立连接。由于 Solana 具有连续的区块生产并且没有内存池,因此失去连接将意味着 tx 不会落在区块上。
10、QUIC 使区块leader能够根据特定标准切断某些用户连接或对其进行速率限制。因此,区块leader现在可以在高需求期间断开某些连接。
11、这种新架构可防止Solana在网络活动增加期间停机。虽然可能会堵得无法使用,但至少这次不会宕机吧?
12、所以你可能会问,如果 QUIC 的一切都设计得这么好,为什么 Solana 这么糟糕?因此,问题在于,尽管区块leader现在可以限制某些连接,但限制连接的逻辑实现得很差并且存在错误。
13、为了更好地理解,让我们想象这样一种情况:每个区块leader都有 X 个可以与之通信的连接。现在在活动高峰期,区块leader开始收到 10-100 倍连接数的请求......
14、这是区块leader可以选择放弃某些连接的时候。然而,目前这些连接不会按照设定的标准被丢弃(比如丢弃所有费用低于 x 的连接),而是随机丢弃......
15、从本质上讲,要获胜,你必须比其他人发送更多垃圾邮件,并且由于有多个机器人会通过连接请求向网络发送垃圾邮件,因此普通用户建立连接并完成交易变得越来越困难。
16、这就是主要问题的要点。像来自jump的firedancer、Anz和Solana等团队正在努力向网络层提供修复。就在本人写作时,这些补丁正在推出,据说一些主要补丁将在未来几周内发布。
17、那么这就能解决问题吗?Solana会再次大涨?嗯,不完全是。前面的路还很长,有 3 个原因:
a、无法保证当前修复措施在防止 Solana
下一次拥堵问题方面的效率如何。只有当我们看到它的实际效果时我们才能知道。
b、Firedancer确实可能解决这些问题,但要到今年年底才会出现。
C、网络垃圾邮件问题:Solana 上的交易经济性存在多个问题,并且无法防止不良行为者向链上发送垃圾邮件。
18、最后,我想以这样的一句话结束:我相信Solana正在为捍卫正确权衡而奋斗。就像以太坊摆脱了其应有的问题一样,Solana也应该如此。