solana学习笔记01

Solana 八项黑科技

PoH 提供时序

Tower BFT 用更少的通信完成共识

🌊 Gulf Stream(湾流)

在传统的区块链里,未被打包的交易会在一个叫做"内存池(Mempool)“的地方排队等待,就像机场的候机大厅,里面挤满了等待登机的乘客。当交易量暴增时,Mempool 就会极度拥堵,Gas 费也随之飙升(以太坊的拥堵问题在牛市期间让无数人苦不堪言)。

而 Gulf Stream 的做法是:它会提前预测谁是下一个负责打包的验证者(因为 Solana 用 PoH 可以准确预判出未来几秒的 Leader 是谁),然后把未打包的交易直接转发给未来的 Leader,而不是让它们在候机大厅里拥挤。乘客还没登机,机票就已经送到了即将起飞的飞机驾驶舱。这样一来,Solana 几乎不存在传统意义上的 Mempool 拥堵问题。

⚡ Sealevel(海平面)

这是 Solana 引以为傲的并行处理引擎。以太坊的 EVM(以太坊虚拟机)在执行智能合约时是完全串行的——一笔交易执行完,才能执行下一笔,就像一条只有单人通行的狭窄走廊。

Sealevel 则像一座宽阔的八车道高速公路。它会分析所有待处理的交易,找出那些互相不冲突(即不涉及同一个账户状态)的交易,然后让它们在多个 CPU 核心甚至 GPU 上同时并行执行。在现代计算机动辄拥有几十个核心的今天,这种并行处理能力意味着 Solana 可以把硬件的算力榨得干干净净。

🚀 Turbine(涡轮机)

Turbine 解决的是区块数据在全网传播的效率问题。在传统区块链中,一个 Leader 节点打包好一个区块后,需要把这个完整的区块广播给全网所有节点,网络节点越多,传播就越慢。Turbine 借鉴了 BitTorrent 的思路,把区块数据切成很多小碎片,然后像洒水一样,让不同的节点各自接收不同的碎片,再互相传递,最终每个节点都能快速拼出完整的区块。节点数量越多,传播反而越快——这是一种反直觉但极为高效的设计。

🔧 Pipelining(流水线)

Pipelining 是一种来自 CPU 设计领域的经典优化思路。它把区块处理分成多个阶段(接收数据、验证签名、执行交易、确认共识),让这些阶段像工厂流水线一样同时运转。当第一个区块在"执行交易"阶段时,第二个区块已经在"验证签名”,第三个区块正在"接收数据"。这使得 Solana 的不同处理单元永远不会处于闲置状态。

🗄️ Cloudbreak(云雾切割)

Cloudbreak 是 Solana 的账户数据库,专门针对并行读写进行了优化。它解决的是一个硬件层面的问题:当 Sealevel 同时并行处理大量交易时,如何高效地从硬盘中同时读写这么多账户的状态,而不造成 I/O 瓶颈。Cloudbreak 用了一套水平扩展的数据结构,让并发读写变得高效而有序。

🗜️ Archivers(归档节点)

Solana 链上的数据量增长极快,为了不让历史数据成为每个全节点的负担,Archivers 是一种专门负责存储历史数据的轻量级节点,它们不参与共识,只负责分布式地保存历史账本,减轻全节点的存储压力。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计