Solana状态增长解法:账户、快照优化
免费的交易所推荐:
作者:toly,Solana 联合创始人
编译:Felix,PANews
Solana 每天新增约 100 万个账户,总状态已超过 5 亿,快照大小约为 70GB。虽然硬件的改进使这些数字在很大程度上可管理,但 Solana 虚拟机(SVM)的目标是提供最经济的硬件访问方式,因此必须在当前硬件限制内管理状态和内存。
PCI 带宽的瓶颈
截至 2024 年,最新的 PCI 带宽可达 0.5 Tbs 至 1 Tb 的吞吐量,即每秒 64GB 至 128GB。这看似巨大,但如果一个交易(tx)读取/写入 128MB,128GBps 的 PCI 带宽会将链的 TPS 限制在 1000 左右。实际上,大多数交易访问的是最近加载并缓存到 RAM 中的内存。理想的设计应允许加载 1000 个具有 128MB 新状态的交易,再加上 1 万个或更多读取和写入现有缓存状态的交易。
账户索引的挑战
创建新账户需要证明该账户当前不存在。由于每个验证器都有当前所有有效账户的完整索引,因此这通常在每个验证器上自动完成。即使账户数据不存储在本地,只存储数据的哈希,5 亿个账户也将占用 32 字节的密钥 + 32 字节的数据哈希,即每项 64 字节,总计 32 GB。这已经足可以保证 RAM 和磁盘的分离。
快照大小的考量
在某些快照大小下,如果部分网络出现硬件故障,冷启动新系统所需的时间足以延长最坏情况的重启时间。虽然带宽和硬件的改进使情况每天都在变化,Solana 并没有接近这个限制,但该限制在任何时间点都存在。
总体思路
内存和磁盘具有不同的性能特征和限制。如果 SVM 不区分,那么交易和限制就必须针对最坏的情况进行定价,进而限制了性能。在交易执行期间,所有账户密钥至少必须可用,并且总账户数量将影响 RAM 和磁盘 PCI 带宽利用率。快照不能任意增大。理想的解决方案是:
Binary Trie mining
将 Binary Trie 作为快照的一部分进行跟踪。
新账户证明
要创建一个新账户,用户必须证明该账户在 Trie 中不存在。维护整个状态的验证器可以生成账户不在 Trie 中的证明。这给用户带来了负担,他们必须始终与大型状态提供者连接以生成这些证明。
或者,用户可以证明他们的帐户是用最近的 PoH 哈希创建的。支持这一点的最简单的方法是:
生成新的 PKI
账户地址是哈希(最近的 PoH 哈希,PKI::public_key)
鉴于 Trie 中的帐户必须首先进行状态压缩,这需要一个完整的 epoch。Trie 中的任何帐户都不可能使用最近的 PoH 哈希来生成地址。
其他可以支持的方法是 PKI 创建本身可以提供一个证明,证明私钥是用哈希(用户隐藏的秘密,最近的 PoH 哈希)创建的。
LSR (Lightweight Simple Rent) 的设想
如何为分配新帐户的成本定价,以及如何确保旧的废弃账户最终得到压缩,并减少系统的整体负载和新用户的价格?
需要恢复租金(Rent)制度。Rent 是指当前状态下的账户应该支付 X 美元 / 字节 / 天的费用,就像 AWS 上的账户支付存储费用一样。
Rent Rate bonding curve
RentRate = K*(state_size)^N
无论当前状态大小如何,如果很小,费率应该很低,如果接近快照限制,费率应该非常高。
Allocation Minimum Bonding Price
账户必须至少存在一个 epoch。分配需要将帐户带入 Hot 状态。热帐户应该在缓存期间存在。
New Account bond = Epoch Slots * RentRate * Account::size
新账户的余额中必须至少有这么多的 lamports 才能创建。
Hot Account Burn
lruturnverrate = 每个帐户在 LRU 缓存中平均占用的时间,最大值为 1 epoch。这个值可以是一个常数,也可以在链下计算,并作为中位数权益加权常数报告给 SVM。
压缩
当(current slot - account::creation_slot) * RentRate * account::size > account::lamports 时,压缩帐户并烧毁所有 lamports。
上述解决方案,应该会让 State 很便宜,因为随着时间的推移,未使用的帐户最终会达到 lamports 0,并将被压缩。所以数据开销会减少,甚至索引开销也会减少,这将减少当前状态的大小。减少状态的大小将降低超二次分配的成本。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
2026年比特币官方APP下载入口及官网安全访问指南
比特币官方入口在哪里?一个核心门户的权威指南 说起比特币,很多人第一反应是去找它的“官网”或“官方App”。但这里有个关键点需要先理清:比特币本质上是一种去中心化的全球数字货币,它不属于任何一家公司或机构,而是由一个庞大的、遍布全球的社区共同维护。因此,它并没有传统意义上由某个企业运营的“官方网站”
加密货币市值是什么?它能否真实衡量项目的价值与潜力?
加密货币市值:一把关键的标尺,但绝非万能钥匙 在纷繁复杂的加密货币世界里,如何快速判断一个项目的体量与市场地位?市值,无疑是投资者最先接触到的关键指标之一。它简单明了,却又暗藏玄机。今天,我们就来深入聊聊这个既基础又核心的概念,解析其计算逻辑、核心作用,并揭示其背后容易被忽略的局限性。 什么是加密货
精选五大免费加密货币行情平台:实时追踪币价与市场动态
想要在快速变化的加密货币市场中抓住机会,实时、准确的行情数据是必不可少的工具。本文为您精选了一系列功能强大且免费的加密货币行情平台,帮助您轻松追踪价格动态,做出更明智的投资决策。 顶级加密货币行情平台推荐 先说几个核心判断:在眼花缭乱的行情工具里,真正好用的往往就那么几个。下面这份清单,就帮你把那些
币圈行情实时查看渠道汇总与专业分析平台推荐
在瞬息万变的加密货币市场中,及时获取准确、全面的行情数据是每一位投资者和爱好者的核心需求 价格的剧烈波动、市值的实时更新,还有海量项目的动态,都要求我们必须依赖专业的数据平台来做决策。一个真正好用的行情查看渠道,绝不只是提供基础价格那么简单。它得能通过深度整合的数据、直观的图表工具和及时的行业资讯,
代币与加密货币的区别是什么?一文读懂Coin和Token
代币(Token)和币(Coin)有什么区别?它们是一回事吗? 在加密货币的日常讨论里,“代币”和“币”这两个词经常被混为一谈。但事实上,它们代表着截然不同的两种数字资产。最核心的区分标准在于:一个“币”拥有自己独立的、原生的区块链网络,而“代币”则没有自己的链,它更像是搭建在现有区块链平台之上的“
- 日榜
- 周榜
- 月榜
1
2
3
4
5
6
7
8
9
10
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题


