区块链/等级 VIII · Meme币时代/8.1 Solana 的故事/课程 1
起源:历史的证明
可验证的时钟以及为其提供功能的硬件
材料Solana 区块浏览器(例如 Solscan 或 Solana Explorer)阿纳托利·雅科文科于2017年撰写的Solana白皮书Solana 关于 Turbine、Gulf Stream 和 Sealevel 的文档
好奇
- 分布式节点如何在无需持续同步的情况下就事件顺序达成一致?
- 为什么确定性领导者调度能够实现并行事务执行?
- 亚秒级出块时间与验证器硬件要求之间有什么关系?
探索
- 2017年11月,阿纳托利·雅科文科发布了Solana白皮书,介绍了“历史证明”机制。该机制会生成一系列SHA-256哈希值,每个哈希值都是由前一个哈希值计算得出的。这一加密过程实际上起到了可验证的时间标记作用。验证节点可以利用它来确定交易发生的先后顺序,而无需为每笔交易相互发送消息。与那些依赖往返延迟来实现全局同步的共识协议相比,这种机制能够降低通信开销。
- Solana将工作量证明与通过Tower BFT实现的权益证明投票机制相结合。其主网测试版于2020年3月16日启动。区块由指定的领导者每隔约400毫秒生成一次。这种确定的生成时间表使得验证者能够准确知道何时需要生成下一个区块。交易可以提前转发给后续的领导者,从而无需经过全局内存池处理。整个确认过程大约需要32个周期,即13秒左右。
- Turbine通过树形结构将区块拆分成多个小片段,这些片段会并行地分布在整个网络中,从而实现区块的传播。如果传播过程出现延迟,吞吐量就会显著下降。Gulf Stream则通过在交易被纳入区块之前直接将其转发给即将成为区块领导者的节点,以此解决内存池拥堵的问题。这样一来,验证者能够尽早收到交易数据,从而降低延迟,并避免在高流量时段出现瓶颈。
- Sealevel 能够实现智能合约的并行执行,因为交易会提前声明其账户依赖关系。如果两个交易没有共享账户依赖关系,Sealevel 就会在多个 CPU 核心上同时执行它们。这与顺序执行模型不同,在顺序执行模型中,无论逻辑上是否独立,每个交易都必须等待前一个交易完成之后才能继续执行。该架构通过最大化硬件利用率,实现了每秒数千次交易的处理能力。
- 这种权衡意味着需要性能更强的验证器硬件。要实现高吞吐量,就必须拥有强大的处理能力以及足够的网络带宽,才能保证节点的正常运行。Jump Crypto开发的另一款独立客户端Firedancer,从2024年9月开始以混合形式“Frankendancer”在主网上运行,而从2025年12月起则作为完全独立的客户端使用。这为网络带来了更多的客户端选择,从而减少了对单一代码库在共识机制及执行逻辑方面的依赖。
- 要验证这一架构,可打开 Solana 块浏览器。选择任意一个最近的区块,查看其中包含的交易列表。注意,该区块是由该区块元数据中指定的某个验证节点生成的。统计一下该区块中包含的交易数量,以及相邻两个区块之间的时间间隔——通常为 400 毫秒左右;不过当领导节点无法生成区块时,某些区块会被跳过。
关键事实
- History证明机制利用SHA-256哈希序列来创建一个可验证的时钟,用以对交易进行排序。
- Solana 的主网测试版于 2020 年 3 月推出,每个交易处理的间隔时间约为 400 毫秒。
- BFT塔在历史证明时钟的基础上实现共识。
- 涡轮碎片被分解成细小块,从而在验证者网络中并行传播。
- 湾流将交易直接转发给后续的节点,从而绕过了全球内存池。
- Sealevel 通过利用预先声明的账户依赖关系,实现并行执行。
练习 九、六、三、一
9收集列出 Solana 架构或共识机制的 9 个组成部分。针对每一个组件,说明其主要功能以及它在处理能力或延迟方面所解决的具体问题。
6归类根据这些组件在交易生命周期中的不同阶段,将其分为6类:时钟/排序、传播、执行、存储、共识,以及客户端实现。
3提炼将这6个类别简化为3项核心设计原则,这些原则正是支撑Solana实现高吞吐量的关键。重点在于如何降低通信开销以及如何实现并行处理。
1凝结因为亚秒级的交易处理时间要求在网络去中心化与硬件性能之间取得平衡。
事实核查
日期、数字及数据均依据下方列出的已发表资料进行核实。