Solana联创:Solana状态增长有何解决方案?
作者:toly, Solana联合创始人
编译:Felix, PANews
每天大约有100万个新账户被添加到Solana中,现在的总状态已超5亿,而快照大小约为70GB。随着硬件的改进,这些数字本身是完全可管理的,但是SVM运行时的目标是提供最便宜的硬件访问方式,为了实现这一点,必须在当前硬件限制内管理状态和内存。
PCI带宽
截至2024年,最新的PCI带宽可以达到0.5 Tbs到1 Tb的吞吐量。或者每秒64GB到128GB。虽然听起来很大,但如果一个tx读取/写入为128MB, 128GBps的PCI带宽会将链的TPS限制在1000左右。实际上,大多数txs访问的是最近加载并缓存到RAM中的内存。理想的设计应该是允许加载1000个具有128MB新状态的txs,再加上10k或更多读取和写入现有缓存状态的txs。
帐户索引
创建新帐户需要证明该帐户当前不存在。这通常是在每个验证器上自动完成,因为每个验证器都有当前所有有效帐户的完整索引。即使帐户数据不存储在本地,只存储数据的哈希,5亿个帐户也将是32字节的密钥+ 32字节的数据哈希或者每项64字节,即32 GB。这已经足可以保证RAM和磁盘的分离。
快照大小
在某些快照大小(Snapshot Size)下,如果部分网络出现硬件故障,冷启动新系统所需的时间足以延长最坏情况的重启时间。随着带宽和硬件的改进,情况每天都在变化,而Solana并没有接近这个限制,但该限制在任何时间点都存在。
概要
内存和磁盘具有不同的性能特征和限制。如果SVM不区分,那么交易和限制就必须针对最坏的情况进行定价,进而限制了性能。在交易执行期间,所有帐户密钥至少必须可用,并且总帐户数量将影响RAM和磁盘PCIi带宽利用率。快照不能任意增大。理想的解决方案是:
- 允许将更多不需要PCI资源的txs打包到区块中
- 管理总索引大小和快照大小
Chilly、Avocado、LSR。糟糕的名字通常是优秀软件设计的标志。Anza和Firedancer的工程师想出了以下方案。
Chilly
帐户运行时的缓存由所有实例(instances)进行确定性管理。从更高层次看,这是访问状态的LRU缓存。在区块构建和调度期间,该实现(implementation)可以很容易检查帐户,不需要锁定或迭代LRU缓存。缓存是用一个非常简单的计数器机制实现。
- 总加载字节被跟踪为Bank::loaded_bytes:u64
- 每个帐户在使用时都用当前运行总数account::load_counter:u64进行标记
- 加载帐户时,如果Bank::loaded_bytes - Account::load_counter > CACHE_SIZE,则帐户被认为是冷帐户,其大小是根据每个区块的LOAD_LIMIT计算
- 新帐户load_counter为0,因此所有新帐户都是冷帐户
- Leader的调度程序将LOAD_LIMIT作为一个水印,类似于写锁CU限制。
这种设计的绝妙之处在于,它很自然地适合当前的调度程序。用户只需要担心他们的优先费。调度程序必须处理将所有低于LOAD_LIMIT和帐户写锁限制的tx放入背包问题。最高优先级的tx可以首先加载并使用LOAD_LIMIT。一旦达到这个限制,所有其他tx仍然可以放入一个区块中。因此,验证器可以最大化缓解txs的缓存局部性。
Avocado
Avacado由两部分组成,状态压缩和索引压缩。首先用哈希替换帐户数据,然后将帐户索引迁移到Binary Trie / patricia Trie。新帐户必须提供证明,证明他们不在“trie”中。
状态压缩
大致设计如下:
- 在分配期间,每个帐户每字节绑定X个lamports。
- 如果 X < 当前经济底价,则将账户保留在内存中,该账户将被压缩
- 压缩是一个多步骤的过程,运行在一个epoch上
- 帐户数据被替换为哈希值(data)
- 帐户密钥仍处于状态之中
- 引用压缩帐户的交易失败
- 解压需要上传类似于加载程序的数据
- 解压的成本应该与分配一个新帐户的成本相同
估计75%的账户在超过6个月的时间里没有被访问,而且很可能永远不会被访问。压缩它们可以节省50%的快照大小。
索引压缩
这是一个更难解决的问题。仅通过状态压缩,验证器仍然拥有系统中所有可能的有效帐户。创建新帐户需要检查此数据库。验证器存储此数据库的成本很高,但用户创建新帐户的成本很低。要保证新私钥不会与现有帐户发生任何冲突。
Binary Trie mining
- Binary Trie作为快照的一部分被跟踪
- 想要获得额外sol的验证者可以创建一个交易,从状态中删除压缩的帐户kv对,并将它们添加到Binary Trie中
- 用户可以在解压过程中将kv从Trie中移除,从而在不被允许的情况下反向执行此操作(这可能需要在解压时进行原子操作,以便在后台服务压缩帐户时更容易)。
- 对于验证器,无论它包含多少kv对,Trie根的大小都是恒定的
- 使用zkp,每个tx可以压缩约30个帐户
- 假设每个区块只有一个,那么压缩5亿个账户需要大约80天的时间
这个过程的关键之处在于,执行此操作的验证者将获得奖励,但并不是所有验证者都必须执行此操作。如果所有验证器都必须执行此操作,那么所有验证器都必须维护当前Binary Trie中的内容,这意味着整个状态必须是快照的一部分。想要维护整个状态的验证器应该提交一个交易,将索引中的N个帐户压缩到Trie中。
新帐户证明
要创建一个新帐户,用户必须证明该帐户在Trie中不存在。维护整个状态的验证器可以生成帐户不在Trie中的证明。这给用户带来了负担,他们必须始终与大型状态提供者连接以生成这些证明。
或者,用户可以证明他们的帐户是用最近的PoH哈希创建的。支持这一点的最简单的方法是:
- 生成新的PKI
- 帐户地址是哈希(最近的PoH哈希,PKI::public_key)
鉴于Trie中的帐户必须首先进行状态压缩,这需要一个完整的epoch。Trie中的任何帐户都不可能使用最近的PoH哈希来生成地址。
其他可以支持的方法是PKI创建本身可以提供一个证明,证明私钥是用哈希(用户隐藏的秘密,最近的PoH哈希)创建的。
LSR
Lightweight Simple Rent,又称 Less Stupid 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,并将被压缩。所以数据开销会减少,甚至索引开销也会减少,这将减少当前状态的大小。减少状态的大小将降低超二次分配的成本。
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
您可能感兴趣
-
交给曲线,别和周期对抗:宏观分析大师 Raoul Pal 的加密 10 年投资复盘作者:Raoul Pal,Real Vision 联合创始人兼 CEO 原标题:《Where Crypto Fits in the Exponential Age》 编译:胡韬,ChainCatche
-
Visa 最新研究: 1.1 亿笔交易背后,Agent 支付正在重构互联网商业作者:Tim Conard(Visa 链上数据负责人)、Lucas Shin(Artemis 数据与研究) 编译:佳欢,ChainCatcher 前言 Artemis 是链上数据领域的分析平台,Vis
-
CLARITY 法案的“最后一公里”为何走不通?作者|Odaily 星球日报 jk《数字资产市场结构法案》,(Digital Asset Market Clarity Act,即 CLARITY 法案)自 2025 年 7 月 17 日以 294
-
Bitget UEX 日报|伊朗突袭美军基地油价反弹;存储芯片继续重挫;苹果与微软、谷歌等稳健上涨 (2026年07月29日)一、热点要闻 美联储动态 决议前市场分歧显著,加息预期升温联邦基金利率期货未平仓合约激增至历史新高(周一达96.7万份),反映交易员对政策路径的巨大分歧。 CME数据显示,7月维持利率不变概率69.5
-
加密概念股每日观察:俄罗斯央行拟出台数字资产交易新规,设立高门槛“数字托管所”交易流程标准化:交易所须以自有规则手册确定市场计价 根据俄罗斯央行最新出台的条例草案,未来所有在俄境内从事数字资产与数字权利有组织交易的平台,必须彻底告别过去的粗放运营模式。 草案明确规定,交易所必须
-
SK海力士Q2 利润暴增六倍仍“未达标”,与 10 家客户敲定长协,HBM4 下半年将加速放量作者:鲍弈龙SK海力士二季度运营利润创历史新高,但仍未达分析师预期,市场对AI芯片需求能否持续支撑高估值的疑虑进一步加深。 7月28日美股盘后,SK海力士公布二季度财报,运营利润同比激增557%至60
-
Robinhood 加密负责人亲述:Meme 代币化美股为“杠铃”获客策略,各业务线都已做到上亿收入原文标题:Johann Kerbrat: Inside Robinhood's Crypto Strategy (Full Explanation)原文来源:TheRollup原文编译:深潮 Tech
- 成交量排行
- 币种热搜榜
World Liberty Financial USDv
泰达币
比特币
以太坊
USD Coin
Solana
瑞波币
Ronin Network
币安币
莱特币
艾达币
狗狗币
大零币
Wormhole
比特现金
SHIB
UNI
OKB
AR
ICP
DOT
LUNC
YGG
DYDX
LPT
ETC