网络升级
以下每个条目都描述了 StableChain 版本中发生的变化、重要性以及您是否需要执行任何操作。版本按最新到最旧的顺序列出。有关二进制文件、提交哈希和升级区块高度,请参阅主网版本历史和测试网版本历史。
如何阅读这些说明
下面是一些常见术语及其含义:
- 状态破坏性升级:所有节点必须在同一区块高度运行新的二进制文件,通过治理提案协调。这些版本在版本历史表中具有升级高度。如果您运行验证器,则必须按计划升级,否则您的节点将停止遵循链。
- 向后兼容升级:新的二进制文件与旧的二进制文件兼容,因此无需协调切换。这些版本没有升级高度。您可以在方便时通过替换二进制文件进行升级。
- 燃气豁免:StableChain 的一项功能,允许赞助商支付交易费用,这样发送方无需持有燃气代币即可进行交易。
- 系统交易:协议本身而非普通用户发出的特殊交易,用于运行内部操作。
- 预编译:位于固定地址的内置合约,运行本机代码而不是 EVM 字节码,用于需要快速执行的常见操作。
要检查您的节点运行的是哪个版本:
stabled versionv1.8.0v1.8.0 当前
一个状态机破坏性主网升级,于 2026 年 8 月 26 日在区块 36,976,000 激活。它将四个更改分为两个主题:更快的区块处理和优先级流量的可预测包含。
| 举措 | 区块阶段 | 变化内容 | 预期结果 |
|---|---|---|---|
| 乐观并行执行 (OPE) | 执行 | Block-STM 替代了顺序交易执行。 | 多核执行,目标约为 10,000 TPS。 |
| 选择性 RecheckTx | 提交后内存池重新检查 | 节点仅重新检查由已提交区块更改的账户的交易。 | 在测量最佳情况下,持续吞吐量最高可提高一倍,节点 CPU 使用率降低 31-34%。 |
| MemIAVL | 状态持久化 | 内存映射快照和预写日志 (WAL) 替代了 LevelDB 支持的存储。 | 写入放大从 10-50 倍降至约一次写入。 |
| 2D 随机数和企业区块空间 | 提交和区块提议 | 独立的随机数通道与每个通道预留的燃气容量相结合。 | 符合条件的企业交易的确定性下一区块包含。 |
这些更改解决了区块生命周期的不同阶段:
- 提交:2D 随机数允许账户通过独立的随机数通道提交交易。一个通道上的卡顿交易不会阻塞其他通道。
- 提议:保证的区块空间将区块分为企业、交易类型和普通通道。每个通道都有一个在提议和验证期间强制执行的预留燃气预算。
- 执行:OPE 通过 Block-STM 并发执行交易,然后根据固定的区块内顺序进行验证。每个节点仍然产生相同的状态。
- 提交:MemIAVL 将更改附加到 WAL,并针对一个内存映射快照。这避免了 LevelDB 压缩及其重复的磁盘写入。
- 提交后重新检查:选择性 RecheckTx 使用区块的状态更改增量仅重新检查受影响的发送方,而不是扫描整个内存池。
吞吐量变化
OPE 将交易执行从一个 CPU 核心转移到多个核心。交易乐观执行,冲突触发重新执行,固定的交易顺序保持确定性结果。
选择性 RecheckTx 在每次提交后减少工作量。在一次最佳情况测试中,有 10,000 个来自唯一发送方的待处理交易,吞吐量从 700 增加到 1,400 TPS。对于更典型的负载,预计改进为 1.5-1.7 倍。CometBFT 检测应用程序是否支持选择性重新检查,并在不支持时回退到完全重新检查。
MemIAVL 从状态存储路径中移除 LevelDB。写入变为包含原始更改集的顺序 WAL 条目。读取变为指向操作系统页面缓存的指针查找。单独的 VersionDB(由 RocksDB 支持)提供早于最早保留快照的历史状态。
可预测的包含
2D 随机数赋予每个账户多个独立的随机数通道。NonceKey 选择通道。NonceKey = 0 保留正常的 EVM 兼容序列,而协议将 uint64 范围的上限保留供其自身使用。MaxUint64 标记无序交易,该交易使用 TimeoutTimestamp 进行重放保护。
该版本添加了 CustomTx(交易类型 0x3F),与现有 EVM 交易格式并存。设置了第 63 位的 NonceKey 标识企业通道交易,MaxUint64 除外。
保证的区块空间将每个区块划分为企业、交易类型和普通通道,并具有单独的燃气配额。治理通过一个 MsgUpdateParams 提案控制通道参数,接受的更新在下一个区块中生效。
主网激活播种了 max_blockspace_gas_weight = 20 和一个权重为 50 的企业通道。它没有播种交易类型通道。当验证者行为诚实且网络保持同步时,符合条件的企业交易将获得确定性的下一区块包含。
StableSystem 预编译现在暴露 blockspaceLanes()。任何客户端都可以通过 eth_call 查询活动通道注册表并重现协议的分类规则。
阅读保证的区块空间了解通道模型,或阅读StableSystem 参考了解查询 ABI。
激活和节点配置
v1.8.0 处理程序运行模块迁移,启用 NonceKey 预编译,安装 EIP-2935 历史存储,并将 max_gas_per_tx 设置为 40,000,000。
该版本向 config.toml 和 app.toml 都添加了配置键。操作员必须在激活前安装 v1.8.0 模板,然后恢复其节点特定设置。对于记录的主网升级,不需要状态导出、导入或快照重置。
二进制文件强制关闭 inter-block-cache。归档节点操作员在安装默认 app.toml 模板后必须恢复其原始修剪设置。
可靠性和安全性变更
- Nonce 与最终状态进行检查,关闭跨区块交易重放。
- 提议处理在准入和共识阶段强制执行通道预算和每笔交易的燃气上限。
- 顺序执行和 Block-STM 执行现在产生相同的累积 EVM 日志索引和
LastResultsHash。 - JSON-RPC 对昂贵的请求、WebSocket 订阅、证据存储键和跟踪输出应用限制。
- 流式区块结果和
BlockResultsForLogs在大型日志查询期间限制内存使用。 - MemIAVL 和 VersionDB 在版本间隙上关闭失败,并从中断的 WAL 或快照写入中安全恢复。
谁需要采取行动:在激活后加入或升级的节点必须使用 v1.8.0 二进制文件和配置模板。按照升级节点并确认主网版本历史中的当前二进制文件。
v1.3.1
一个向后兼容的补丁。它没有协调的升级高度,因此节点操作员可以通过随时替换二进制文件来采用它。
v1.3.0
一个侧重于安全的状态破坏性升级,也使燃气豁免功能更加灵活。燃气豁免的更改允许新的合作伙伴(例如钱包和交易所)通过治理提案在以后加入,而不是每次都需要另一个状态破坏性升级。
谁需要采取行动:所有节点操作员都在计划高度升级。请参阅主网版本历史以获取确切的高度。
安全改进:- 不再注册非公共 JSON-RPC 命名空间,并且仅当
AllowInsecureUnlock=true时才启用签名 API。 - 燃气豁免输入得到强化:地址必须使用 EIP-55 规范格式,查询输入受长度和格式限制,并且加强了包装器类型、链 ID 和 EIP-7702 内部交易验证。
- 系统交易现在针对
to地址和方法选择器进行验证,而不仅仅是from地址。这关闭了可能触发免手续费执行的路径。 - Prague 预编译地址范围已添加到被阻止地址列表,并且未知预编译方法现在需要查询燃气。
- 纠正了失败的有状态预编译调用的燃气核算。
- 解决了 ERC-20 内部调用失败后的退款禁用状态泄漏。
- 修复了预编译热集跟踪和
COINBASE操作码行为。 - 将 EIP-7702 授权回滚与规范对齐。
- 修复了报告
from=0x0的系统交易响应、feeHistory错误日志记录以及历史完整交易响应中的链 ID 一致性。
v1.2.2
一个向后兼容的可选升级,使 StableChain 与官方上游共识版本对齐,并清理了两个查询行为。
谁需要采取行动:没有人需要。此升级不需要治理提案。节点操作员可以通过随时替换二进制文件来采用它。
变化:- 将 CometBFT 升级到官方
v0.38.21。这遵循 v1.1.4 中早些时候发布的安全性补丁,并允许外部合作伙伴验证网络运行的确切共识版本。 - 删除了燃气豁免交易查询中的重复日志索引。
- 为系统交易查询的 RPC 响应添加了保护措施。
v1.2.1
一个向后兼容的热修复,它弥补了两个问题,如果被利用,可能会导致链停止。
谁需要采取行动:验证者必须升级。对于包括 RPC 提供商在内的其他节点操作员,升级是可选的。它不需要治理提案。
修复:- 关闭了系统交易欺骗路径,用户可以通过设置
MsgEthereumTx.From == 0x1来绕过身份验证并调用仅限系统的预编译,然后使用欺骗性交易反复强制ProcessProposal拒绝区块并使共识停滞。 - 修复了内存池中毒导致的链停止问题,其中
ExtensionOptionsWaiver交易可以通过CheckTx但导致ProcessProposal拒绝整个区块。
早期版本
详细的发布说明从 v1.2.1 开始。对于 v1.2.0 及更早版本,包括创世版本,请参阅版本历史表以获取二进制文件、提交哈希和升级高度:

