0

0

揭秘区块链中的速度之王 :Solana

DDD

DDD

发布时间:2024-06-07 17:31:15

|

1049人浏览过

|

来源于PANews

转载

一份性能报告

coingecko 于 5 月 17 日发布的 《fastest chains》报告中显示,solana 是大型区块链中速度最快的,最高日均真实 tps 达到 1,054(已经去除了投票交易),sui 是第二快的区块链,最高日均真实 tps 达到 854,bsc 排名第三,但达到的真实 tps 还不到 sui 的一半。

揭秘区块链中的速度之王 :Solana

从这份报告可以看出,性能最好的 Solana 和 Sui 都是非 EVM 兼容的区块链,更进一步,8 个非 EVM 兼容区块链的平均真实 TPS 为 284,17 个 EVM 兼容区块链和以太坊 Layer2 的平均 TPS 仅为 74,非 EVM 兼容区块链的性能是 EVM 兼容区块链的 4 倍左右。

本文将会探讨EVM 兼容区块链的性能瓶颈,并揭开Solana 的性能之道。

EVM 兼容区块链的性能瓶颈

揭秘区块链中的速度之王 :Solana

首先,我们泛化 EVM 区块链到一般区块链。一般区块链想要提升 TPS,一般有如下几种做法:

  • 提升节点性能:通过堆硬件资源去提升节点性能,节点的硬件要求会影响去中心化程度,例如以太坊推荐配置,Cpu 4核,内存 16G,网络带宽 25Mbps,普通用户级设备都能达到,去中心化程度较高;Solana 推荐配置相对更高 Cpu 32核,内存 128G,网络带宽 1Gbps,专业级设备才能达到,去中心化程度一般;
  • 改进底层协议:包括网络协议、密码学、存储等,改进区块链底层协议不改变区块链自身的属性,也不影响区块链的运行规则,可以直接提升区块链的性能,但底层技术关注度低,目前研究领域没有重大突破;
  • 扩大区块:增加区块的大小可以包含更多的交易,进而提高区块链的交易吞吐量,例如比特币现金(BCH)将区块从 1 MB 扩大到 8 MB,之后扩展到 32 MB。但扩大区块的同时也会增大传播延迟引发安全威胁, 比如导致分叉可能性增大和 DDoS 攻击;
  • 共识协议:共识协议保证了区块链各个节点对于区块链的状态更新达成一致,是区块链最重要的一重安全门,已经用于区块链的共识机制有 PoW、PoS、PBFT 等。为了满足可扩展性的需求,一般高性能公链都会改进共识协议,并结合自身特殊机制,例如 Solana 基于 PoH 的共识机制,Avalanche 基于雪崩的共识机制;
  • 交易执行:交易执行只关心单位时间内处理的交易或计算任务数量,以太坊等区块链采用串行方式执行区块中的智能合约交易,在串行执行中,CPU 的性能瓶颈是非常明显的,严重制约了区块链的吞吐量。一般高性能公链都会采用并行执行的方式,有的还会提出更利于并行的语言模型来构建智能合约,例如 Sui Move。

对于 EVM 区块链而言,由于限定了虚拟机,即交易的执行环境,因此最大的挑战在于交易执行。EVM 主要有两个性能问题:

  • 256 位:EVM 设计成一台 256 位的虚拟机,目的是为了更易于处理以太坊的哈希算法,它会明确产生 256 位的输出。然而,实际运行 EVM 的计算机则需要把 256 位的字节映射到本地架构来执行,一个 EVM 操作码会对应多个本地操作码,从而使得整个系统变得非常低效和不实用;
  • 缺少标准库:Solidity 中没有标准库,必须自己用 Solidity 代码实现,虽然 OpenZeppelin 使这一情况得到一定改善,他们提供了一个 Solidity 实现的标准库(通过将代码包含在合约中或是以 delegatecall 的形式调用部署好的合约),但是 EVM 字节码的执行速度远不如预编译好的标准库。

