0

0

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

DDD

DDD

发布时间:2024-04-09 08:07:11

|

1262人浏览过

|

来源于ChainCatcher

转载

为什么当前 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 现在还是这么堵呢?

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

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

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

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

如何修复?需要多久?

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

当下,Jump (Firedancer 客户端开发团队)、Anza(Agave 客户端开发团队)、Solana Labs 等团队正致力于对网络层进行修复。修复补丁将在本周逐步推出,据悉在未来几周内还会有一些重量级的更新发布。

这能够有效解决问题吗?Solana 会再次“ to da moon”吗……这并没有绝对答案。

为什么当前仍存在着许多不确定性,主要有三个原因:

  • 一是关于即将的修复补丁究竟能否生效,没有人能够保证。只有在它实际运作起来后,我们才能观察实际情况。

  • 二是 Jump 开发的Firedancer 客户端看起来似乎能够解决问题,但它要到今年年底才能正式发布。

  • 三是关于“垃圾”交易的问题,Solana 的经济机制使得该网络很难阻止恶意行为者对链持续进行“垃圾”交易攻击。

最后,我想呼吁大家认识到一件事:我相信 Solana 正在为做出正确的权衡(Odaily 注:因指设定合理的连接切段标准)而战斗,就像以太坊曾经摆脱了诸多问题一样,Solana 也终会摆脱这些问题。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
tcp和udp的区别
tcp和udp的区别

TCP和UDP的区别,在连接性、可靠性、速度和效率、数据报大小以及适用场景等方面。本专题为大家提供tcp和udp的区别的相关的文章、下载、课程内容,供大家免费下载体验。

121

2023.07.25

udp是什么协议
udp是什么协议

UDP是OSI参考模型中一种无连接的传输层协议。本专题为大家带来udp是什么协议的相关文章,免费提供给大家。

295

2023.08.08

tcp和udp有什么区别
tcp和udp有什么区别

tcp和udp的区别有:1、udp是无连接的,tcp是面向连接的;2、udp是不可靠传输,tcp是可靠传输;3、udp是面向报文传输,tcp是面向字节流传输。想了解更多tcp相关的内容,可阅读本专题下面的相关文章。

385

2024.11.14

C++ 设计模式与软件架构
C++ 设计模式与软件架构

本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

4

2026.01.30

c++ 字符串格式化
c++ 字符串格式化

本专题整合了c++字符串格式化用法、输出技巧、实践等等内容,阅读专题下面的文章了解更多详细内容。

2

2026.01.30

java 字符串格式化
java 字符串格式化

本专题整合了java如何进行字符串格式化相关教程、使用解析、方法详解等等内容。阅读专题下面的文章了解更多详细教程。

1

2026.01.30

python 字符串格式化
python 字符串格式化

本专题整合了python字符串格式化教程、实践、方法、进阶等等相关内容,阅读专题下面的文章了解更多详细操作。

1

2026.01.30

java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

20

2026.01.29

java配置环境变量教程合集
java配置环境变量教程合集

本专题整合了java配置环境变量设置、步骤、安装jdk、避免冲突等等相关内容,阅读专题下面的文章了解更多详细操作。

16

2026.01.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
光速学会docker容器
光速学会docker容器

共33课时 | 1.9万人学习

go语言基础与基本函数
go语言基础与基本函数

共17课时 | 3.1万人学习

Css3入门视频教程
Css3入门视频教程

共21课时 | 3.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号