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.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
您可能感兴趣
-
3个月20倍,ZEC的「比特币白银」叙事站得住脚吗?加密朋克对隐私的追求,可以追溯到 16 年前比特币的诞生,在完全透明的账本中嵌入了隐私机制,于是开启了整个加密货币世界。而时至今日,加密领域的隐私仍是一个重要议题。如果你在本轮币圈「版本之子」Mert
-
Robinhood Q3 财报超预期,与 Coinbase 抢滩金融“超级应用”作者: Chloe, ChainCatcher前日 Robinhood 发布 2025 年第三季度财报,与前几日 Coinbase 率先发布的财报同样超出市场预期。摊开两家公司的财报来看,可以发现两者
-
Bitget 每日早报:美股三大指数全线收跌;美联储明年票委强调通胀风险反对进一步降息
市值前100 Token中72个距历史高点跌幅超50%。作者:Bitget今日前瞻1、SEC 预计将于 2025 年 11 月 8 日前对 Grayscale 的 Polkadot(DOT)ETF 申
-
加密世界的“她”时代: Molly 的破壁与火币 HTX 的生态棋局
她的成长故事,本身就是加密世界开放、包容、共建精神的最佳诠释。正如沃尔特·艾萨克森在《创新者》一书中描绘的,那些推动时代进步的角色,往往是一群能在不同领域架设桥梁的“跨界者”。Molly(火币HTX-
-
丢失的代币与被找回的信任:币安资产追踪的隐秘战场
币安不止于交易,更在于守护。撰文:深潮 TechFlow在加密货币的世界里,每一次转账都可能成为一次冒险。“我遇到了一件让我彻夜难眠的大事……转账在链上确认了,但资产不到账,那一刻我真的以为这笔钱彻底
-
ANT.FUN 创始人 Shaun:稳定币与 AGI 融合将催生「金融超级 App」ANT.FUN 创始人兼首席执行官 Shaun 近日在出席由 OSL 集团支持的 Finternet2025 - 亚洲数字金融峰会上,发表了一场关于「稳定币对数字货币行业结构的影响」的主题演讲。他预言
-
比特币的本轮调整:在「四年大周期」尾声,政府关门加剧了流动性冲击
链上指标显示,比特币巨鲸正在逐渐减少,而持有量较小的散户钱包持有量在增加。撰文:何浩 来源:华尔街见闻币圈正在经历一轮深度调整。比特币自 10 月初的历史高点至今,价格已下跌约 20%。这一调整发生在
-
早报 | 特朗普希望将美国打造成“比特币超级大国”;加密货币交易应用 Fomo 完成 1700 万美元 A 轮融资;Ripple 何以撑起 400 亿美元估值整理:ChainCatcher 重要资讯:何一:按照百分比计算现在显然不是底,但行业底层逻辑正在改变 特朗普:希望将美国打造成“比特币超级大国” Arthur Hayes 再次喊单 ZEC,看涨至 1
- 成交量排行
- 币种热搜榜
Momentum
OFFICIAL TRUMP
Aster
泰达币
以太坊
比特币
Solana
USD Coin
瑞波币
币安币
First Digital USD
狗狗币
大零币
达世币
Sui
ZEN
ICP
OKB
FIL
AR
LPT
MINA
BSV
EOS
DYDX