如果站在执行优化的角度,EVM 还存在两大不足:

  • 难以做静态分析:区块链中的并行执行意味着同时处理不相关的交易,把不相关的交易看作互不影响的事件。实现并行执行主要挑战是确定哪些交易是不相关的,哪些是独立的,目前部分高性能公链会预先对交易做静态分析,EVM 的动态跳转(dynamic jumps)机制导致代码很难被静态分析;
  • JIT 编译器不成熟:JIT 编译器(Just In Time Compiler)是现代虚拟机常用的优化手段,JIT 最主要的目标是把解释执行变成编译执行。在运行时,虚拟机将热点代码编译成与本地平台相关的机器码,并进行各种层次的优化。目前虽然有 EVM JIT 的项目,但还处于实验阶段,不够成熟。

因此从虚拟机的选择上,高性能公链更多采用的是基于 WASM, eBPF 字节码或 Move 字节码的虚拟机,而非 EVM。例如 Solana 使用自己独特的虚拟机 SVM 和基于 eBPF 的字节码 SBF。

Fastest Chains:Solana

揭秘区块链中的速度之王 :Solana

Solana 因其PoH(Proof of History )机制以及低延迟高吞吐量而闻名,是最著名的“以太坊杀手”之一。

PoH 的核心是一个类似于可验证延迟函数(VDF)的简单哈希算法。Solana 使用一个序列预映像抵抗的哈希函数(SHA-256)实现,该函数持续运行,用一次迭代的输出作为下一次的输入。这个计算在每个验证者的单个核心上运行。

揭秘区块链中的速度之王 :Solana

虽然序列生成是顺序和单线程的,但验证可以并行进行,从而在多核系统上实现高效的验证。虽然哈希速度存在上界,但硬件改进可能提供额外的性能提升。

揭秘区块链中的速度之王 :Solana

Solana 共识流程

PoH 机制作为可靠且无需信任的时间源,在网络内创建可验证且有序的事件记录。基于 PoH 的计时允许 Solana 网络以预定且透明的方式轮换领导者。这种轮换以固定的时间间隔进行,为 4 个槽(slot),每个槽目前设置为 400 毫秒。⁠这种领导者轮换机制确保每个参与的验证者都有公平的机会成为领导者,是 Solana 网络维护去中心化和安全的重要机制,防止任何单个验证者在网络上获得过多的权力。

揭秘区块链中的速度之王 :Solana

每个槽的时间段,领导者提出一个新块,其中包含从用户收到的交易。领导者验证这些交易,打包成一个区块,然后将该块广播到网络的其余验证者。这种提议和广播区块的过程称为区块生产,网络中的其他验证者必须对区块的有效性进行投票。验证者检查区块的内容,确保交易有效并遵守网络规则。如果一个区块获得了绝大多数权益权重的投票,则该区块被视为已确认。此确认过程对于维护 Solana 网络安全和防止双花至关重要。

当前领导者的时间段结束,网络不会停止或等待区块确认,而是会移动到下一个时间段,为后续领导者提供区块生产的机会,整个过程重新开始。这种方法可确保 Solana 网络保持高吞吐量并保持弹性,即使某些验证者遇到技术问题或离线也是如此。

Solana 性能之道

由于 Solana 网络可以提前确认领导者,因此 Solana 不需要公共内存池来保存用户的交易。当用户提交交易时,RPC 服务器将其转换为 QUIC 数据包,并立即将其转发领导者的验证者。这种方法被称为 Gulf Stream,它允许快速的领导者转换和交易的预执行,减少了其他验证者的内存负载。

Solana 的区块数据带入到内核空间,然后传递给 GPU 以进行并行签名验证,一旦 GPU 上验证了签名,数据就会传递给 CPU 进行交易执行,最后返回到内核空间做数据持久化。这种将数据划分为不同硬件部件的多个处理过程,称为流水线技术,能最大化硬件利用率,加快区块的验证和传输速度。

由于 Solana 的交易显式指定访问哪些账户,Solana 的交易调度器可以利用读写锁机制并行执行交易。Solana 交易调度器每个线程都有自己管理的队列,顺序且独立地处理交易,尝试锁定(读写锁)交易的账户并执行交易,账户冲突的交易会稍后执行。这种多线程并行执行技术称为Sealevel。

领导者传播区块的过程,将 QUIC 数据包(可选地使用纠删码)划分为较小的数据包,并将它们分发给具有分层结构的验证者。这种技术称为 Turbine,主要是减少领导者的带宽使用。

