原文作者:nishil
原文编译:Frank,Foresight News
相信不少用户还不清楚,为什么最近他们在 Solana 上的交易总是失败?
让我们从最基础的内容开始分析——从用户的角度来看,当我们进行交易时,基本上会发生三件事:
1.交易成功执行,没有任何错误;
2.执行失败,譬如支付了 Gas 费,但执行过程中返回错误,这通常发生在未满足执行条件的情况下,例如尝试 Mint 的代币已经铸造完毕,或者由于价格波动导致滑点超过设置值等;
3.未送达交易,此类交易不会出现在任何地方,说明交易尚未到达「区块领导者」(Block Leader,Foresight News 注,某个时间段里负责处理交易的验证者)那里,这正是许多用户当前遇到的情况,这属于网络层问题,而非共识 / 执行层面的问题;
你可能会疑惑,网络层是什么?
放心,稍后我们就会讨论这些未送达的交易,以及它们为何是当前 Solana 拥堵的主要原因。在此之前,让我们来聚焦那些失败的交易,因为理解为什么失败的交易不是主要问题这一点,很重要。
如果仔细观察,你可能会惊讶地发现,这些失败交易中只有大约 8% 来自真实用户,其余的都是链上机器人执行套利交易失败的案例:套利者会向 Solana 大量发送垃圾交易,因为与成功套利带来的回报相比,发送垃圾交易的成本微不足道。
例如,他们可以每天多次向 Solana 发送垃圾交易,这将花费他们几百美元(因为 Solana 的费用很低),而他们只需要完成一笔交易就可以赚取高达 10 万美元的利润。
因此,重要的一点是,这些失败的交易并不意味着 Solana 的活跃度出现问题——Solana 网络正在按预期运行,所以这些失败的交易只是由于 Bot 们的交易条件不满足而最终导致的,并不是目前 Solana 用户体验不佳的主要原因。
事实上,自去年 11 月以来,Solana 的交易失败率一直保持在 50% 左右,如果你回顾一下我上面列出的失败与成功图表,你会发现之前的情况也差不多。
那现在就让我们讨论一下过去几天 Solana 拥堵的主要原因——「未送达的交易」,正如前面提到的,这些交易未能到达「区块领导者」,并且由于网络层的问题而被丢弃。
网络层是互联网的通信层,用于在不同的连接之间发送数据包,例如:TCP(传输控制协议)、UDP(用户数据报协议)、QUIC(由谷歌设计)等。
而 Solana 最近刚刚升级 QUIC 作为其网络层,它有助于在用户和「区块领导者」之间建立连接,而且由于 Solana 具有持续的区块生产能力并且没有内存池,因此丢失连接将意味着交易不会写入区块。
QUIC 使「区块领导者」能够根据特定标准切断某些用户的连接或限制其速率,因此,「区块领导者」现在可以在链上需求高企时放弃某些连接,也就是说,这种新架构可防止 Solana 在网络活动增加时停止运行——虽然网络这时可能会非常拥挤,但至少不会停下来。
所以你可能会问,如果 QUIC 的一切都设计得如此好,为什么 Solana 现在这么糟糕?
因此问题是,即使「区块领导者」现在可以限制某些连接,但具体「要限制哪些连接」的逻辑却执行得很差,而且存在缺陷。
为了更好地理解,让我们想象一下,如果正常情况下每个「区块领导者」都有 X 个可以对话的连接,那在活动高峰期,「区块领导者」就会开始接收 10-100 倍数量的连接请求……
这时「区块领导者」可以选择放弃某些连接,但是问题在于,这些连接目前并不是根据一组既定的标准被丢弃(比如丢弃所有费用低于 X 的连接),而是被随机丢弃......
所以本质上,要想你的交易被打包,你必须比其他人发送更多垃圾交易,而且由于有多个机器人会向网络发送连接请求,普通用户建立连接和完成交易变得越来越困难。
这就是主要问题的要点,Firedancer、Anza、Solana 等团队正在努力修复网络层,这些补丁正在陆续推出,一些主要补丁据说将在未来几周内推出
这就能解决问题了吗?Solana 会再次腾飞吗?并不完全是,导致未来还有很长的路要走的原因有三个:
1.无法保证当前的修复措施在防止 Solana 下次出现拥堵问题方面会有多大效用,只有等到实际应用时才能知道效果如何;
2.Jump Crypto 的 Firedancer 可能确实能解决这些问题,但它要到今年年底才会发布;
3.网络垃圾交易问题,也即 Solana 的交易经济学存在诸多问题,无法阻止恶意用户发送垃圾交易来滥用网络。
原文链接
欢迎加入律动 BlockBeats 官方社群:
Telegram 订阅群:https://t.me/theblockbeats
Telegram 交流群:https://t.me/BlockBeats_App
Twitter 官方账号:https://twitter.com/BlockBeatsAsia