验证者在投票过程中,使用一种针对分叉投票的共识机制。验证者无需等待投票即可继续进行区块生产;相反,区块生产者会持续监控有效的新投票,并实时将其纳入当前区块中。这种共识机制称为 TowerBFT,通过实时合并分叉投票,Solana 确保了更高效、更精简的共识流程,从而提高了整体性能。

针对区块的持久化过程,Solana 开发了 Cloudbreak 数据库,通过以特定方式对账户数据结构进行分区,以受益于顺序操作的速度并采用内存映射文件,从而最大限度地提高 SSD 的效率。

为减轻验证者负担,Solana 将数据存储从验证者转移到名为 Archiver 的节点网络。交易状态的历史记录被拆分为很多碎片,并使用纠删码技术。Archiver 用于存储状态的碎片,但不参与共识。

总结

Solana 的愿景是成为一个其软件按照硬件的速度扩展的区块链,因此 Solana 充分利用当今计算机中可用的所有 CPU、GPU 和带宽能力,以最大化性能,理论最大速度能达到 65,000 TPS。

正是因为 Solana 的高性能和扩展性,让 Solana 成为处理高频交易和复杂智能合约的首选区块链平台,无论是年初的 DePIN/AI 赛道,还是近期火热的 Meme 赛道,Solana 都展现出巨大的潜力。

以太坊 ETF 推出后,Solana 也成为下一个 ETF 呼声最大的加密货币,尽管 SEC 仍将 Solana 列为证券,短时间内不会批准其他加密货币 ETF。但在加密市场,共识即价值,Solana 的共识或许正变得和比特币与以太坊一样坚不可摧。

热门AI工具

更多
DeepSeek
DeepSeek

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

豆包大模型
豆包大模型

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

通义千问
通义千问

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

腾讯元宝
腾讯元宝

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

文心一言
文心一言

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

讯飞写作
讯飞写作

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

即梦AI
即梦AI

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

ChatGPT
ChatGPT

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

相关专题

更多
treenode的用法
treenode的用法

​在计算机编程领域,TreeNode是一种常见的数据结构,通常用于构建树形结构。在不同的编程语言中,TreeNode可能有不同的实现方式和用法,通常用于表示树的节点信息。更多关于treenode相关问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

539

2023.12.01

C++ 高效算法与数据结构
C++ 高效算法与数据结构

本专题讲解 C++ 中常用算法与数据结构的实现与优化,涵盖排序算法(快速排序、归并排序)、查找算法、图算法、动态规划、贪心算法等,并结合实际案例分析如何选择最优算法来提高程序效率。通过深入理解数据结构(链表、树、堆、哈希表等),帮助开发者提升 在复杂应用中的算法设计与性能优化能力。

21

2025.12.22

深入理解算法:高效算法与数据结构专题
深入理解算法:高效算法与数据结构专题

本专题专注于算法与数据结构的核心概念,适合想深入理解并提升编程能力的开发者。专题内容包括常见数据结构的实现与应用,如数组、链表、栈、队列、哈希表、树、图等;以及高效的排序算法、搜索算法、动态规划等经典算法。通过详细的讲解与复杂度分析,帮助开发者不仅能熟练运用这些基础知识,还能在实际编程中优化性能,提高代码的执行效率。本专题适合准备面试的开发者,也适合希望提高算法思维的编程爱好者。

28

2026.01.06

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

397

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

575

2023.08.10

线程和进程的区别
线程和进程的区别

线程和进程的区别:线程是进程的一部分,用于实现并发和并行操作,而线程共享进程的资源,通信更方便快捷,切换开销较小。本专题为大家提供线程和进程区别相关的各种文章、以及下载和课程。

523

2023.08.10

Python 多线程与异步编程实战
Python 多线程与异步编程实战

本专题系统讲解 Python 多线程与异步编程的核心概念与实战技巧,包括 threading 模块基础、线程同步机制、GIL 原理、asyncio 异步任务管理、协程与事件循环、任务调度与异常处理。通过实战示例,帮助学习者掌握 如何构建高性能、多任务并发的 Python 应用。

186

2025.12.24

java多线程相关教程合集
java多线程相关教程合集

本专题整合了java多线程相关教程,阅读专题下面的文章了解更多详细内容。

15

2026.01.21

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

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

8

2026.01.30

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
光速学会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号