> ## Documentation Index
> Fetch the complete documentation index at: https://docs.monad.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# 发布记录

本页面记录每个值得注意的发布版本。部分发布仅面向特定网络。

<Note>
  我们将变更分类为

  * 协议变更(通常需要新的 [Revision](/zh/developer-essentials/changelog#revisions))
    * 通常标记为 **\[EVM]**、**\[Consensus]** 或 **\[Network params]**
  * RPC/SDK 行为变更(通常标记为 **\[RPC]**)
  * 性能变更
    * 根据变更的性质标记为 **\[EVM]**、**\[Consensus]** 或 **\[RPC]**
  * 内部/节点运维变更(通常标记为 **\[Node ops]**)
</Note>

## v0.16.2

| 网络                                                        | 发布日期       | 说明 |
| --------------------------------------------------------- | ---------- | -- |
| [`mainnet`](/zh/developer-essentials/network-information) | 暂无         |    |
| [`testnet`](/zh/developer-essentials/testnet)             | 2026-09-03 |    |

标签或哈希:

* `monad-bft`(共识):[标签 `v0.16.2`](https://github.com/category-labs/monad-bft/releases/tag/v0.16.2)(`4374d389e`)
* `monad`(执行):[标签 `v0.16.2+1`](https://github.com/category-labs/monad/releases/tag/v0.16.2%2B1)(`aae93c535`)

#### 亮点

* **Raptorcast v1 发布** —— 节点现在在主路径和次路径上均以 v1 raptorcast 线路格式发布提案。
* **JSON-RPC 错误码修正**,覆盖 `eth_call`、`eth_estimateGas`、`eth_simulateV1`、`debug_*` 与 `txpool_*`。
* 在多目标负载下,Raptorcast 吞吐量提升约 16.7%。

#### 值得注意的协议变更

* **\[Consensus]** Raptorcast 推进到 `accept_both_publish_v1` 阶段;节点在主路径和次路径上均以 v1 线路格式发布提案。
  * 参考:[monad-bft PR #3177](https://github.com/category-labs/monad-bft/pull/3177)
* **\[Consensus]** `AdvanceRound` 通过广播而非 secondary raptorcast 发送给全节点,避免在 v1 下与提案承诺发生碰撞。
  * 参考:[monad-bft PR #3176](https://github.com/category-labs/monad-bft/pull/3176)

#### 值得注意的 RPC/SDK 变更

* **\[RPC]** 修正 call、simulate、debug、txpool 与 websocket 处理器返回的 JSON-RPC 错误码与消息。
  * 参考:[monad-bft PR #3228](https://github.com/category-labs/monad-bft/pull/3228)
* **\[RPC]** 修正零费率 `eth_call` —— `maxFeePerGas` 为零时不再被抬升至 base fee,与 geth 和 reth 保持一致。
  * 参考:[monad-bft PR #3164](https://github.com/category-labs/monad-bft/pull/3164)
* **\[RPC]** 修正 `BlockTagOrHash` 的 EIP-1898 兼容性。
  * 参考:[monad-bft PR #3163](https://github.com/category-labs/monad-bft/pull/3163)
* **\[RPC]** `eth_createAccessList` 现在接受 state overrides。
  * 参考:[monad-bft PR #3179](https://github.com/category-labs/monad-bft/pull/3179)

#### 值得注意的健壮性变更

* **\[Consensus]** 验证者只向其全节点发布首次接受的提案,因此不再转发发生等价冲突的提案。
  * 参考:[monad-bft PR #3180](https://github.com/category-labs/monad-bft/pull/3180)
* **\[RPC]** 为 `eth_feeHistory` 增加并发限制器,限制大区块范围下的内存占用。
  * 参考:[monad-bft PR #3212](https://github.com/category-labs/monad-bft/pull/3212)
* **\[EVM]** 修正当节点重置为起始区块号时的 runloop 处理。
  * 参考:[monad(执行)PR #2501](https://github.com/category-labs/monad/pull/2501)

#### 值得注意的性能变更

* **\[Consensus]** Raptorcast 在鉴权发送路径中避免了冗余的 wire-auth 查询 —— 由 15,796 提升至 18,427 chunks/s。
  * 参考:[monad-bft PR #3223](https://github.com/category-labs/monad-bft/pull/3223)

#### 值得注意的内部变更

* **\[Node ops]** 节点可选择不再响应 statesync 请求。`node.toml` 中的可选设置,默认值不变。
  * 参考:[monad-bft PR #3208](https://github.com/category-labs/monad-bft/pull/3208)
* **\[Node ops]** 将 `openssl` crate 升级至 0.10.81,关闭七个安全公告。仅在配置了 MongoDB 归档后端的 `monad-rpc` 路径上触及;`monad-node` 不链接该库。
  * 参考:[monad-bft PR #3191](https://github.com/category-labs/monad-bft/pull/3191)
* **\[EVM]** 每个进程为 `Address`、`bytes32` 和 `StorageKey` 的哈希设置种子,使得针对节点本地映射的碰撞键无法被预先计算。
  * 参考:[monad(执行)PR #2462](https://github.com/category-labs/monad/pull/2462)
* **\[EVM]** 使用系统 libsecp256k1 上内置的 `monad_recover_address` 替换 silkpre 的 ECRECOVER 预编译。在已发布的 Docker 镜像之外新增了 `libsecp256k1-dev` 构建依赖。
  * 参考:[monad(执行)PR #2437](https://github.com/category-labs/monad/pull/2437)
* **\[EVM]** 允许 `runloop_monad_ethblocks` 中进行双数据库提交,其中 `secondary_db` 为可选。
  * 参考:从 `staging-v0.16.1` cherry-pick(`df14e67bb`)
* **\[EVM]** 使用 `for_each_db` 统一双数据库镜像。
  * 参考:从 `staging-v0.16.1` cherry-pick(`d836afc18`)

## v0.16.1

| 网络                                                        | 发布日期 | 说明                                           |
| --------------------------------------------------------- | ---- | -------------------------------------------- |
| [`mainnet`](/zh/developer-essentials/network-information) | 暂无   | 必须在 2026-09-02 14:30 UTC 的 MONAD\_TEN 激活之前完成 |
| [`testnet`](/zh/developer-essentials/testnet)             | 暂无   |                                              |

标签或哈希:

* `monad-bft`(共识):[标签 `v0.16.1`](https://github.com/category-labs/monad-bft/releases/tag/v0.16.1)(`12b7017d6`)
* `monad`(执行):[标签 `v0.16.1`](https://github.com/category-labs/monad/releases/tag/v0.16.1)(`7279dfc7b`)

#### 亮点

* **主网 MONAD\_TEN 激活** —— MIP-8(页编码存储)在主网上于时间戳 `1788359400`(2026-09-02 14:30 UTC)激活。这是 v0.16.0 中随测试网激活一起发布的主网对应版本。
* **主网现要求页编码时间线** —— 主网节点必须提供页编码的主时间线(阶段 C)或活跃的次要时间线(阶段 A/B dual-db),否则将无法启动。
* 在 ethblocks runloop 中支持 dual-db 提交,允许仍处于阶段 A/B 的节点向两条时间线提交。

#### 协议方面的显著变更

* **\[EVM]** 设置主网的 MONAD\_TEN 激活时间戳 —— `1788359400`(2026-09-02 14:30 UTC)。在该时间戳之前,MONAD\_NINE 规则继续生效。
  * 参考:[monad(执行)PR #2489](https://github.com/category-labs/monad/pull/2489)
* **\[EVM]** 在主网上强制执行页编码时间线断言 —— 此前仅测试网。尚未完成阶段 A(dual-db 激活)的节点将无法启动。参见 [MIP-8 激活与页存储迁移](/zh/node-ops/upgrade-instructions/page-storage-mip-8-migration)。
  * 参考:[monad(执行)PR #2489](https://github.com/category-labs/monad/pull/2489)

#### 稳健性方面的显著变更

* **\[共识]** monad-dataplane:当 io\_uring buffer ring 设置失败时优雅降级,而不是导致节点启动失败。
  * 参考:[monad-bft PR #3201](https://github.com/category-labs/monad-bft/pull/3201)
* **\[EVM]** 允许在 `runloop_monad_ethblocks` 中进行 dual-db 提交,其中次要数据库为可选,使得阶段 A/B 的节点可向两条时间线提交。

#### 内部方面的显著变更

* **\[EVM]** 将 dual-db 镜像统一到 `for_each_db` 后面,替换 runloop 中重复的提交路径。
* **\[共识]** 通过移除一个陈旧的 metrics 参数修复 buffer-ring 降级构建。

## v0.16.0

| 网络                                                        | 发布日期       | 备注                         |
| --------------------------------------------------------- | ---------- | -------------------------- |
| [`mainnet`](/zh/developer-essentials/network-information) | N/A        |                            |
| [`testnet`](/zh/developer-essentials/testnet)             | 2026-08-06 | 2026-08-06 至 2026-08-08 采纳 |

标签或哈希:

* `monad-bft` (consensus): [tag `v0.16.0`](https://github.com/category-labs/monad-bft/releases/tag/v0.16.0) (`c616743d1`)
* `monad` (execution): [tag `v0.16.0`](https://github.com/category-labs/monad/releases/tag/v0.16.0) (`e81ffe31c`)

#### 亮点

* **MONAD\_TEN 激活** — MIP-8(page-encoded storage)在测试网时间戳 `1786545000`(2026-08-12 14:30 UTC)激活。主网激活尚未设定(分阶段推出)。
* 协议层面的变更,要求从 v0.15.x 提升到 v0.16.0。
* 在 v0.15.2 基础上的健壮性修复、性能改进和内部重构。

#### 主要协议变更

* **\[EVM]** 激活 MONAD\_TEN — MIP-8(page-encoded storage)在测试网激活(2026-08-12 14:30 UTC)。要求 dual-db 模式;未完成 Phase A 的节点将无法启动。
  * 参考:[monad (execution) PR #2459](https://github.com/category-labs/monad/pull/2459)

#### 主要健壮性变更

* **\[EVM]** 在测试网强制执行 page-encoded 时间线断言 — 未完成 Phase A(dual-db 激活)的节点将无法启动。参见 [MIP-8 激活与 Page Storage 迁移](/zh/node-ops/upgrade-instructions/page-storage-mip-8-migration)。 Ref: [monad (execution) PR #2475](https://github.com/category-labs/monad/pull/2475)
* **\[Consensus]** 拒绝超过 32 字节的存储 key。 Ref: [monad-bft PR #3160](https://github.com/category-labs/monad-bft/pull/3160)
* **\[Consensus]** Raptorcast:强化 secondary raptorcast 客户端。 Ref: [monad-bft PR #3157](https://github.com/category-labs/monad-bft/pull/3157)
* **\[EVM]** 在超过最大代码大小时抛出;通过 `MONAD_THROW` 派发 `MONAD_ASSERT_THROW`。 Ref: [monad (execution) PR #2415](https://github.com/category-labs/monad/pull/2415)
* **\[EVM]** mpt:将 promote target `primary_ring_idx` 限制为有效的 ring selector。 Ref: [monad (execution) PR #2421](https://github.com/category-labs/monad/pull/2421)

#### 主要性能变更

* **\[EVM]** 调整运行时 `signextend` 以获得更好的代码生成。 Ref: [monad (execution) PR #1527](https://github.com/category-labs/monad/pull/1527)

#### 主要内部变更

* **\[Node ops]** 默认启用 metrics 端点。 Ref: [monad-bft PR #3167](https://github.com/category-labs/monad-bft/pull/3167)
* **\[EVM]** 重构 ECDSA 签名恢复(包括 `EcdsaSignature` 重命名)。 Ref: [monad (execution) PR #2402](https://github.com/category-labs/monad/pull/2402)
* **\[EVM]** 跨 `TrieDb` 与 `TrieRODb` 去重存储读取路径。 Ref: [monad (execution) PR #2436](https://github.com/category-labs/monad/pull/2436)
* **\[EVM]** 在 `StoragePageSlots` 后去重 page→slot 扇出。 Ref: [monad (execution) PR #2434](https://github.com/category-labs/monad/pull/2434)
* **\[EVM]** 内置 blake2b compression,替换 silkpre 的 BLAKE2F 预编译。 Ref: [monad (execution) PR #2418](https://github.com/category-labs/monad/pull/2418)
* **\[EVM]** snapshot:提高 fd 限制、快速失败、在 dump 时报告 open 错误。 Ref: [monad (execution) PR #2419](https://github.com/category-labs/monad/pull/2419)
* **\[EVM]** 在 `StateTracer` 中添加 `is_code_tracer`。 Ref: [monad (execution) PR #2448](https://github.com/category-labs/monad/pull/2448)
* **\[EVM]** Runloop 作为 C 库。 Ref: [monad (execution) PR #2021](https://github.com/category-labs/monad/pull/2021)

## v0.15.2

| 网络                                                        | 发布日期       | 备注                         |
| --------------------------------------------------------- | ---------- | -------------------------- |
| [`mainnet`](/zh/developer-essentials/network-information) | N/A        |                            |
| [`testnet`](/zh/developer-essentials/testnet)             | 2026-07-27 | 2026-07-27 至 2026-07-31 采纳 |

标签或哈希:

* `monad-bft` (consensus): `staging-v0.15.2` (`6373056bf`)
* `monad` (execution): `staging-v0.15.2` (`2422a8592`)

#### 亮点

* **MIP-8 gas 表** — 添加基于 page 的存储 gas 表;`eth_createAccessList` 按 page 对存储 key 去重(将在未来版本中激活)
* **MIP-12 后续:区块奖励验证** — 现在会验证最大区块奖励;超过上限的区块将被拒绝
* **EIP-7843:交易上下文中的共识轮次** — Monad 共识轮次编号通过 `BlockHeader::slot_number` 传入 `evmc_tx_context`
* **双时间线 DB 支持** — MPT 数据库支持辅助的 page-encoded 时间线;statesync 支持 slot-encoded 和 page-encoded 两种数据库

#### 主要共识/协议变更

* **\[Consensus]** Raptorcast:推出 deterministic stage 1 — 将所有节点纳入 "accept both publish v0"。 Ref: [monad-bft PR #3143](https://github.com/category-labs/monad-bft/pull/3143)
* **\[Execution]** MIP-8:基于 page 的存储 gas 表 — 添加基于 page 的 gas 表(将在未来版本中激活)。 Ref: [monad (execution) PR #2268](https://github.com/category-labs/monad/pull/2268), [monad-bft PR #3150](https://github.com/category-labs/monad-bft/pull/3150)
* **\[Execution]** MIP-12 后续:验证最大区块奖励 — 现在会拒绝超过上限的区块。 Ref: [monad (execution) PR #2365](https://github.com/category-labs/monad/pull/2365)
* **\[Execution]** EIP-7843:通过 `BlockHeader::slot_number` 将 Monad 共识轮次传入 `evmc_tx_context`。 Ref: [monad (execution) PR #2324](https://github.com/category-labs/monad/pull/2324)
* **\[Execution]** AMSTERDAM EVM revision — 面向 Amsterdam 硬分叉的新 EVM revision。 Ref: [monad (execution) PR #2368](https://github.com/category-labs/monad/pull/2368)

#### 主要 RPC/SDK 变更

* **\[RPC]** 在 MIP-8 下,`eth_createAccessList` 现按 page 对存储 key 去重。 Ref: [monad (execution) PR #2253](https://github.com/category-labs/monad/pull/2253)
* **\[RPC]** 修复 `eth_getStorageAt` 在 page-encoded 节点上返回 0 的问题。 Ref: [monad-bft PR #3153](https://github.com/category-labs/monad-bft/pull/3153), [monad (execution) PR #2393](https://github.com/category-labs/monad/pull/2393)
* **\[RPC]** `eth_call` 执行 revert 错误码从 `-32603` 改为 `3` — 与标准 EVM 行为对齐。 Ref: [monad-bft PR #2683](https://github.com/category-labs/monad-bft/pull/2683)

#### 主要健壮性变更

* **\[Consensus]** Raptorcast:拒绝 round 跨度不合理的 group 邀请。 Ref: [monad-bft PR #3145](https://github.com/category-labs/monad-bft/pull/3145)
* **\[Consensus]** Wireauth:在响应方 key 被验证之前移除不安全的可变操作。 Ref: [monad-bft PR #3140](https://github.com/category-labs/monad-bft/pull/3140)
* **\[Consensus]** Raptorcast:限制 `RoundInfoCache` 的内存使用。 Ref: [monad-bft PR #3132](https://github.com/category-labs/monad-bft/pull/3132)
* **\[Consensus]** `monad-state`:限制每条消息转发的交易数。 Ref: [monad-bft PR #3015](https://github.com/category-labs/monad-bft/pull/3015)
* **\[Execution]** 用于执行状态读取的内存受限 LRU 缓存。 Ref: [monad (execution) PR #2376](https://github.com/category-labs/monad/pull/2376)
* **\[Execution]** Statesync:拒绝带有尾部字节的消息。 Ref: [monad (execution) PR #2370](https://github.com/category-labs/monad/pull/2370)
* **\[Execution]** 在动态历史长度调整中同步修剪两条时间线。 Ref: [monad (execution) PR #2431](https://github.com/category-labs/monad/pull/2431)
* **\[Execution]** 通过 FFI 暴露 dual-DB 迁移阶段。 Ref: [monad (execution) PR #2433](https://github.com/category-labs/monad/pull/2433)
* **\[Execution]** 修复 `monad-mpt --activate-secondary` 在先前运行过 `--upgrade` 的节点上损坏 DB 元数据的问题;添加 `monad-mpt --repair` 以恢复受影响的 pool。 Ref: [monad (execution) PR #2403](https://github.com/category-labs/monad/pull/2403)
* **\[Execution]** DbCache 直读缓存 — 读取在 miss 时会被缓存,减少 page-encoded 提交期间的冗余磁盘读取。 Ref: [monad (execution) PR #2414](https://github.com/category-labs/monad/pull/2414)

#### 主要内部变更

* **\[Consensus]** Prometheus 配置移至 `node.toml` — `prometheus_addr` 和相关选项现在位于 `[prometheus]` 节;CLI flag 已移除。 Ref: [monad-bft PR #3141](https://github.com/category-labs/monad-bft/pull/3141)
* **\[Consensus]** 将 triedb 迁移阶段作为 Prometheus 指标暴露。 Ref: [monad-bft PR #3169](https://github.com/category-labs/monad-bft/pull/3169)
* **\[Execution]** Dual-timeline:MPT 数据库支持辅助时间线。 Ref: [monad (execution) PR #2228](https://github.com/category-labs/monad/pull/2228), [PR #2302](https://github.com/category-labs/monad/pull/2302)
* **\[Execution]** Page storage:TrieDb 和 runloop 支持 page-encoding;statesync 支持 page-encoded 数据库。 Ref: [monad (execution) PR #2354](https://github.com/category-labs/monad/pull/2354), [PR #2383](https://github.com/category-labs/monad/pull/2383), [PR #2385](https://github.com/category-labs/monad/pull/2385), [PR #2386](https://github.com/category-labs/monad/pull/2386)
* **\[Execution]** `monad-cli --version` 现接受 `latest_finalized`。 Ref: [monad (execution) PR #2364](https://github.com/category-labs/monad/pull/2364)
* **\[Execution]** 支持在 secondary timeline 和 page-encoded DB 上的二进制 snapshot dump/load。 Ref: [monad (execution) PR #2366](https://github.com/category-labs/monad/pull/2366)

## v0.15.1

| 网络                                                        | 发布日期 | 备注                                        |
| --------------------------------------------------------- | ---- | ----------------------------------------- |
| [`mainnet`](/zh/developer-essentials/network-information) | N/A  | Round 89758000(\~2026-07-23 14:30UTC);硬分叉 |
| [`testnet`](/zh/developer-essentials/testnet)             | N/A  | 在 v0.15.0 中收到                             |

标签或哈希:

* `monad-bft` (consensus): [tag `v0.15.1`](https://github.com/category-labs/monad-bft/releases/tag/v0.15.1) (`fb3328c2e`)
* `monad` (execution): [tag `v0.15.1`](https://github.com/category-labs/monad/releases/tag/v0.15.1) (`817a09f64`) — unchanged from v0.15.0

v0.15.1 是基于 v0.15.0 的**仅共识层补丁**。执行层无变化。

#### 变更

* **\[Consensus] MIP-12:填入主网区块奖励激活** — 将投票节奏变更和区块奖励更新(25 → 18 MON)的主网激活轮次设置为 Round 89,758,000。 Ref: [monad-bft PR #3168](https://github.com/category-labs/monad-bft/pull/3168)

## v0.15.0

<Note>
  v0.14.6 和 v0.14.7 未部署给外部节点运营者。其变更已包含在本次发布中。
</Note>

| 网络                                                        | 发布日期 | 备注                                        |
| --------------------------------------------------------- | ---- | ----------------------------------------- |
| [`mainnet`](/zh/developer-essentials/network-information) | N/A  | 在 v0.15.1 中收到                             |
| [`testnet`](/zh/developer-essentials/testnet)             | N/A  | Round 43821000(\~2026-07-09 14:30UTC);硬分叉 |

标签或哈希:

* `monad-bft` (consensus): [tag `v0.15.0`](https://github.com/category-labs/monad-bft/releases/tag/v0.15.0) (`8facc4fae`)
* `monad` (execution): [tag `v0.15.0`](https://github.com/category-labs/monad/releases/tag/v0.15.0) (`817a09f64`)

#### 亮点

* **MIP-12:降低出块时间** — 出块时间从 400 ms 降低到 300 ms;每区块奖励按比例降低
* **`eth_simulateV1`** — 新的 RPC 端点,用于在多个区块中模拟多笔交易,支持状态和区块覆盖;节点运营者可通过添加 `--enable-eth-simulate-v1` 启用(默认:关闭)
* **节点运营者:需要一次性 DB 元数据迁移**(`monad-mpt --upgrade`;参见 [v0.15.0 升级说明](/zh/node-ops/upgrade-instructions/v0.15.0)) — 将 DB schema 从 MONAD007 升级到 MONAD008,为即将到来的双时间线支持初始化辅助时间线元数据
* **RPC 批处理并发限制** — 新的服务端并发批处理请求上限,以防御资源耗尽
* **Raptorcast 饥饿修复** — 防御 raptorcast 中可能出现的网络消息饥饿
* **Prometheus 指标迁移** — 节点指标现由 prometheus crate 支持,以获得更好的可观测性

#### 主要共识/协议变更

* **\[Consensus]** MIP-12:将投票节奏从 400 ms 调整为 300 ms;将区块奖励按比例从 25 MON/区块调整为 18 MON/区块
  * 参考:[monad-bft PR #3120](https://github.com/category-labs/monad-bft/pull/3120)
* **\[Network params]** MIP-12:将区块 gas 上限从 200M 降低到 150M,在出块时间从 400 ms 降至 300 ms 的同时保持 gas 吞吐量为 500 Mgas/s
  * 每区块交易上限相应地从 5000 降至 3750(区块 gas 上限 ÷ 40k)
  * 每笔交易 gas 上限保持 30M 不变
  * 参考:[monad-bft PR #3120](https://github.com/category-labs/monad-bft/pull/3120)

#### 主要 RPC/SDK 变更

* **\[RPC]** `eth_simulateV1` 实现 — 在多个区块中模拟多笔交易,支持状态/区块覆盖、追踪转账以及调用限制
  * 参考:[monad-bft PR #2779](https://github.com/category-labs/monad-bft/pull/2779), [monad (execution) PR #2060](https://github.com/category-labs/monad/pull/2060), [monad (execution) PR #2335](https://github.com/category-labs/monad/pull/2335) (graceful state override error handling), [monad (execution) PR #2355](https://github.com/category-labs/monad/pull/2355) (mixed TX envelope decoding)
* **\[RPC]** 将 `eth_simulateV1` 置于 `--enable-eth-simulate-v1` CLI flag 之后(默认:关闭) — 除非设置该 flag,否则返回 "Method not supported"
  * 参考:[monad-bft PR #3149](https://github.com/category-labs/monad-bft/pull/3149)
* **\[RPC]** 添加批处理并发限制 — 对并发 RPC 批处理请求的服务端上限
  * 参考:[monad-bft PR #3128](https://github.com/category-labs/monad-bft/pull/3128)
* **\[RPC]** 从 RPC 移除解压缩支持 — 不再接受压缩的请求体
  * 参考:[monad-bft PR #3032](https://github.com/category-labs/monad-bft/pull/3032)
* **\[RPC]** 修复索引 log 流中的 tx index 排序边界情况
  * 参考:[monad-bft PR #3118](https://github.com/category-labs/monad-bft/pull/3118)
* **\[RPC]** 修复 `debug_traceCall` 参数必需性
  * 参考:[monad-bft PR #3092](https://github.com/category-labs/monad-bft/pull/3092)

#### 主要健壮性变更

* **\[Consensus]** 修复 raptorcast 中的网络消息饥饿问题
  * 参考:[monad-bft PR #3137](https://github.com/category-labs/monad-bft/pull/3137)
* **\[Consensus]** 修复非专用 full node 冷启动
  * 参考:[monad-bft PR #3100](https://github.com/category-labs/monad-bft/pull/3100)
* **\[Consensus]** 丢弃未来的 NoEndorsements
  * 参考:[monad-bft PR #3094](https://github.com/category-labs/monad-bft/pull/3094)
* **\[Consensus]** 启动时发出 UpdateCurrentRound
  * 参考:[monad-bft PR #3091](https://github.com/category-labs/monad-bft/pull/3091)
* **\[Execution]** 将用户可见的 `MONAD_ASSERT` 转换为 `MONAD_ASSERT_THROW` — 防止在畸形 RPC 输入上 panic
  * 参考:[monad (execution) PR #2337](https://github.com/category-labs/monad/pull/2337)
* **\[Execution]** 在缺失 TX result 时抛出 — 在 `execute_block_transactions` 中将 `MONAD_ASSERT` 转换为 `MONAD_ASSERT_THROW`,使 RPC 进程优雅失败而不是崩溃
  * 参考:[monad (execution) PR #2356](https://github.com/category-labs/monad/pull/2356)
* **\[Execution]** 强制 staking syscall 排序 — 验证现在会拒绝乱序提交的 staking syscall
  * 参考:[monad (execution) PR #2320](https://github.com/category-labs/monad/pull/2320)
* **\[Execution]** 修复事件 payload 溢出检查 — 在对齐检查前向上取整,以防止在大 payload 上出现断言失败
  * 参考:[monad (execution) PR #2194](https://github.com/category-labs/monad/pull/2194)
* **\[Execution]** 修复具有 ≥15.8 TB 磁盘的节点上的 MONAD007→MONAD008 迁移数据损坏 — 防止 `monad-mpt --upgrade` 期间的 db\_offsets 溢出和 root-offsets ring 边界违规
  * 参考:[monad (execution) PR #2387](https://github.com/category-labs/monad/pull/2387)
* **\[Execution]** 修复 `monad-mpt --upgrade` 在遗留数据库上的崩溃 — 修复整数下溢,该问题在 `num_cnv_chunks` 被添加到 storage pool footer 之前创建的数据库节点上导致 `Assertion 'r != MAP_FAILED'`
  * 参考:[monad (execution) PR #2353](https://github.com/category-labs/monad/pull/2353)

#### 主要内部变更

* **\[Consensus]** 切换到 prometheus 支持的指标 — 所有 executor 指标已迁移到 prometheus registry
  * 参考:[monad-bft PR #2879](https://github.com/category-labs/monad-bft/pull/2879)
* **\[Consensus]** Raptorcast:每轮 proposer 验证 — raptorcast 现在拥有 `ProposerSchedule` 类型用于每轮 proposer 验证,与 MonadState 解耦
  * 参考:[monad-bft PR #3114](https://github.com/category-labs/monad-bft/pull/3114)
* **\[Consensus]** 将 chunk 分配与 partition 解耦
  * 参考:[monad-bft PR #3104](https://github.com/category-labs/monad-bft/pull/3104)
* **\[Consensus]** 使用整数算术的 stake partition 算法
  * 参考:[monad-bft PR #3073](https://github.com/category-labs/monad-bft/pull/3073)
* **\[Consensus]** 允许 peer discovery 中的仅认证 name records
  * 参考:[monad-bft PR #3052](https://github.com/category-labs/monad-bft/pull/3052)
* **\[Consensus]** 分离 bootstrap 入口地址的各部分
  * 参考:[monad-bft PR #3051](https://github.com/category-labs/monad-bft/pull/3051)
* **\[Consensus]** 拆分 peer entry 端口
  * 参考:[monad-bft PR #3050](https://github.com/category-labs/monad-bft/pull/3050)
* **\[Node ops]** `monad-sign-name-record`:用独立的 `--ip`、`--tcp-port` 和 `--udp-port` flag 替换 `--address ip:port`
  * 参考:[monad-bft PR #3103](https://github.com/category-labs/monad-bft/pull/3103)
* **\[Execution]** Dual-timeline:添加辅助时间线元数据和 `monad-mpt --upgrade` DB 迁移工具
  * 参考:[monad (execution) PR #2212](https://github.com/category-labs/monad/pull/2212)
* **\[Execution]** MPT 内存序修复:通过 acquire accessor 路由 `version_lower_bound_` 读取,以修复 reader 路径上的数据竞争
  * 参考:[monad (execution) PR #2310](https://github.com/category-labs/monad/pull/2310)
* **\[Execution]** 修复从 `monad_eth_revision` 到 `evmc_revision` 缺失的转换
  * 参考:[monad (execution) PR #2308](https://github.com/category-labs/monad/pull/2308)
* **\[Execution]** 在 `cmd/monad` 中添加 `--disable-sq-thread-cpu` flag
  * 参考:[monad (execution) PR #2333](https://github.com/category-labs/monad/pull/2333)
* **\[Execution]** 移除对 Petersburg 和 Constantinople fork 的支持(仅 Ethereum replay)
  * 参考:[monad (execution) PR #2327](https://github.com/category-labs/monad/pull/2327), [monad (execution) PR #2325](https://github.com/category-labs/monad/pull/2325)
* **\[Execution]** 在 Ethereum 主网 replay 上激活 Prague
  * 参考:[monad (execution) PR #2301](https://github.com/category-labs/monad/pull/2301)
* **\[Execution]** 引入树内的 `monad_eth_revision` 类型,替换 `evmc_revision`
  * 参考:[monad (execution) PR #2304](https://github.com/category-labs/monad/pull/2304)
* **\[Execution]** 将 `intrinsic_gas` 重构为可加性 feature gate(+ 潜在的 EIP-7702 gas bug 修复)
  * 参考:[monad (execution) PR #2305](https://github.com/category-labs/monad/pull/2305)
* **\[Node ops]** `monad-mpt` 状态输出格式已变更 — 之前显示 `MPT database has N history, earliest is X latest is Y` 的行现在显示 `MPT database has been configured to retain no more than Z versions.`,区块高度位于下方的 `Latest finalized is <block>` 行。`monad-status` 已更新以支持新格式。使用自定义脚本解析 `monad-mpt` 输出的运营者应更新为读取 `Latest finalized is`,而不是旧的 `latest is` 模式。
  * 参考:[monad (execution) PR #2228](https://github.com/category-labs/monad/pull/2228)
* **\[RPC]** 简化 calltree 重组
  * 参考:[monad-bft PR #3112](https://github.com/category-labs/monad-bft/pull/3112)
* **\[RPC]** 清理 debug handler
  * 参考:[monad-bft PR #3111](https://github.com/category-labs/monad-bft/pull/3111)

***

## v0.14.5

| 网络                                                        | 发布日期       | 备注 |
| --------------------------------------------------------- | ---------- | -- |
| [`mainnet`](/zh/developer-essentials/network-information) | 2026-06-11 |    |
| [`testnet`](/zh/developer-essentials/testnet)             | 2026-06-04 |    |

标签或哈希:

* `monad-bft` (consensus): [tag `v0.14.5`](https://github.com/category-labs/monad-bft/releases/tag/v0.14.5) (`25672d619`)
* `monad` (execution): [tag `v0.14.5`](https://github.com/category-labs/monad/releases/tag/v0.14.5) (`ffefb81a0`)

#### 亮点

* **`eth_sendRawTransactionSync` 现为事件驱动** — 现在订阅来自执行事件的区块更新,响应时间最多改善 100ms。此方法现在仅在启用执行事件时受支持。启用 websockets 运行 RPC 的运营者不会有变化;没有执行事件的节点将返回 "method not supported"
* **`createAccessList` revert 修复** — 即使调用被 revert,`eth_createAccessList` 现在也会正确返回访问列表
* **历史区块查询最多加速 2 倍** — 对历史区块的 `eth_getBlockByHash` 和 `eth_getBlockTransactionCountByHash` 性能得到改善
* **WAL 改进** — 使用滚动分块限制 WAL 大小,在专用线程上持久化事件,仅追踪日志

#### 主要 RPC/SDK 变更

* **\[RPC]** 修复:在 `createAccessList` revert 时返回访问列表
  * 参考:[monad-bft PR #3045](https://github.com/category-labs/monad-bft/pull/3045)
* **\[RPC]** 修复 OpenRPC 可选参数标志
  * 参考:[monad-bft PR #3089](https://github.com/category-labs/monad-bft/pull/3089)
* **\[RPC]** 为 TriedbDataSource 实现 HistoricalDataSource
  * 参考:[monad-bft PR #3085](https://github.com/category-labs/monad-bft/pull/3085)
* **\[RPC]** `eth_sendRawTransactionSync` 现在订阅来自执行事件的区块更新,响应时间最多改善 100ms。此方法现在仅在启用执行事件时受支持。启用 websockets 运行 RPC 的运营者不会有变化;没有执行事件的节点将返回 "method not supported"
  * 参考:[monad-bft PR #3105](https://github.com/category-labs/monad-bft/pull/3105)
* **\[RPC]** 将 RPC 事件缓冲区分离为 write 和 view
  * 参考:[monad-bft PR #3102](https://github.com/category-labs/monad-bft/pull/3102)
* **\[RPC]** 在 RPC websocket 实现中使用事件别名
  * 参考:[monad-bft PR #3095](https://github.com/category-labs/monad-bft/pull/3095)

#### 主要性能变更

* **\[RPC]** 历史区块查询最多加速 2 倍 — `eth_getBlockByHash` 和 `eth_getBlockTransactionCountByHash` 通过 HistoricalDataSource 重构得到改善
  * 参考:[monad-bft PR #3085](https://github.com/category-labs/monad-bft/pull/3085), [PR #3053](https://github.com/category-labs/monad-bft/pull/3053), [PR #3030](https://github.com/category-labs/monad-bft/pull/3030)

#### 主要健壮性变更

* **\[Consensus]** 在启动时拒绝 `fullnode_raptorcast.max_group_size` > 500 — 防止配置错误
  * 参考:[monad-bft PR #3078](https://github.com/category-labs/monad-bft/pull/3078)
* **\[Execution]** 拒绝非规范的 RLP 编码字符串/列表
  * 参考:[monad (execution) PR #2245](https://github.com/category-labs/monad/pull/2245)
* **\[Execution]** 防止在奇数输入长度上迭代器越界
  * 参考:[monad (execution) PR #2257](https://github.com/category-labs/monad/pull/2257)
* **\[Execution]** 为 revert 的调用帧保留访问列表
  * 参考:[monad (execution) PR #2241](https://github.com/category-labs/monad/pull/2241)

#### 主要内部变更

* **\[Consensus]** Deterministic raptorcast:主协议推出
  * 参考:[monad-bft PR #2811](https://github.com/category-labs/monad-bft/pull/2811) (4 commits: rollout, commitment, rebroadcast, packet parsing)
* **\[Consensus]** Deterministic raptorcast:secondary 编码与路由基础
  * 参考:[monad-bft PR #2998](https://github.com/category-labs/monad-bft/pull/2998) (5 commits: encoder, routing, broadcast mode, receive gating)
* **\[Consensus]** MIP-9:将验证者集合上限提高到 300(仅共识侧 — 执行侧待定)
  * 参考:[monad-bft PR #3046](https://github.com/category-labs/monad-bft/pull/3046)
* **\[Consensus]** WAL:使用滚动分块限制 WAL 大小
  * 参考:[monad-bft PR #2985](https://github.com/category-labs/monad-bft/pull/2985)
* **\[Consensus]** WAL:在 waltrace 线程上持久化事件
  * 参考:[monad-bft PR #3022](https://github.com/category-labs/monad-bft/pull/3022)
* **\[Consensus]** WAL:仅追踪 wal-logged 事件
  * 参考:[monad-bft PR #3024](https://github.com/category-labs/monad-bft/pull/3024)
* **\[Consensus]** 在可能时省略 timeout.last\_rc 验证
  * 参考:[monad-bft PR #3055](https://github.com/category-labs/monad-bft/pull/3055)
* **\[Consensus]** 明确 forkpoint 持久化时不进行 fsync
  * 参考:[monad-bft PR #3056](https://github.com/category-labs/monad-bft/pull/3056)
* **\[Execution]** 移除 intx 库,以自定义 uint128\_t/uint256\_t 类型替换
  * 参考:[monad (execution) PR #2143](https://github.com/category-labs/monad/pull/2143)
* **\[Execution]** 将 DbCache 设为 TrieDb 的成员
  * 参考:[monad (execution) PR #2255](https://github.com/category-labs/monad/pull/2255)

## v0.14.4

| 网络                                                        | 发布日期       | 备注 |
| --------------------------------------------------------- | ---------- | -- |
| [`mainnet`](/zh/developer-essentials/network-information) | 2026-05-28 |    |
| [`testnet`](/zh/developer-essentials/testnet)             | 2026-05-21 |    |

标签或哈希:

* `monad-bft` (consensus): [tag `v0.14.4`](https://github.com/category-labs/monad-bft/releases/tag/v0.14.4) (`06ed5828`)
* `monad` (execution): [tag `v0.14.4`](https://github.com/category-labs/monad/releases/tag/v0.14.4) (`6c75a8851`)

#### 亮点

* **`eth_fillTransaction` gas 估算修复** — 将 gas 估算行为与 `eth_estimateGas` 对齐,使调用者在两个端点上获得一致的估算结果

#### 主要 RPC/SDK 变更

* **\[RPC]** 修复 `eth_fillTransaction` 的 gas 估算
  * 参考:[monad-bft PR #3006](https://github.com/category-labs/monad-bft/pull/3006)
  * 之前,调用外部合约只转发 63/64 gas,导致内部帧 gas 耗尽并返回 `ExecutionError`。现在与 `eth_estimateGas` 行为一致。

#### 主要健壮性变更

* **\[Consensus]** statesync:在重复响应索引时不 panic
  * 参考:[monad-bft PR #3033](https://github.com/category-labs/monad-bft/pull/3033)
* **\[RPC]** 在 `eth_gasPrice` 中使用饱和算术以防止溢出
  * 参考:[monad-bft PR #3026](https://github.com/category-labs/monad-bft/pull/3026)
* **\[Execution]** 限制预编译输入分配,以防止慢区块向量
  * 参考:[monad (execution) PR #2224](https://github.com/category-labs/monad/pull/2224)

#### 主要内部变更

* **\[Consensus]** Raptorcast chunk 分配清理:secondary raptorcast 现在使用 Fisher-Yates 洗牌 + 轮询分配(之前为旋转);降低延迟并为 deterministic raptorcast 做准备
  * 参考:[monad-bft PR #2978](https://github.com/category-labs/monad-bft/pull/2978)
* **\[Consensus]** 对 secondary raptorcast group 采取更严格的 round 查找 — 在 deterministic raptorcast 切换之前防止未来的隐患
  * 参考:[monad-bft PR #3021](https://github.com/category-labs/monad-bft/pull/3021)
* **\[Consensus]** 从 fair queue / UDP 层移除动态上限
  * 参考:[monad-bft PR #3025](https://github.com/category-labs/monad-bft/pull/3025)
* **\[RPC]** 在 RPC 中使用 TxHash 和 BlockHash 类型别名(内部重构,无行为变化)
  * 参考:[monad-bft PR #2997](https://github.com/category-labs/monad-bft/pull/2997)
* **\[Execution]** zkVM:添加 partial trie DB — 用于 zkVM 客户程序(RISC-V)的新 partial MPT 实现,包括 RLP 编码的执行 witness 解码器
  * 参考:[monad (execution) PR #2170](https://github.com/category-labs/monad/pull/2170)

## v0.14.3

| 网络                                                        | 发布日期       | 备注 |
| --------------------------------------------------------- | ---------- | -- |
| [`mainnet`](/zh/developer-essentials/network-information) | 2026-05-14 |    |
| [`testnet`](/zh/developer-essentials/testnet)             | 2026-05-07 |    |

标签或哈希:

* `monad-bft` (consensus): [tag `v0.14.3`](https://github.com/category-labs/monad-bft/releases/tag/v0.14.3) (`f2a2092b`)
* `monad` (execution): [tag `v0.14.3`](https://github.com/category-labs/monad/releases/tag/v0.14.3) (`7fcd693f7`)

#### 亮点

* **认证 UDP 强制启用** — Raptorcast 现要求线路认证的 UDP 套接字;先前为可选,现对所有节点强制启用

#### 主要健壮性变更

* **\[Consensus]** Raptorcast:要求认证 UDP 套接字
  * 参考:[monad-bft PR #2956](https://github.com/category-labs/monad-bft/pull/2956)
  * 强制执行认证 UDP 套接字设置;先前为可选
* **\[Execution]** 修复读取比最新已 finalized 区块更旧的 finalized 状态时 `DbCache` 断言失败
  * 参考:[monad (execution) PR #2190](https://github.com/category-labs/monad/pull/2190)
  * 用显式检查替换断言;修复在链上向后越过最新已 finalized 区块时错误的 `truncated` 值传播
* **\[Execution]** 将 `MIN_HISTORY_LENGTH` 下限从 257 提高到 300
  * 参考:[monad (execution) PR #2217](https://github.com/category-labs/monad/pull/2217)
  * 在磁盘压力下,history 可能缩小至 block hash 缓冲区所需的 256 区块最小值以下,重启后强制执行完整 statesync;新的下限提供约 44 区块的余量
* **\[Execution]** 修复 `evm-as` 中 pre-Shanghai 目标在 offset 0 处的 PushLabel 编码
  * 参考:[monad (execution) PR #2213](https://github.com/category-labs/monad/pull/2213)
  * 修复 EVM 汇编器中 pre-Shanghai 代码路径的错误 `PUSH0` 编码

#### 主要性能变更

* **\[Execution]** 将 trie span 优化扩展到 fnext、child\_off 和 SharedPtr 数组
  * 参考:[monad (execution) PR #2176](https://github.com/category-labs/monad/pull/2176)
* **\[Execution]** 从 rwdb find 路径中移除 inflight 读取合并
  * 参考:[monad (execution) PR #2183](https://github.com/category-labs/monad/pull/2183)
* **\[Execution]** 在 `State::is_touched` 中省略 DB 抓取
  * 参考:[monad (execution) PR #2198](https://github.com/category-labs/monad/pull/2198)
* **\[RPC]** 在 log 检索路径上跳过冗余的 receipt 转换
  * 参考:[monad-bft PR #2839](https://github.com/category-labs/monad-bft/pull/2839)
  * 在处理 log 查询时避免构建完整的 `TransactionReceipt`;直接从 `(TxEnvelope, Receipt)` 转换到 `ReceiptEnvelope`,减少 `eth_getLogs` 及相关调用的开销

#### 主要内部变更

* **\[Consensus]** Peer discovery:在 name records 中要求认证 UDP
  * 参考:[monad-bft PR #2955](https://github.com/category-labs/monad-bft/pull/2955)
  * 对认证 UDP 强制执行非零端口策略;端口 0 在 RLP 编码的 peer entry 中被用作空值,现在会被拒绝
* **\[Consensus]** 添加 full node 消息类型以及用于 peer 声誉评分的处理逻辑
  * 参考:[monad-bft PR #2914](https://github.com/category-labs/monad-bft/pull/2914), [PR #2915](https://github.com/category-labs/monad-bft/pull/2915)
  * 引入新的消息类型,供 full node 向 publisher 发送 peer 参与数据以用于声誉评分
* **\[Consensus]** Peer discovery:丢弃 V1 wire name records
  * 参考:[monad-bft PR #2952](https://github.com/category-labs/monad-bft/pull/2952)
  * 移除对 V1 peer wire 格式的向后兼容性;所有 peer 必须使用 V2 name records
* **\[Consensus]** 在 archive 中暴露按 hash 检索的 block number
  * 参考:[monad-bft PR #2980](https://github.com/category-labs/monad-bft/pull/2980)
  * Archive 节点现在支持按 block hash 查找 block number
* **\[Consensus]** Raptorcast:stake 比例的 chunk 分配器的轮询模式
  * 参考:[monad-bft PR #2970](https://github.com/category-labs/monad-bft/pull/2970)
  * 为 deterministic Raptorcast 中使用的 stake 比例 chunk 分配器添加轮询分配

## v0.14.2

| 网络                                                        | 发布日期       | 备注 |
| --------------------------------------------------------- | ---------- | -- |
| [`mainnet`](/zh/developer-essentials/network-information) | 2026-04-30 |    |
| [`testnet`](/zh/developer-essentials/testnet)             | 2026-04-23 |    |

标签或哈希:

* `monad-bft` (consensus): [tag `v0.14.2`](https://github.com/category-labs/monad-bft/releases/tag/v0.14.2) (`6307011c`)
* `monad` (execution): [tag `v0.14.2`](https://github.com/category-labs/monad/releases/tag/v0.14.2) (`169e5c45b`)

#### 亮点

* **`debug_*` 改进** — 追踪日志上新增 `index` 字段;`eth_call` 返回明确的 `reserve balance violation` 错误
* **压缩热路径 8-9 倍加速** — trie 节点数组优化减少了冗余的指针重新计算
* **txpool 中转发入站的公平队列** — 改善验证者之间的交易转发公平性

#### 主要 RPC/SDK 变更

* **\[RPC]** 将 callframe 检索方法移至 ChainState
  * 参考:[monad-bft PR #2936](https://github.com/category-labs/monad-bft/pull/2936), [PR #2937](https://github.com/category-labs/monad-bft/pull/2937)
  * 涵盖 block 和 transaction callframe;在 debug trace handler 中对调用帧解码去重
* **\[RPC]** 在 debug trace 输出中包含 log 索引;在 `eth_call` 中暴露 reserve balance 错误
  * 参考:[monad-bft PR #2658](https://github.com/category-labs/monad-bft/pull/2658)
  * 在 debug call tracer 中为每个被追踪的 log 添加 `index` 字段,反映交易中跨所有嵌套调用帧的全局 log 顺序;当交易超过发送方的 reserve balance 时,`eth_call` 现在返回明确的 `reserve balance violation` 错误,而不是通用失败
* **\[RPC]** 将 eth call gas 上限配置移至 EthCallHandler
  * 参考:[monad-bft PR #2926](https://github.com/category-labs/monad-bft/pull/2926)
* **\[RPC]** `debug_*` 方法现在计入 eth call 速率限制
  * 参考:[monad-bft PR #2868](https://github.com/category-labs/monad-bft/pull/2868)
  * `debug_traceCall`、`debug_traceTransaction` 和相关方法现在会更新 eth call 统计跟踪器;先前它们绕过了该跟踪器
* **\[RPC]** 为 debug RPC 方法更早地强制执行最大响应大小
  * 参考:[monad-bft PR #2959](https://github.com/category-labs/monad-bft/pull/2959)
* **\[RPC]** 降低 RPC 批处理请求上限以匹配 Geth 的默认值
  * 参考:[monad-bft PR #2934](https://github.com/category-labs/monad-bft/pull/2934)

#### 主要健壮性变更

* **\[Consensus]** ConfirmGroup 消息修复
  * 参考:[monad-bft PR #2652](https://github.com/category-labs/monad-bft/pull/2652)
  * 防止 full node 拒绝过大的 ConfirmGroup 消息;当 group 达到最大大小时引入 NoConfirm 响应
* **\[Consensus]** 修复 leanudp identity usage map 中的泄漏
  * 参考:[monad-bft PR #2930](https://github.com/category-labs/monad-bft/pull/2930)
* **\[Consensus]** 在 leanudp 中强制执行陈旧消息超时
  * 参考:[monad-bft PR #2873](https://github.com/category-labs/monad-bft/pull/2873)
* **\[RPC]** 修复 RPC 中 eth call 统计跟踪的内存泄漏
  * 参考:[monad-bft PR #2910](https://github.com/category-labs/monad-bft/pull/2910)
* **\[Consensus]** 放宽针对陈旧 DoneSync 边界情况的 statesync 断言
  * 参考:[monad-bft PR #2905](https://github.com/category-labs/monad-bft/pull/2905)
* **\[Execution]** 修复未对齐读取中可能的未定义行为
  * 参考:[monad (execution) PR #2168](https://github.com/category-labs/monad/pull/2168)
* **\[Execution]** 修复 DB 重置后 auto\_expire\_version 初始化不正确
  * 参考:[monad (execution) PR #2167](https://github.com/category-labs/monad/pull/2167)
* **\[Execution]** 修复 statesync 期间 compaction 进度重置
  * 参考:[monad (execution) PR #2133](https://github.com/category-labs/monad/pull/2133)
  * 修复 statesync 期间 compaction head 被错误地重置为 0,导致 compaction 从头重新开始
* **\[Consensus]** 精确解码转发的交易
  * 参考:[monad-bft PR #2810](https://github.com/category-labs/monad-bft/pull/2810)
  * 确保转发的交易在解码时不带尾部字节

#### 主要性能变更

* **\[Consensus]** 将成本低的共识验证检查前置
  * 参考:[monad-bft PR #2928](https://github.com/category-labs/monad-bft/pull/2928)
* **\[Consensus]** 在 txpool 客户端中对转发的入站进行公平队列处理
  * 参考:[monad-bft PR #2882](https://github.com/category-labs/monad-bft/pull/2882)
* **\[Consensus]** 将转发的交易节奏控制移入 executor,简化入站批处理
  * 参考:[monad-bft PR #2884](https://github.com/category-labs/monad-bft/pull/2884), [PR #2886](https://github.com/category-labs/monad-bft/pull/2886)
* **\[Consensus]** 在证书验证之前丢弃已过时的共识消息
  * 参考:[monad-bft PR #2927](https://github.com/category-labs/monad-bft/pull/2927)
* **\[Execution]** 优化 trie 节点数组访问(压缩热路径 8-9 倍加速)
  * 参考:[monad (execution) PR #2163](https://github.com/category-labs/monad/pull/2163)
  * 提升 packed node 数组的基指针;减少 compaction、expiration 和 version tracking 循环中的冗余指针重新计算

#### 主要内部变更

* **\[Consensus]** Raptorcast:直接 UDP 传输
  * 参考:[monad-bft PR #2898](https://github.com/category-labs/monad-bft/pull/2898), [PR #2900](https://github.com/category-labs/monad-bft/pull/2900)
  * 为点对点流量添加专用的直接 UDP 套接字,绕过 Raptorcast 擦除编码。消除 Raptorcast 在单播发送时固有的约 2.5 倍带宽放大。对不支持的 peer 优雅回退到 Raptorcast 路径。
  * \*\*注意:\*\*仍在测试中 — 本次发布中不建议在生产环境使用。
* **\[Consensus]** Wireauth:降低每实例的默认值
  * 参考:[monad-bft PR #2906](https://github.com/category-labs/monad-bft/pull/2906)
* **\[Execution]** 将系统 boost fiber 替换为子模块(boost-1.83.0)
  * 参考:[monad (execution) PR #2157](https://github.com/category-labs/monad/pull/2157)
* **\[Execution]** 将预编译 gas 成本计算与运行时实现分离
  * 参考:[monad (execution) PR #2099](https://github.com/category-labs/monad/pull/2099), [PR #2098](https://github.com/category-labs/monad/pull/2098)
  * zkVM 编译的准备工作
* **\[Execution]** 移除对 EVMC\_FRONTIER 的支持
  * 参考:[monad (execution) PR #2041](https://github.com/category-labs/monad/pull/2041)
* **\[Execution]** 为 Ethereum 和 Monad replay 添加块级事件记录
  * 参考:[monad (execution) PR #2006](https://github.com/category-labs/monad/pull/2006)
  * 在 replay 期间发出 BLOCK\_START/BLOCK\_END 事件,使 replay 事件流可用于工具
* **\[Consensus]** 为 txpool 和 raptorcast 配置共享 peer 评分
  * 参考:[monad-bft PR #2907](https://github.com/category-labs/monad-bft/pull/2907)
* **\[Consensus]** Raptorcast:在 build target 中对 BroadcastGroup 强制执行类型级安全
  * 参考:[monad-bft PR #2843](https://github.com/category-labs/monad-bft/pull/2843)
  * 将 build target 限制为已建立的 group,消除 packet builder epoch/round 追踪的失步风险

## v0.14.1

| 网络                                                        | 发布日期       | 备注 |
| --------------------------------------------------------- | ---------- | -- |
| [`mainnet`](/zh/developer-essentials/network-information) | 2026-04-09 |    |
| [`testnet`](/zh/developer-essentials/testnet)             | 2026-04-08 |    |

标签或哈希:

* `monad-bft` (consensus): [tag `v0.14.1`](https://github.com/category-labs/monad-bft/releases/tag/v0.14.1) (`4ed79392`)
* `monad` (execution): [tag `v0.14.1`](https://github.com/category-labs/monad/releases/tag/v0.14.1) (`54e132cfa`) — same commit as v0.14.0

> \*\*注意:\*\*基于 v0.14.0 的补丁发布。执行层无变化。

#### 主要 RPC/SDK 变更

* **\[RPC]** 修复 `eth_fillTransaction` gas 估算和 reserve balance 处理
  * 参考:[monad-bft PR #2949](https://github.com/category-labs/monad-bft/pull/2949)
  * 将 reserve-balance 失败映射到专用结果,而不是折叠为通用错误;通过在填充估算期间使用无上限余额的状态覆盖,使省略 gas 的填充估算更宽松
  * \*\*注意:\*\*余额不足的 `eth_fillTransaction` 现在返回 `reserve balance violation`(此前为 `insufficient balance`)。按精确错误字符串匹配的调用方应相应更新。

## v0.14.0

| 网络                                                        | 发布日期       | 备注 |
| --------------------------------------------------------- | ---------- | -- |
| [`mainnet`](/zh/developer-essentials/network-information) | N/A        |    |
| [`testnet`](/zh/developer-essentials/testnet)             | 2026-04-02 |    |

标签或哈希:

* `monad-bft` (consensus): [tag `v0.14.0`](https://github.com/category-labs/monad-bft/releases/tag/v0.14.0) (`2d487de0`)
* `monad` (execution): [tag `v0.14.0`](https://github.com/category-labs/monad/releases/tag/v0.14.0) (`54e132cfa`)

#### 亮点

* **RPC:receipt 查询快约 400ms** — receipt 现在在 chainstate 缓冲中跟踪,并在 Proposed 时可用,消除了 v0.13.0 中增加约 400ms 的 trie 查找。
* **RPC:`eth_fillTransaction`** — 新端点,用于获取完全填充的交易(gas、nonce 等)而无需签名。适用于钱包和准备交易的 dapp。
* **RPC:proposed 区块上的 Websocket 通知** — `newHeads` 和 `logs` 订阅现在在 proposed 区块上触发,而不是 voted,降低实时应用的通知延迟。

#### 主要 RPC/SDK 变更

* **\[RPC]** `eth_fillTransaction` RPC 端点
  * 参考:[monad-bft PR #2662](https://github.com/category-labs/monad-bft/pull/2662), [PR #2932](https://github.com/category-labs/monad-bft/pull/2932)
  * PR #2932 修复了多项不一致:在足够时保留用户提供的 `maxFeePerGas`,将 `0x0` gas/fee 视为缺失,允许对失败交易进行 gas 填充,拒绝 blob 样式请求,正确处理 EIP-2930 legacy-fee
* **\[RPC]** 在 websocket 通知中使用 proposed 区块
  * 参考:[monad-bft PR #2817](https://github.com/category-labs/monad-bft/pull/2817)
* **\[RPC]** 交易 receipt 存入 chainstate 缓冲区(receipt 查询快约 400ms)
  * 参考:[monad-bft PR #2809](https://github.com/category-labs/monad-bft/pull/2809), [PR #2818](https://github.com/category-labs/monad-bft/pull/2818)
* **\[RPC]** 将 triedb 使用统一到 ChainState
  * 参考:[monad-bft PR #2876](https://github.com/category-labs/monad-bft/pull/2876)
* **\[RPC]** 在 RPC log 中使用 ChainStateBuffer
  * 参考:[monad-bft PR #2840](https://github.com/category-labs/monad-bft/pull/2840)
* **\[Execution]** 添加带有路径解析和描述符信息的执行事件 Rust SDK
  * 参考:[monad (execution) PR #2123](https://github.com/category-labs/monad/pull/2123), [PR #2135](https://github.com/category-labs/monad/pull/2135), [PR #2136](https://github.com/category-labs/monad/pull/2136)

#### 主要健壮性变更

* **\[Execution]** 移除依赖于 reserve balance 记账次优性的 ASSERT
  * 参考:[monad (execution) PR #2096](https://github.com/category-labs/monad/pull/2096)
* **\[Consensus]** RLP 清理和更严格的解码强制
  * 参考:[monad-bft PR #2785](https://github.com/category-labs/monad-bft/pull/2785)
* **\[Consensus]** 修复 triedb sync read FFI 中的零长度分配泄漏
  * 参考:[monad-bft PR #2816](https://github.com/category-labs/monad-bft/pull/2816)
* **\[Consensus]** 修复 dataplane ban 到期 TOCTOU 下溢
  * 参考:[monad-bft PR #2851](https://github.com/category-labs/monad-bft/pull/2851)
* **\[Archive]** 修复持续故障后 S3 客户端卡住
  * 参考:[monad-bft PR #2823](https://github.com/category-labs/monad-bft/pull/2823)
* **\[Archive]** 放宽针对 AWS 参数的 checker replica 匹配
  * 参考:[monad-bft PR #2943](https://github.com/category-labs/monad-bft/pull/2943)
  * 处理存储的 replica 配置中缺失的可选 AWS 字段;避免从跟踪状态中丢弃 replica
* **\[Execution]** 修复 nblocks=1 时 runloop\_monad 的差一错误
  * 参考:[monad (execution) PR #2018](https://github.com/category-labs/monad/pull/2018)
* **\[Execution]** 修复 RangedGetMachine 跳过超出 min prefix 的 key
  * 参考:[monad (execution) PR #2110](https://github.com/category-labs/monad/pull/2110)
* **\[Execution]** 修复 node writer 重入导致的非连续写入
  * 参考:[monad (execution) PR #2082](https://github.com/category-labs/monad/pull/2082)
* **\[Execution]** 修复空输入下 RLP 编码中的未定义行为
  * 参考:[monad (execution) PR #2152](https://github.com/category-labs/monad/pull/2152)
* **\[Consensus]** 修复 OpenRPC schema 的不稳定排序
  * 参考:[monad-bft PR #2893](https://github.com/category-labs/monad-bft/pull/2893)
* **\[Consensus]** 修复 ledger-tail:从持久化的 peer 中读取 author\_address
  * 参考:[monad-bft PR #2888](https://github.com/category-labs/monad-bft/pull/2888)

#### 主要性能变更

* **\[Consensus]** 缓存所有成功的 Raptorcast 解码结果
  * 参考:[monad-bft PR #2887](https://github.com/category-labs/monad-bft/pull/2887)
* **\[Consensus]** 用于交易接收的加权公平队列
  * 参考:[monad-bft PR #2828](https://github.com/category-labs/monad-bft/pull/2828)
* **\[Consensus]** 基于 gas 的 peer 评分
  * 参考:[monad-bft PR #2829](https://github.com/category-labs/monad-bft/pull/2829)
* **\[Consensus]** 以 AVX2 分块进行 XOR 解码器缓冲区
  * 参考:[monad-bft PR #2863](https://github.com/category-labs/monad-bft/pull/2863)
* **\[Consensus]** BLS 签名的惰性解码器
  * 参考:[monad-bft PR #2861](https://github.com/category-labs/monad-bft/pull/2861)
* **\[Execution]** 通过滞后改善 fast list compaction 偏移量计算
  * 参考:[monad (execution) PR #2107](https://github.com/category-labs/monad/pull/2107)

#### 主要内部变更

* **\[Consensus]** ⚠️ 将 `node.toml` 中的 auth UDP 字段设为必需
  * 参考:[monad-bft PR #2891](https://github.com/category-labs/monad-bft/pull/2891)
* **\[Consensus]** 将 `raptor10_fullnode_redundancy_factor` 最大值从 7 降低到 3
  * 参考:[monad-bft PR #2852](https://github.com/category-labs/monad-bft/pull/2852)
* **\[Node ops]** ⚠️ `monad-ledger-tail`:将 `--node-config-path` 重命名为 `--peers-path`
  * 参考:[monad-bft PR #2916](https://github.com/category-labs/monad-bft/pull/2916)
  * 如果您手动运行 `monad-ledger-tail` 或在自定义 systemd unit 中运行,请更新 flag 名称
* **\[Node ops]** 将 systemd 服务从 `Restart=no` 改为 `Restart=always`
  * 参考:[monad-bft PR #2860](https://github.com/category-labs/monad-bft/pull/2860)
* **\[Consensus]** 轻量级 UDP 帧协议(leanudp)
  * 参考:[monad-bft PR #2827](https://github.com/category-labs/monad-bft/pull/2827)
* **\[Consensus]** 在 peer discovery 中支持直接 UDP 端口
  * 参考:[monad-bft PR #2842](https://github.com/category-labs/monad-bft/pull/2842)
* **\[Consensus]** 具有编解码器抽象、直接点对点路由的认证套接字
  * 参考:[monad-bft PR #2897](https://github.com/category-labs/monad-bft/pull/2897), [PR #2896](https://github.com/category-labs/monad-bft/pull/2896)
* **\[Consensus]** Raptorcast:移除遗留的 packet parser
  * 参考:[monad-bft PR #2864](https://github.com/category-labs/monad-bft/pull/2864)
* **\[Archive]** 支持带隔离的 per-source AWS profile(archiver source/sink/fallback 的 `--profile` flag,从 `.aws/credentials` 和 `.aws/config` 读取)
  * 参考:[monad-bft PR #2865](https://github.com/category-labs/monad-bft/pull/2865)
* **\[Execution]** 重构 chain:移除 `static_validate_header` 和 `validate_transaction` 虚方法
  * 参考:[monad (execution) PR #2049](https://github.com/category-labs/monad/pull/2049)

## v0.13.1

| 网络                                                        | 发布日期       | 备注 |
| --------------------------------------------------------- | ---------- | -- |
| [`mainnet`](/zh/developer-essentials/network-information) | 2026-03-16 |    |
| [`testnet`](/zh/developer-essentials/testnet)             | 2026-03-16 |    |
| `devnet`                                                  | N/A        |    |

标签或哈希:

* `monad-bft` (consensus): [tag `v0.13.1`](https://github.com/category-labs/monad-bft/releases/tag/v0.13.1) (`7db6cea2`)
* `monad` (execution): [tag `v0.13.1`](https://github.com/category-labs/monad/releases/tag/v0.13.1) (`722cbf5b5`)

> \*\*注意:\*\*这是基于 v0.13.0 的补丁发布,用于修复 State Archive 节点的 RPC 问题。monad(执行)标签指向与 v0.13.0 相同的提交。

#### 主要健壮性变更

* **\[RPC]** 使用 latest voted 作为 last\_proposed 的回退
  * 参考:[monad-bft PR #2857](https://github.com/category-labs/monad-bft/pull/2857)
  * 修复当 `last_proposed` 不可用时 State Archive 节点 RPC 返回陈旧区块数据的问题

## v0.13.0 (MONAD\_NINE)

| 网络                                                        | 发布日期       | 硬分叉时间戳                          | 备注               |
| --------------------------------------------------------- | ---------- | ------------------------------- | ---------------- |
| [`mainnet`](/zh/developer-essentials/network-information) | 2026-03-12 | 1773930600(2026-03-19 14:30UTC) | `MONAD_NINE` 硬分叉 |
| [`testnet`](/zh/developer-essentials/testnet)             | 2026-03-05 | 1773153000(2026-03-10 14:30UTC) | `MONAD_NINE` 硬分叉 |
| `devnet`                                                  | N/A        | N/A                             |                  |

标签或哈希:

* `monad-bft` (consensus): [tag `v0.13.0`](https://github.com/category-labs/monad-bft/releases/tag/v0.13.0)
* `monad` (execution): [tag `v0.13.0+1`](https://github.com/category-labs/monad/releases/tag/v0.13.0+1)

> \*\*注意:\*\*规范发布版本是 `v0.13.0`。monad 执行标签上的 `+1` 构建元数据表示这是包含 reserve balance 预编译回退成本修复([PR #2109](https://github.com/category-labs/monad/pull/2109))的发布后重建。

#### 亮点

* **RPC:`latest` 区块标签:`Finalized` -> `Proposed`** — 使用 `latest` 区块标签的查询现在返回最新 proposed 区块的数据,降低了 `eth_getBalance`、`eth_call` 和其他状态查询的查询延迟。
* **RPC:`eth_sendRawTransactionSync`:`Voted` -> `Proposed`** — 使用 `eth_sendRawTransactionSync` 方法时可更早获得 receipt。
* **Websocket:`newHeads/logs`:`Finalized` -> `Voted`** — 订阅 `newHeads` 或 `logs` 的 websocket 订阅者可更早收到通知。

#### 主要协议变更

以下所有更新均由 `MONAD_NINE` revision 控制

* **\[EVM]** [MIP-3](https://github.com/monad-crypto/MIPs/blob/main/MIPs/MIP-3.md):线性内存实现
  * 参考:[monad PR #2032](https://github.com/category-labs/monad/pull/2032)
* **\[Execution]** [MIP-4](https://github.com/monad-crypto/MIPs/blob/main/MIPs/MIP-4.md):Reserve balance 预编译
  * 参考:[monad PR #2040](https://github.com/category-labs/monad/pull/2040) (scaffolding)
  * 参考:[monad PR #2065](https://github.com/category-labs/monad/pull/2065) (cached/incremental checks)
  * 参考:[monad PR #2086](https://github.com/category-labs/monad/pull/2086) (add dippedIntoReserve)
  * 参考:[monad PR #2106](https://github.com/category-labs/monad/pull/2106) (dippedIntoReserve argument length error)
  * 参考:[monad PR #2109](https://github.com/category-labs/monad/pull/2109) (fallback cost fix for clean spec)
  * 参考:[monad PR #2037](https://github.com/category-labs/monad/pull/2037) (skip reserve checks for init-selfdestruct)
* **\[EVM]** [MIP-5](https://github.com/monad-crypto/MIPs/blob/main/MIPs/MIP-5.md):激活 Osaka fork EIP
  * Modexp 输入界限与 gas 提升(EIP-7823/EIP-7883)
  * `CLZ` 操作码(EIP-7939)
  * 参考:[monad PR #2024](https://github.com/category-labs/monad/pull/2024)

> \*\*硬分叉:\*\*本次发布在时间戳 `1773153000`(测试网)/ `1773930600`(主网)激活 MONAD\_NINE。节点必须在激活前完成升级。

#### 主要 RPC/SDK 变更

* **\[RPC]** Latest 区块标签使用 proposed 区块
  * 参考:[monad-bft PR #2675](https://github.com/category-labs/monad-bft/pull/2675)
* **\[RPC]** 在 websocket 通知中使用 voted 区块
  * 参考:[monad-bft PR #2799](https://github.com/category-labs/monad-bft/pull/2799)
* **\[RPC]** 为 RPC doc 宏添加实验性 flag
  * 参考:[monad-bft PR #2773](https://github.com/category-labs/monad-bft/pull/2773)
* **\[RPC]** 重构 RPC 中间件以改善请求处理
  * 参考:[monad-bft PR #2805](https://github.com/category-labs/monad-bft/pull/2805)
* **\[RPC]** 为 RPC 添加解压缩防护
  * 参考:[monad-bft PR #2793](https://github.com/category-labs/monad-bft/pull/2793)

#### 主要健壮性变更

* **\[Consensus]** 为 Raptorcast 添加签名验证器
  * 参考:[monad-bft PR #2747](https://github.com/category-labs/monad-bft/pull/2747)
* **\[Consensus]** 修复 r10 解码器中的 reactivate 逻辑
  * 参考:[monad-bft PR #2740](https://github.com/category-labs/monad-bft/pull/2740)
* **\[Execution]** 修复 C->Rust 日志中的缓冲区溢出
  * 参考:[monad-bft PR #2769](https://github.com/category-labs/monad-bft/pull/2769)
* **\[Consensus]** 为 wireauth 添加全局连接速率限制
  * 参考:[monad-bft PR #2765](https://github.com/category-labs/monad-bft/pull/2765)
* **\[Consensus]** 在 peer discovery 中根据 name record 验证 ping/pong 源地址
  * 参考:[monad-bft PR #2752](https://github.com/category-labs/monad-bft/pull/2752)
* **\[Consensus]** 在 ledger 中持久化 voted\_head
  * 参考:[monad-bft PR #2744](https://github.com/category-labs/monad-bft/pull/2744)
* **\[Consensus]** 为 dataplane 添加双 UDP 报文发送器
  * 参考:[monad-bft PR #2746](https://github.com/category-labs/monad-bft/pull/2746)
* **\[Execution]** 通过在线程退出前 join bootstrap fiber 修复 ThreadSanitizer 竞态
  * 参考:[monad PR #2053](https://github.com/category-labs/monad/pull/2053)
* **\[Execution]** 在 selfdestruct tracer 帧中包含账户余额
  * 参考:[monad PR #2039](https://github.com/category-labs/monad/pull/2039)
* **\[Consensus]** 确保 proposed head 位于规范链上
  * 参考:[monad-bft PR #2756](https://github.com/category-labs/monad-bft/pull/2756)
* **\[Execution]** 修复 compact virtual chunk offset 中的哨兵冲突
  * 参考:[monad PR #2083](https://github.com/category-labs/monad/pull/2083)
* **\[Execution]** 修复 execute\_block\_transactions 中潜在的竞态条件
  * 参考:[monad PR #2092](https://github.com/category-labs/monad/pull/2092)

#### 主要内部变更

* **\[Consensus]** 在 secondary raptorcast 被禁用时移除不需要的 channel
  * 参考:[monad-bft PR #2808](https://github.com/category-labs/monad-bft/pull/2808)
* **\[Consensus]** 将 alloy 升级到稳定版本
  * 参考:[monad-bft PR #2792](https://github.com/category-labs/monad-bft/pull/2792)
* **\[Execution]** 为 VM 工具添加 `evm-as` 语法糖
  * 参考:[monad PR #2097](https://github.com/category-labs/monad/pull/2097)
* **\[Consensus]** 参数化 wireauth 指标以获得更好的可观测性
  * 参考:[monad-bft PR #2692](https://github.com/category-labs/monad-bft/pull/2692)
* **\[Consensus]** 清理 block persist 实现
  * 参考:[monad-bft PR #2767](https://github.com/category-labs/monad-bft/pull/2767)
* **\[Consensus]** 修复 block-persist 中的 wip 扩展名
  * 参考:[monad-bft PR #2776](https://github.com/category-labs/monad-bft/pull/2776)
* **\[Consensus]** 移除遗留的 `do_local_insert`
  * 参考:[monad-bft PR #2728](https://github.com/category-labs/monad-bft/pull/2728)
* **\[Consensus]** 为 raptorcast 反序列化失败添加指标
  * 参考:[monad-bft PR #2789](https://github.com/category-labs/monad-bft/pull/2789)
* **\[RPC]** 减小 RPC 事件服务器广播 channel 大小
  * 参考:[monad-bft PR #2815](https://github.com/category-labs/monad-bft/pull/2815)
* **\[Consensus]** Pre-TFM base fee 清理
  * 参考:[monad-bft PR #2664](https://github.com/category-labs/monad-bft/pull/2664)
* **\[Consensus]** 移除 pre-TFM reserve balance 逻辑
  * 参考:[monad-bft PR #2622](https://github.com/category-labs/monad-bft/pull/2622)
* **\[RPC]** 简化 RPC 中的 hex 编码/解码
  * 参考:[monad-bft PR #2806](https://github.com/category-labs/monad-bft/pull/2806)
* **\[Archive]** 为 kvstore 添加 exists(key)
  * 参考:[monad-bft PR #2688](https://github.com/category-labs/monad-bft/pull/2688)

## v0.12.7

| 网络                                                        | 发布日期       | 备注 |
| --------------------------------------------------------- | ---------- | -- |
| [`mainnet`](/zh/developer-essentials/network-information) | 2026-01-29 |    |
| [`testnet`](/zh/developer-essentials/testnet)             | 2026-01-20 |    |
| `devnet`                                                  | N/A        |    |

标签或哈希:

* `monad-bft`: [tag `v0.12.7`](https://github.com/category-labs/monad-bft/releases/tag/v0.12.7)
* `monad`: [tag `v0.12.7`](https://github.com/category-labs/monad/releases/tag/v0.12.7)

#### 主要 RPC/SDK 变更

* **\[RPC]** 允许在 `eth_estimateGas` 中使用 block hash 作为区块标识符
  * 参考:[monad-bft PR #2676](https://github.com/category-labs/monad-bft/pull/2676)
* **\[RPC]** 对 RPC id 使用 `RawValue` 以保留原始 JSON 类型
  * 降低使用请求 ID 中大型 JSON 数组/字典的 DoS 攻击的有效性
  * 参考:[monad-bft PR #2455](https://github.com/category-labs/monad-bft/pull/2455)

#### 主要健壮性变更

* **\[EVM]** 修复 modexp 预编译中的未定义行为
  * 参考:[monad PR #2045](https://github.com/category-labs/monad/pull/2045)
* **\[Consensus]** 移除连续序列号断言
  * 参考:[monad-bft PR #2704](https://github.com/category-labs/monad-bft/pull/2704)
* **\[Consensus]** 使用来自 timeout 消息的 TC 推进 round 时改善活性
  * 参考:[monad-bft PR #2701](https://github.com/category-labs/monad-bft/pull/2701)
* **\[Consensus]** 禁止创建空的验证者集合
  * 参考:[monad-bft PR #2682](https://github.com/category-labs/monad-bft/pull/2682)

#### 主要内部变更

* **\[Consensus]** 为 `secp256k1` 添加安全性测试
  * 添加 Wycheproof 测试、可塑性测试和安全性单元测试
  * 参考:[monad-bft PR #2706](https://github.com/category-labs/monad-bft/pull/2706)
* **\[Node ops]** 更新 `rkyv` 及其他依赖
  * 参考:[monad-bft PR #2702](https://github.com/category-labs/monad-bft/pull/2702)
* **\[Consensus]** 在 dataplane 中同步返回绑定的套接字地址
  * 参考:[monad-bft PR #2653](https://github.com/category-labs/monad-bft/pull/2653)
* **\[Consensus]** 为清晰起见重命名 state backend 缓存
  * 参考:[monad-bft PR #2699](https://github.com/category-labs/monad-bft/pull/2699)

## v0.12.6

| 网络                                                        | 发布日期       | 备注 |
| --------------------------------------------------------- | ---------- | -- |
| [`mainnet`](/zh/developer-essentials/network-information) | 2026-01-14 |    |
| [`testnet`](/zh/developer-essentials/testnet)             | 2026-01-07 |    |
| `devnet`                                                  | N/A        |    |

标签或哈希:

* `monad-bft`: [tag `v0.12.6`](https://github.com/category-labs/monad-bft/releases/tag/v0.12.6)
* `monad`: [tag `v0.12.6`](https://github.com/category-labs/monad/releases/tag/v0.12.6)

#### 主要 RPC/SDK 变更

* **\[RPC]** 修复 selfdestruct 调用帧中的深度 bug
  * 参考:[monad PR #1977](https://github.com/category-labs/monad/pull/1977)
* **\[RPC]** Prestate tracer 一致性修复
  * 参考:[monad PR #1946](https://github.com/category-labs/monad/pull/1946)

#### 主要健壮性变更

* **\[Consensus]** 添加签名验证速率限制,已认证 peer 可绕过
  * 参考:[monad-bft PR #2601](https://github.com/category-labs/monad-bft/pull/2601)
* **\[Consensus]** 在更新 peer 之前验证 confirm group 消息
  * 参考:[monad-bft PR #2680](https://github.com/category-labs/monad-bft/pull/2680)
* **\[Consensus]** 直接使用 Tai64N 进行 wireauth 时间戳比较
  * 参考:[monad-bft PR #2678](https://github.com/category-labs/monad-bft/pull/2678)
* **\[Consensus]** 改善 RaptorCast 解码缓存驱逐
  * 参考:[monad-bft PR #2651](https://github.com/category-labs/monad-bft/pull/2651)
* **\[Consensus]** 修复缓存水合时 blocksync in-flight 请求跟踪
  * 参考:[monad-bft PR #2635](https://github.com/category-labs/monad-bft/pull/2635)
* **\[Execution]** 在执行提案之前更新 triedb voted 元数据
  * 解决通过 websocket 的 Voted 更新与相应 JSON-RPC 调用之间的竞态条件
  * 参考:[monad PR #1964](https://github.com/category-labs/monad/pull/1964)
* **\[Node ops]** 定期持久化 peer 以增强发现的弹性
  * 参考:[monad-bft PR #2633](https://github.com/category-labs/monad-bft/pull/2633)

#### 主要性能变更

* **\[Consensus]** 通过环形缓冲区实现提升 dataplane 吞吐量
  * 参考:[monad-bft PR #2596](https://github.com/category-labs/monad-bft/pull/2596)
* **\[Execution]** `MLOAD`、`MSTORE`、`MSTORE8`、`CALLDATALOAD` 操作码的原生实现
  * 参考:[monad PR #1963](https://github.com/category-labs/monad/pull/1963)
* **\[Execution]** 改善 snapshot 写入性能
  * 参考:[monad PR #1973](https://github.com/category-labs/monad/pull/1973), [monad PR #1960](https://github.com/category-labs/monad/pull/1960)
* **\[Execution]** 使用二分查找优化数据库 history 长度调整
  * 参考:[monad PR #1922](https://github.com/category-labs/monad/pull/1922)
* **\[Execution]** 在 AsyncIO 中统一单缓冲区和分散读取处理
  * 参考:[monad PR #1944](https://github.com/category-labs/monad/pull/1944)

#### 主要内部变更

* **\[Node ops]** 针对预构建镜像的 Docker 单节点容器更新
  * 对[本地 Docker 安装](https://github.com/category-labs/monad-bft/blob/master/README.md#using-pre-built-images)的修复
  * 参考:[monad-bft PR #2674](https://github.com/category-labs/monad-bft/pull/2674)
* **\[Consensus]** 添加对通用 txpool sidecar 的支持
  * 启用 IPC 交易优先级和转发控制
  * 参考:[monad-bft PR #2557](https://github.com/category-labs/monad-bft/pull/2557)
* **\[EVM]** Osaka fork 准备
  * Modexp gas 变化和上限(EIP-7823/EIP-7883)
  * 实现 `CLZ` 操作码
    * 参考:[monad PR #1970](https://github.com/category-labs/monad/pull/1970), [monad PR #1981](https://github.com/category-labs/monad/pull/1981)
* **\[Node ops]** 在 CLI 中接受 `--hyphen-style` 长选项
  * 参考:[monad PR #2005](https://github.com/category-labs/monad/pull/2005)
* **\[Node ops / Archive]** Archive 流水线改进
  * 为 `KVStore` 添加 `WritePolicy` 用于条件写入保护(`NoClobber`)
  * 添加 BFT 上传统计日志
  * 参考:[monad-bft PR #2649](https://github.com/category-labs/monad-bft/pull/2649), [monad-bft PR #2661](https://github.com/category-labs/monad-bft/pull/2661)
* **\[Node ops]** 简化 RPC txpool 状态跟踪
  * 参考:[monad-bft PR #2644](https://github.com/category-labs/monad-bft/pull/2644)
* **\[Node ops]** `monad_cli` 中的 snapshot 工具改进
  * 添加 `--dump_concurrency_limit` 参数
  * 为分布式 snapshot 创建添加分片支持
  * 参考:[monad PR #1967](https://github.com/category-labs/monad/pull/1967), [monad PR #1965](https://github.com/category-labs/monad/pull/1965)
* **\[Node ops]** 添加 RaptorCast 解码缓存指标
  * 参考:[monad-bft PR #2667](https://github.com/category-labs/monad-bft/pull/2667)
* **\[Execution]** 为执行数据库添加 `CommitBuilder` API
  * 参考:[monad PR #1968](https://github.com/category-labs/monad/pull/1968)
* **\[Execution]** 移除遗留的 `using_chunks_for_root_offsets` 元数据字段
  * 参考:[monad PR #1943](https://github.com/category-labs/monad/pull/1943)
* **\[Node ops / Txgen]** 添加 ERC-4337 + EIP-7702 生成器(`erc4337_7702_bundled`)
  * 参考:[monad-bft PR #2628](https://github.com/category-labs/monad-bft/pull/2628)
* **\[Node ops]** 为 `blockcapd` 和执行事件 archiver 添加 systemd 服务脚本
  * 参考:[monad-bft PR #2590](https://github.com/category-labs/monad-bft/pull/2590)
* **\[SDK]** 添加 `monad_event_resolve_ring_file` API
  * 参考:[monad PR #1741](https://github.com/category-labs/monad/pull/1741)
* **\[Execution]** 在 VM 外启用 VM 主机异常处理
  * 参考:[monad PR #1990](https://github.com/category-labs/monad/pull/1990)

## v0.12.5

| 网络                                                        | 发布日期       | 备注           |
| --------------------------------------------------------- | ---------- | ------------ |
| [`mainnet`](/zh/developer-essentials/network-information) | N/A        |              |
| [`testnet`](/zh/developer-essentials/testnet)             | 2025-12-16 | 从 genesis 重置 |
| `devnet`                                                  | N/A        |              |

标签或哈希:

* `monad-bft`: [tag `v0.12.5`](https://github.com/category-labs/monad-bft/releases/tag/v0.12.5)
* `monad`: [tag `v0.12.5`](https://github.com/category-labs/monad/releases/tag/v0.12.5)

#### 主要网络变更

* **\[Network reset]** `testnet` **从 genesis 重置** starting from `MONAD_EIGHT`
  * 将总供应量增加到 1000 亿,与 `mainnet` 保持一致
  * 为消除死代码(早期 `testnet` 所需的 revision)清理路径
  * 参考:[monad PR #1983](https://github.com/category-labs/monad/pull/1983), [monad-bft PR #2673](https://github.com/category-labs/monad-bft/pull/2673)

## v0.12.4

| 网络                                                        | 发布日期       | 备注 |
| --------------------------------------------------------- | ---------- | -- |
| [`mainnet`](/zh/developer-essentials/network-information) | 2025-12-05 |    |
| [`testnet`](/zh/developer-essentials/testnet)             | 2025-12-05 |    |
| `devnet`                                                  | 2025-12-05 |    |

标签或哈希:

* `monad-bft`: [tag `v0.12.4`](https://github.com/category-labs/monad-bft/releases/tag/v0.12.4)
* `monad`: [tag `v0.12.4`](https://github.com/category-labs/monad/releases/tag/v0.12.4) *(unchanged from v0.12.3)*

#### 主要内部变更

* **\[Node ops]** 修复构造 self name record 时的 peer discovery 端口配置
  * 在构造 self name record 时使用来自 peer discovery 配置的端口,而不是绑定套接字的端口。此 bug 影响使用 NAT 的节点运营者。
  * 参考:[monad-bft PR #2655](https://github.com/category-labs/monad-bft/pull/2655)

## v0.12.3

| 网络                                                        | 发布日期       | 备注 |
| --------------------------------------------------------- | ---------- | -- |
| [`mainnet`](/zh/developer-essentials/network-information) | 2025-12-05 |    |
| [`testnet`](/zh/developer-essentials/testnet)             | 2025-12-04 |    |
| `devnet`                                                  | 2025-12-04 |    |

标签或哈希:

* `monad-bft`: [tag `v0.12.3`](https://github.com/category-labs/monad-bft/releases/tag/v0.12.3)
* `monad`: [tag `v0.12.3`](https://github.com/category-labs/monad/releases/tag/v0.12.3)

#### 主要 RPC/SDK 变更

* **\[RPC]** 支持 [EIP-7966](https://eips.ethereum.org/EIPS/eip-7966)(`eth_sendRawTransactionSync`)
  * 参考:[monad-bft PR #2542](https://github.com/category-labs/monad-bft/pull/2542)
* **\[RPC]** 为 staking 预编译 syscall 的 trace 填充 `value` 字段(在 `0.12.3-rpc-hotfix2` 中添加)
  * 参考:[monad PR #1938](https://github.com/category-labs/monad/pull/1938)

#### 主要健壮性变更

* **\[Consensus]** UDP 的线路认证协议
  * 添加认证 UDP 通信以改善网络安全
  * 包含 replay window 调整以改善可靠性
  * 参考:[monad-bft PR #2417](https://github.com/category-labs/monad-bft/pull/2417), [monad-bft PR #2544](https://github.com/category-labs/monad-bft/pull/2544), [monad-bft PR #2626](https://github.com/category-labs/monad-bft/pull/2626), [monad-bft PR #2091](https://github.com/category-labs/monad-bft/pull/2091)
* **\[Execution]** 改善 `statesync` 关闭并修复协议损坏
  * 修改 `statesync_server_recv()` 以保证完整读取
  * 参考:[monad PR #1930](https://github.com/category-labs/monad/pull/1930)
* **\[RPC]** 防止 RPC 中的 reserve balance 崩溃
  * 在调用帧中添加 reserve balance violation 错误消息
  * 参考:[monad PR #1932](https://github.com/category-labs/monad/pull/1932), [monad-bft PR #2629](https://github.com/category-labs/monad-bft/pull/2629)
  * 此项已在 `v0.12.2-rpc-hotfix` 中发布过
* **\[Consensus]** 为 `txpool` IPC 流添加超时
  * 防止交易池通信中的连接挂起
  * 参考:[monad-bft PR #2619](https://github.com/category-labs/monad-bft/pull/2619)
* **\[Consensus]** 拒绝签名者为空的 timeout certificate
  * 添加验证以防止畸形 timeout certificate
  * 参考:[monad-bft PR #2630](https://github.com/category-labs/monad-bft/pull/2630)
* **\[Consensus]** 验证 RaptorCast chunk 长度非零
  * 添加验证以防止畸形 RaptorCast chunk
  * 参考:[monad-bft PR #2638](https://github.com/category-labs/monad-bft/pull/2638)
* **\[Execution]** 修复未能保留 `version_lower_bound` 的 MPT 恢复 bug
  * 参考:[monad PR #1955](https://github.com/category-labs/monad/pull/1955)
* **\[Execution]** 修复移动 trie 版本向前的 bug
  * 在向前移动到更新版本之前,擦除超出 history 范围的版本
  * 参考:[monad PR #1957](https://github.com/category-labs/monad/pull/1957)
* **\[Execution]** 修复指向 intercode 的悬空指针
  * 解决 `get_code` 和 `read_code` 函数的内存安全问题
  * 参考:[monad PR #1941](https://github.com/category-labs/monad/pull/1941)
* **\[Execution]** 为 `runloop_monad_ethblocks` 添加重试
  * 参考:[monad PR #1953](https://github.com/category-labs/monad/pull/1953)

#### 主要性能变更

* **\[RPC]** 改善 `eth_getLogs` 性能
  * 减少内存拷贝并统一 receipt-to-logs 处理
  * 参考:[monad-bft PR #2588](https://github.com/category-labs/monad-bft/pull/2588), [monad-bft PR #2591](https://github.com/category-labs/monad-bft/pull/2591), [monad-bft PR #2631](https://github.com/category-labs/monad-bft/pull/2631)
* **\[Execution]** Fiber:添加对 move-only 仿函数的支持
  * 通过支持 move 语义提升执行效率
  * 参考:[monad PR #1936](https://github.com/category-labs/monad/pull/1936)

#### 主要内部变更

* **\[RPC / Node ops]** 允许 RPC 在无 `monad-bft` 情况下运行
  * 启用独立 RPC 运行以改善部署灵活性
  * 参考:[monad-bft PR #2613](https://github.com/category-labs/monad-bft/pull/2613)
* **\[Node ops]** 为 `monad-mpt` 添加 `--root-offsets-chunk-count` flag 以配置为 root offsets 分配的 chunk 数量
  * 每个 chunk 可容纳约 1650 万个区块。此前,所有节点都硬编码为使用 2 个 chunk(TrieDB 最大容量约 3300 万区块)
  * 新默认值:16,**必须是 2 的幂**
  * 请注意,默认值 16 对应约 2.68 亿区块 \~ 1240 天。大多数情况下限制因素是磁盘容量,在填满至 80% 时会自动压缩
  * 参考:[monad PR #1937](https://github.com/category-labs/monad/pull/1937)
* **\[Node ops]** Peer discovery 改进
  * Full node 定期拉取验证者 name record 以进行动态验证者发现
  * 为 name record 添加认证 UDP 端口
  * 参考:[monad-bft PR #2607](https://github.com/category-labs/monad-bft/pull/2607), [monad-bft PR #2538](https://github.com/category-labs/monad-bft/pull/2538)
* **\[Node ops / Archive]** Archive 基础设施改进
  * 通过 `--max-blocks-per-iter` 配置重构 `monad-block-writer` 以提高可靠性
  * 异步回填,支持仅追踪的 archive
  * 添加 `require-traces` archiver flag 和 indexer 回退源
  * 支持历史执行事件归档以及通用目录归档
  * **可能破坏兼容性:从 `monad-archiver` systemd 服务中移除 `--start-block`;运营者必须使用命令式 CLI 来设置起始区块**
    * 示例:`monad-archiver set-start-block --block 1000000 --archive-sink s3://bucket-name/path`
    * 使用 `--async-backfill` flag 设置 async-backfill 标记,而不是 primary 标记
  * 参考:[monad-bft PR #2610](https://github.com/category-labs/monad-bft/pull/2610), [monad-bft PR #2606](https://github.com/category-labs/monad-bft/pull/2606), [monad-bft PR #2598](https://github.com/category-labs/monad-bft/pull/2598), [monad-bft PR #2514](https://github.com/category-labs/monad-bft/pull/2514), [monad-bft PR #2612](https://github.com/category-labs/monad-bft/pull/2612), [monad-bft PR #2569](https://github.com/category-labs/monad-bft/pull/2569), [monad-bft PR #2623](https://github.com/category-labs/monad-bft/pull/2623)
* **\[Node ops]** 网络配置更新
  * 使用默认 MTU 1500
  * 在 `monad-executor` 和 `monad-raptorcast` 中添加 HDR histogram 用于广播延迟跟踪
  * 参考:[monad-bft PR #2576](https://github.com/category-labs/monad-bft/pull/2576), [monad-bft PR #2602](https://github.com/category-labs/monad-bft/pull/2602)
* **\[Consensus]** RaptorCast 改进
  * 每 30 秒清空 histogram 并仅保留 p99 以获得更好的延迟跟踪
  * 修复接收到控制消息后的 timer 更新,以确保正确的 keepalive
  * 参考:[monad-bft PR #2627](https://github.com/category-labs/monad-bft/pull/2627), [monad-bft PR #2637](https://github.com/category-labs/monad-bft/pull/2637)
* **\[Consensus]** Dataplane:重构以使用 socket handle
  * 为 dataplane 未来使用认证套接字进行扩展做准备
  * 参考:[monad-bft PR #2458](https://github.com/category-labs/monad-bft/pull/2458)
* **\[Execution]** Replay monad:始终基于最新 finalized 状态执行首个区块
  * 参考:[monad PR #1927](https://github.com/category-labs/monad/pull/1927)
* **\[Node ops]** Txgen 改进:README 和指南、nonce gap 和 legacy tx 选项、ERC20 池、Uniswap v3 模式、NFT 出售模式、websocket 和 RPC 请求生成
  * 参考:[monad-bft PR #2568](https://github.com/category-labs/monad-bft/pull/2568), [monad-bft PR #2567](https://github.com/category-labs/monad-bft/pull/2567), [monad-bft PR #2577](https://github.com/category-labs/monad-bft/pull/2577), [monad-bft PR #2600](https://github.com/category-labs/monad-bft/pull/2600), [monad-bft PR #2527](https://github.com/category-labs/monad-bft/pull/2527), [monad-bft PR #2394](https://github.com/category-labs/monad-bft/pull/2394), [monad-bft PR #2608](https://github.com/category-labs/monad-bft/pull/2608)

## v0.12.2

| 网络                                                        | 发布日期       | 备注 |
| --------------------------------------------------------- | ---------- | -- |
| [`mainnet`](/zh/developer-essentials/network-information) | 2025-11-19 |    |
| [`testnet`](/zh/developer-essentials/testnet)             | 2025-11-18 |    |
| `devnet`                                                  | 2025-11-18 |    |

标签或哈希:

* `monad-bft`: [tag `v0.12.2-rc`](https://github.com/category-labs/monad-bft/releases/tag/v0.12.2-rc)
* `monad`: [tag `v0.12.2-rc`](https://github.com/category-labs/monad/releases/tag/v0.12.2-rc)

#### 主要协议变更

以下所有更新均由 `MONAD_EIGHT` revision 控制

* **\[Execution]** Reserve balance 检查现在使用最终状态代码哈希。这使得检查
  略微宽松(在执行期间不太可能 revert 交易),并使实现
  更接近
  [Coq 模型](https://category-labs.github.io/category-research/formalverif/reserve-balance/monad.proofs.reservebal.html)
  该模型已在一些假设下被证明是正确的。
  * 这改变了以下边界情况的行为:
    * 在交易 1 中,账户 X 收到少量 MON(例如 5 MON)
    * 然后(很久之后)在交易 2 中,有人在账户
      X 上部署智能合约钱包,并从该智能合约中发送 MON。
    * 之前,交易 2 的执行会将账户 X 视为 EOA 并对其应用 reserve
      balance 检查,从而 revert 交易,因为它会是一次未经共识预授权的
      dipping 交易。
    * 变更之后,账户 X 将被视为智能合约账户,并将
      从 reserve balance 检查中省略。
    * 请注意,智能合约地址是确定性的,这实际上使得
      接收代码部署的地址不可能同时是 EOA(即对应于
      私钥)。
  * 参考:[monad PR #1916](https://github.com/category-labs/monad/pull/1916),
    [monad PR #1917](https://github.com/category-labs/monad/pull/1917)
* **\[EVM]** 将 staking 预编译反向映射的分页从 100 减少到 50
  * 适用于 `precompile_get_delegations()` 和 `precompile_get_delegators()`
  * 参考:[monad PR #1920](https://github.com/category-labs/monad/pull/1920)

#### 主要部署变更

* **\[SDK]** 执行事件不再需要特殊的 "preview" 版本来启用所有 EVM 通知(不再有 `--exec-events` 特殊版本)
* **\[SDK]** 修复 event ring 创建中的竞态条件
  * 参考:[monad PR #1914](https://github.com/category-labs/monad/pull/1914)

#### 主要健壮性变更

* **\[RPC]** 修复 `eth_feeHistory`
  * 参考:[monad-bft PR #2366](https://github.com/category-labs/monad-bft/pull/2366)
* **\[Consensus]** 更新交易分类逻辑,在 delegation 之前先 emptying
  * 改善 `try_apply_block_fees` 中的 delegation 顺序
  * 参考:[monad-bft PR #2561](https://github.com/category-labs/monad-bft/pull/2561)
* **\[Execution]** 奖励系统交易的故障保护性合理性检查
  * 参考:[monad PR #1921](https://github.com/category-labs/monad/pull/1921)
* **\[RPC]** 在 `eth_call` 中检查 reserve balance
  * 防止模拟交易违反 reserve balance
  * 在 `eth_call` 实现中调用 `revert_transaction`
  * 参考:[monad PR #1912](https://github.com/category-labs/monad/pull/1912)
* **\[Node ops]** 修复远程拉取的 `forkpoint.toml` 写入格式
  * 确保从远程源拉取时以正确格式写入 forkpoint 文件
  * 参考:[monad-bft PR #2554](https://github.com/category-labs/monad-bft/pull/2554)
* **\[Node ops]** 修复 `monad-keystore` key 损坏问题
  * `to_bls` 和 `to_secp` 现在消费 secret 以防止损坏的 keystore 文件
  * 为命令行 keystore 应用添加测试,以验证所有 flag 组合都能正常工作
  * 参考:[monad-bft PR #2553](https://github.com/category-labs/monad-bft/pull/2553)
* **\[Execution]** 修复 `storage_pool` 的 `try_trim_contents()` 中当 TRIM 起始字节不是磁盘 page 大小的倍数时的错误写入偏移
  * 参考:[monad PR #1908](https://github.com/category-labs/monad/pull/1908)
* **\[RPC]** 使用 txpool bridge channel 大小进行速率限制
  * 通过使用 channel 容量来对 `eth_sendRawTransaction` 进行速率限制,防止 `try_send` 方法失败
  * 参考:[monad-bft PR #2506](https://github.com/category-labs/monad-bft/pull/2506)
* **\[Consensus]** 改善 RaptorCast 消息验证
  * 为消息解析中的 `chunk_id` 范围添加合理性检查
  * 在 merkle proof 构造中拒绝溢出的 `merkle_leaf_idx`
  * 更新解码器中 `encoded_symbol_capacity` 的计算
  * 参考:[monad-bft PR #2541](https://github.com/category-labs/monad-bft/pull/2541)
* **\[Consensus]** 改善 RaptorCast group 邀请响应检查
  * 添加合理性检查,防止在同一 full node reject 后处理其 group 邀请 accept
  * 参考:[monad-bft PR #2574](https://github.com/category-labs/monad-bft/pull/2574)
* **\[Consensus]** 更新 txpool 插入策略 - 使余额检查更严格
  * 参考:[monad-bft PR #2575](https://github.com/category-labs/monad-bft/pull/2575)

#### 主要性能变更

* **\[Consensus]** 在优先级队列越限时添加 dataplane 警告
  * 将每个优先级队列的总容量设置为 100MB(总计最大 200MB)
  * 若超过容量,消息将被丢弃并记录警告
  * 参考:[monad-bft PR #2559](https://github.com/category-labs/monad-bft/pull/2559)
* **\[Execution / Node ops]** 移除只读数据库的 `io_uring` SQ poll 线程
  * **重要**:使用 `monad-execution` systemctl override 的运营者应进行适当的修改以移除 `--ro_sq_thread_cpu` 参数,如 [monad-bft PR #2558](https://github.com/category-labs/monad-bft/pull/2558) 所示。在启用 `--trace_calls` 运行 RPC 或 archive 节点时通常会设置 override。
  * 减少 statesync 期间的线程争用,提高区块执行性能
  * 将 `ro_sq_thread_cpu` 参数设为可选,从默认配置中移除
  * 参考:[monad PR #1911](https://github.com/category-labs/monad/pull/1911), [monad-bft PR #2558](https://github.com/category-labs/monad-bft/pull/2558)
* **\[RPC]** 将 `eth_call` 的 recover authority 逻辑移入提交的 lambda 内
  * 避免从 rust 线程调用时在 fiber promise 上阻塞,防止性能问题
  * 由于 `eth_call` 交易只有单个 authority,以单次调用 `recover_authority()` 替换并行化
  * 参考:[monad PR #1827](https://github.com/category-labs/monad/pull/1827)
* **\[Execution]** 移除 `iopoll` 支持
  * 参考:[monad PR #1910](https://github.com/category-labs/monad/pull/1910)

#### 主要内部变更

* **\[Node ops]** 添加 `monad-version` crate,用于在二进制文件中提供 git 版本信息
  * 参考:[monad-bft PR #2572](https://github.com/category-labs/monad-bft/pull/2572)
* **\[Node ops]** 添加 CLI 参数以指定 trace 交易执行池中的 fiber 数量(默认:100)
  * 参考:[monad-bft PR #2584](https://github.com/category-labs/monad-bft/pull/2584)
* **\[Node ops]** 更新主网区块奖励
  * 参考:[monad-bft PR #2582](https://github.com/category-labs/monad-bft/pull/2582)
* **\[Node ops]** 添加用于测试和调试的 block writer 二进制文件
  * 参考:[monad-bft PR #2546](https://github.com/category-labs/monad-bft/pull/2546)
* **\[Node ops]** 使 cruft timer 保留可配置
  * 为 artifact 保留时间添加环境变量支持(在 `/home/monad/.env` 中 override)
  * 参考:[monad-bft PR #2548](https://github.com/category-labs/monad-bft/pull/2548)
* **\[Node ops]** 在需要从 snapshot(硬重置)恢复时添加警告
  * 当本地 tip 落后 `STATESYNC_BLOCK_THRESHOLD` 时提示节点运营者
  * 参考:[monad-bft PR #2581](https://github.com/category-labs/monad-bft/pull/2581)
* **\[Node ops]** 将 `monad-cruft` 权限更新为 monad 用户
  * 参考:[monad-bft PR #2556](https://github.com/category-labs/monad-bft/pull/2556)
* **\[Node ops]** 修复交易替换的 txpool 指标记录
  * 参考:[monad-bft PR #2564](https://github.com/category-labs/monad-bft/pull/2564)
* **\[RPC]** 运营者可以配置 RPC worker 线程
  * 参考:[monad-bft PR #2562](https://github.com/category-labs/monad-bft/pull/2562)
* **\[Archive]** 添加 TOML 配置文件支持,取代仅 CLI 配置
  * 允许 `monad-archiver` 二进制使用 `--config` flag 进行配置
  * CLI 参数继续有效,且优先级高于配置文件值
  * 参考:[monad-bft PR #2570](https://github.com/category-labs/monad-bft/pull/2570)
* **\[Node ops]** 为 `txgen` 添加随机变异以改进测试
  * 参考:[monad-bft PR #2543](https://github.com/category-labs/monad-bft/pull/2543)
* **\[Node ops]** 添加 reserve balance 一致性测试
  * 参考:[monad-bft PR #2573](https://github.com/category-labs/monad-bft/pull/2573)
* **\[SDK]** 记录执行事件
  * 包括状态访问和系统交易
  * 参考:[monad PR #1906](https://github.com/category-labs/monad/pull/1906), [monad PR #1907](https://github.com/category-labs/monad/pull/1907), [monad PR #1913](https://github.com/category-labs/monad/pull/1913)
* **\[SDK]** 显式清除不适用于某些事件类型的 flow 信息
  * 防止编写不佳的事件客户端读取无效数据
  * 参考:[monad PR #1919](https://github.com/category-labs/monad/pull/1919)
* **\[Execution]** 通过 `MONAD_ASSERT_PRINTF` 改进断言消息
  * 参考:[monad PR #1918](https://github.com/category-labs/monad/pull/1918)
* **\[Node ops]** 添加 statesync 服务器指标
  * 添加 `SyncDone` 指标以跟踪成功和失败
  * 为 statesync 服务器添加请求耗时指标
  * 参考:[monad-bft PR #2555](https://github.com/category-labs/monad-bft/pull/2555)
* **\[Node ops]** 消除 triedb 错误日志的歧义
  * 通过使每个日志调用唯一以改善错误消息清晰度
  * 参考:[monad-bft PR #2579](https://github.com/category-labs/monad-bft/pull/2579)
* **\[Node ops]** 更新 devnet 链配置
  * 将默认 devnet epoch 长度从 50,000 区块缩短到 10,000 区块,epoch 起始延迟从 5,000 round 缩短到 1,000 round
  * 参考:[monad-bft PR #2578](https://github.com/category-labs/monad-bft/pull/2578)
* **\[Node ops]** 更新测试基础设施
  * 将 `test_state` 和 `precompiles_test` 测试切换为 `TraitsTest`
  * 为 CLI 添加 `runloop_monad_ethblocks`,用于 Monad EVM 区块 replay
  * 参考:[monad PR #1905](https://github.com/category-labs/monad/pull/1905), [monad PR #1894](https://github.com/category-labs/monad/pull/1894)
* **\[Execution]** 移除未使用的跨线程管道消息基础设施
  * 参考:[monad PR #1915](https://github.com/category-labs/monad/pull/1915)
* **\[Node ops]** 在 node 状态中保持 manytrace agent 存活
  * 参考:[monad-bft PR #2583](https://github.com/category-labs/monad-bft/pull/2583)
* **\[Node ops]** 更新 keystore 文档
  * 参考:[monad-bft PR #2380](https://github.com/category-labs/monad-bft/pull/2380)
* **\[Node ops]** 为区块验证错误添加更多日志
  * 参考:[monad-bft PR #2550](https://github.com/category-labs/monad-bft/pull/2550)
* **\[Node ops]** 处理 certificate 时记录 round leader
  * 参考:[monad-bft PR #2580](https://github.com/category-labs/monad-bft/pull/2580)

## v0.12.1

| 网络                                            | 发布日期       | 备注 |
| --------------------------------------------- | ---------- | -- |
| [`testnet`](/zh/developer-essentials/testnet) | 2025-11-12 |    |
| `devnet`                                      | 2025-11-12 |    |

标签或哈希:

* `monad-bft`: [tag `v0.12.1`](https://github.com/category-labs/monad-bft/releases/tag/v0.12.1)
* `monad`: [tag `v0.12.1`](https://github.com/category-labs/monad/releases/tag/v0.12.1)

#### 主要 RPC/SDK 变更

* **\[RPC]** 为以下 RPC 端点支持 prestate 和 statediff tracing:
  * `debug_traceTransaction`
  * `debug_traceBlockByNumber`
  * `debug_traceBlockByHash`
  * 参考:[monad PR #1753](https://github.com/category-labs/monad/pull/1753), [monad-bft PR #2403](https://github.com/category-labs/monad-bft/pull/2403)
* **\[RPC]** 新端点 `eth_createAccessList`
  * 参考:[monad PR #1748](https://github.com/category-labs/monad/pull/1748), [monad-bft PR #2519](https://github.com/category-labs/monad-bft/pull/2519)
* **\[RPC]** 修复历史 trace 中 `to` 地址的序列化
  * 承接在 `v0.12.0` 中实现的 [monad-bft PR #2516](https://github.com/category-labs/monad-bft/pull/2516)(在历史上下文中)
  * 参考:[monad-bft PR #2523](https://github.com/category-labs/monad-bft/pull/2523), [monad PR #1861](https://github.com/category-labs/monad/pull/1861)
* **\[RPC]** 为 `eth_call` 和 RPC 查询移除人为的区块高度下限
  * 之前使用 `latest` 和 `safe` 区块标签的查询被限制在 `finalized + 1`,现在使用真实的最新 voted 区块
  * 参考:[monad-bft PR #2148](https://github.com/category-labs/monad-bft/pull/2148)
* **\[RPC]** 修复请求包含 self-destruct 交易的调用帧的 trace 时的 RPC 错误
  * 参考:[monad PR #1887](https://github.com/category-labs/monad/pull/1887)
* **\[RPC]** 修复在 RPC 调用中使用状态覆盖时报告结果不一致
  * 参考:[monad PR #1812](https://github.com/category-labs/monad/pull/1812)
* **\[RPC]** 修复通过覆盖 staking 合约中的余额对 RPC 节点发起的可能拒绝服务攻击
  * 参考:[monad PR #1903](https://github.com/category-labs/monad/pull/1903)

#### 主要健壮性变更

* **\[Node ops/Consensus]** 验证者将 statesync 服务限制在验证者和白名单 full node
  * Full node 服务所有请求
  * 参考:[monad-bft PR #2524](https://github.com/category-labs/monad-bft/pull/2524)
* **\[Consensus]** 更智能的 txpool 驱逐逻辑
  * 参考:[monad-bft PR #2525](https://github.com/category-labs/monad-bft/pull/2525)
* **\[Consensus]** 启动时开始 vote 节奏计时器
  * 参考:[monad-bft PR #2528](https://github.com/category-labs/monad-bft/pull/2528)
* **\[Consensus]** 修复历史日志的 `selfdestruct` 问题
  * 参考:[monad-bft PR #2531](https://github.com/category-labs/monad-bft/pull/2531)
* **\[Consensus]** 优雅处理 gas 上限检查
  * 参考:[monad-bft PR #2518](https://github.com/category-labs/monad-bft/pull/2518)
* **\[Consensus]** 移除 0-stake 验证者支持
  * 验证者集合中对 0-stake 验证者的支持过去被用作 full-node 支持缺失的变通方案,现在不应再被支持
  * 参考:[monad-bft PR #2545](https://github.com/category-labs/monad-bft/pull/2545)

#### 主要性能变更

* **\[Consensus]** 使 statesync 请求偏向响应性的 peer
  * 支持动态 peer 扩展/收缩
  * 若所有 peer 都被剪枝(例如未被任何 init peer 白名单),节点不再 panic
  * 参考:[monad-bft PR #2536](https://github.com/category-labs/monad-bft/pull/2536)
* **\[Consensus]** 丢弃在缓存水合后(启动后约 7 分钟)命中磁盘的 blocksync 请求
  * 参考:[monad-bft PR #2533](https://github.com/category-labs/monad-bft/pull/2533)
* **\[Consensus]** Dataplane:用 sleep 替换 interval
  * 参考:[monad-bft PR #2517](https://github.com/category-labs/monad-bft/pull/2517)
* **\[Execution]** 替换 `VersionStack` 代码中的数据结构,以改善压入和弹出 EVM 调用帧时的性能。
  * 参考:[monad PR #1802](https://github.com/category-labs/monad/pull/1802), [monad PR #1877](https://github.com/category-labs/monad/pull/1877)

#### 主要内部变更

* **\[Node ops]** 在启动时尝试拉取远程 `forkpoint.toml` 和 `validators.toml`
  * **重要**:节点现在在启动时自动尝试从远程位置下载配置文件,无需 "软重置"。此远程拉取受可配置的远程阈值约束
  * 必须设置以下环境变量以启用此行为:
    * `REMOTE_FORKPOINT_URL`
    * `REMOTE_VALIDATORS_URL`
  * 参考:[monad-bft PR #2484](https://github.com/category-labs/monad-bft/pull/2484), [monad-bft PR #2534](https://github.com/category-labs/monad-bft/pull/2534)
* **\[Node ops]** 以 TOML 和 RLP 两种格式序列化 forkpoint,以 RLP 为真相源;清理 `get_latest_config` 分支
  * 参考:[monad-bft PR #2521](https://github.com/category-labs/monad-bft/pull/2521)
* **\[Node ops/Consensus]** 动态扩展 statesync 上游 peer
  * 始终初始化为 `statesync.init_peers`(不再默认为 bootstrap peer)
  * 若启用 `expand_to_group`,则扩展到验证者集合(对验证者)和/或 secondary raptorcast peer(对公共/优先级 full node)
  * 参考:[monad-bft PR #2535](https://github.com/category-labs/monad-bft/pull/2535)
* **\[Node ops/Consensus]** Full node 不再默认从验证者集合进行 blocksync
  * 专用 full node 必须将上游指定为 blocksync override
  * **重要**:优先级/公共 full node 只能在加入 secondary raptorcast group *之后* 进行 blocksync。建议将 `refresh_period` 和 `invite_lookahead` 降低到 20 秒
  * 参考:[monad-bft PR #2532](https://github.com/category-labs/monad-bft/pull/2532)
* **\[Consensus]** 使用 epoch 字段为 secondary raptorcast 编码 round 号
  * 修复正在同步的 full node 收到来自已过期 group 的未请求 chunk 的问题
  * 参考:[monad-bft PR #2442](https://github.com/category-labs/monad-bft/pull/2442)
* **\[Consensus]** 添加 statesync 服务器 pending 请求指标(更好的负载可见性)
  * 参考:[monad-bft PR #2530](https://github.com/category-labs/monad-bft/pull/2530)
* **\[Node ops]** 导入 `monad-execution` API 变更
  * 参考:[monad-bft PR #2522](https://github.com/category-labs/monad-bft/pull/2522)

## v0.12.0

| 网络                                            | 发布日期       | 备注                                                                                                                   |
| --------------------------------------------- | ---------- | -------------------------------------------------------------------------------------------------------------------- |
| [`testnet`](/zh/developer-essentials/testnet) | 2025-11-05 | Revision 在 2025-11-05 14:30 GMT 设置为 [`MONAD_SEVEN`](https://docs.monad.xyz/developer-essentials/changelog#revisions) |
| `devnet`                                      | 2025-11-03 | Devnet 已随本次发布重置,revision 设置为 [`MONAD_SEVEN`](https://docs.monad.xyz/developer-essentials/changelog#revisions)        |

标签或哈希:

* `monad-bft`: [tag `v0.12.0`](https://github.com/category-labs/monad-bft/releases/tag/v0.12.0)
* `monad`: [tag `v0.12.0`](https://github.com/category-labs/monad/releases/tag/v0.12.0)

#### 主要协议变更

* **\[EVM/Network params]** [Opcode/precompile repricing](/zh/developer-essentials/opcode-pricing)
  * 操作码定价:提高冷存储访问的成本
  * 预编译定价:使少数定价过低的预编译 gas 成本更好地与相关硬件/延迟成本对齐
  * Ref: [monad PR #1600](https://github.com/category-labs/monad/pull/1600) (for most of the repricings) and [monad PR #1700](https://github.com/category-labs/monad/pull/1700) (for `CREATE`/`CREATE2` repricing), [monad PR #1830](https://github.com/category-labs/monad/pull/1830) (for reduced v2 scope), [monad PR #1871](https://github.com/category-labs/monad/pull/1871) (activation for `MONAD_SEVEN`)
  * 由 `MONAD_SEVEN` revision 控制
* **\[Consensus/Network params]** \[Staking] 将 `BLOCK_REWARD_MON` 从 1 MON 提高到 25 MON
  * 请注意,这不由 `MONAD_SEVEN`(执行硬分叉)控制,而是由 `testnet` 的特定 epoch 起点控制
  * 参考:[monad-bft PR #2511](https://github.com/category-labs/monad-bft/pull/2511)

#### 主要健壮性变更

* **\[Consensus]** dataplane 中的共识消息优先级
  * UDP 流量的优先级队列确保共识消息优先于其他流量交付
  * 所有发送给验证者的共识消息都以高优先级发布和重播
  * 参考:[monad-bft PR #2352](https://github.com/category-labs/monad-bft/pull/2352),
    [monad-bft PR #2354](https://github.com/category-labs/monad-bft/pull/2354)
* **\[Consensus]** DoS 防护:拒绝重复的无效共识消息
  * 防止恶意验证者通过反复发送无效 BLS 签名消耗 CPU 时间
  * 参考:[monad-bft PR #2445](https://github.com/category-labs/monad-bft/pull/2445)
* **\[Consensus]** Leader 同步改进
  * 将 AdvanceRound 消息转发给当前 leader,以防止因消息审查导致的过时视图
  * 参考:[monad-bft PR #2485](https://github.com/category-labs/monad-bft/pull/2485)
* **\[Consensus]** 验证 group 消息发送者的真实性
  * 参考:[monad-bft PR #2457](https://github.com/category-labs/monad-bft/pull/2457)

#### 主要 RPC/SDK 变更

* **\[RPC]** 修复 `eth_syncing` 序列化
  * 参考:[monad-bft PR #2476](https://github.com/category-labs/monad-bft/pull/2476)
* **\[RPC]** 更新 `debug_getRawReceipts` RLP 编码
  * 参考:[monad-bft PR #2490](https://github.com/category-labs/monad-bft/pull/2490)
* **\[RPC]** 失败的合约创建应向地址返回 null
  * 参考:[monad PR #1861](https://github.com/category-labs/monad/pull/1861),
    [monad-bft PR #2516](https://github.com/category-labs/monad-bft/pull/2516)

#### 主要性能变更

* **\[Consensus]** Dataplane:UDP 发送的 io\_uring 批处理
  * 用 io\_uring 批处理替换 GSO,以在拆分 payload 的同时保持 64KB 突发大小
  * 将多个 UDP 发送批量为单次 io\_uring 提交
  * 参考:[monad-bft PR #2317](https://github.com/category-labs/monad-bft/pull/2317)
* **\[Consensus]** Dataplane:恢复完整 1500 字节 MTU
  * 参考:[monad-bft PR #2438](https://github.com/category-labs/monad-bft/pull/2438)
* **\[Consensus]** RaptorCast:模块化 packet 组装和轮询排序
  * 参考:[monad-bft PR #2377](https://github.com/category-labs/monad-bft/pull/2377),
    [monad-bft PR #2469](https://github.com/category-labs/monad-bft/pull/2469),
    [monad-bft PR #2318](https://github.com/category-labs/monad-bft/pull/2318)
* **\[Consensus]** Txpool 优化
  * 添加可配置限制,移除 pending 池,重构最后提交状态跟踪
  * 参考:[monad-bft PR #2487](https://github.com/category-labs/monad-bft/pull/2487),
    [monad-bft PR #2363](https://github.com/category-labs/monad-bft/pull/2363),
    [monad-bft PR #2475](https://github.com/category-labs/monad-bft/pull/2475)
* **\[Archive]** 将 indexer 回读移至异步任务
  * 参考:[monad-bft PR #2486](https://github.com/category-labs/monad-bft/pull/2486)
* **\[RPC]** 移除请求提交路径中不必要的锁
  * 参考:[monad-bft PR #2416](https://github.com/category-labs/monad-bft/pull/2416)

#### 主要内部变更

* **\[Node ops]** 本地 Monad 安装的 Docker 支持
  * 可选的 `--use-prebuilt` flag 以避免编译
  * 参考:[monad-bft PR #2456](https://github.com/category-labs/monad-bft/pull/2456),
    [monad-bft PR #2489](https://github.com/category-labs/monad-bft/pull/2489)
* **\[Node ops]** ledger-tail:新的 CLI 配置选项
  * 支持 ledger、forkpoint、节点配置和验证者文件的自定义路径
  * 修复默认的 `validators.toml` 路径
  * 参考:[monad-bft PR #2439](https://github.com/category-labs/monad-bft/pull/2439)
* **\[Node ops]** wal2json:带时间戳过滤的多文件支持
  * 跨多个文件的快速时间戳查找/过滤(例如,`wal2json -a"3:30pm EDT" -b"4:00pm EDT" wal*`)
  * 通过并行处理和减少锁改进性能
  * 参考:[monad-bft PR #2496](https://github.com/category-labs/monad-bft/pull/2496),
    [monad-bft PR #2493](https://github.com/category-labs/monad-bft/pull/2493)

## v0.11.6-tn1

引入 Revision [`MONAD_FIVE`](/zh/developer-essentials/changelog#revisions) 和 [`MONAD_SIX`](/zh/developer-essentials/changelog#revisions)。重新定义 Revision [`MONAD_NEXT`](/zh/developer-essentials/changelog#revisions)。

| 网络                                            | 发布日期       | 备注                                              |
| --------------------------------------------- | ---------- | ----------------------------------------------- |
| [`testnet`](/zh/developer-essentials/testnet) | 2025-10-31 | Revision 在 2025-10-31 13:30 GMT 设置为 `MONAD_SIX` |
| `devnet`                                      | 2025-10-30 | Devnet 已随本次发布重置,revision 设置为 `MONAD_NEXT`       |

`testnet` 部署的标签或哈希(无协议差异):

* `monad-bft`: [tag `v0.11.6-tn1`](https://github.com/category-labs/monad-bft/releases/tag/v0.11.6-tn1)
* `monad`: [tag `v0.11.6-tn1`](https://github.com/category-labs/monad/releases/tag/v0.11.6-tn1)

#### 主要协议变更 - `MONAD_NEXT`

* **\[EVM/Network params]** [操作码重新定价](/zh/developer-essentials/opcode-pricing)
  * 参考:[monad PR #1600](https://github.com/category-labs/monad/pull/1600)(涵盖大部分
    重新定价)以及 [monad PR #1700](https://github.com/category-labs/monad/pull/1700)(针对
    通过 `SSTORE` 删除存储 slot
  * 提高 `CREATE` 和 `CREATE2` 的成本
  * 注意,相对于 `v0.11.3`,这减少了 `MONAD_NEXT` 上的操作码定价集合。

#### 主要协议变更 - `MONAD_SIX`

* **\[EVM]** EIP-2935 bug 修复
  * 参考:[monad PR #1846](https://github.com/category-labs/monad/pull/1846)

#### 主要协议变更 - `MONAD_FIVE`

* **\[Consensus/EVM]** \[Staking] 将 `ACTIVE_VALIDATOR_STAKE` 从 25,000,000 MON 降低到 **10,000,000 MON**
  * 参考:[monad PR #1810](https://github.com/category-labs/monad/pull/1810)
* **\[EVM]** \[Staking] 添加 `getProposerValId()` 方法,返回最近区块 proposer 的 `val_id`
  * 参考:[monad PR #1815](https://github.com/category-labs/monad/pull/1815)

#### 主要 RPC/SDK 变更

* **\[RPC]** 修复区块号查询中的竞态条件
  * 在 ChainState 中返回 triedb 区块号,以防止当 `eth_getBlockNumber` 返回在 triedb 中尚不可用的区块时出错
  * 修复了钱包工作流中常见的问题:连续调用 `eth_getBlockNumber` 和 `eth_getBalance`
  * 参考:[monad-bft PR #2393](https://github.com/category-labs/monad-bft/pull/2393)
* **\[SDK]** 为执行事件添加 call frame 记录
  * 参考:[monad PR #1541](https://github.com/category-labs/monad/pull/1541)
  * 除非在执行时传入 `--trace_calls` 命令行参数,否则不会记录这些信息
* **\[RPC]** 添加 `monad_eth_call_executor_get_state()` API,以便更好地观察 `eth_call` 请求
  * 参考:[monad PR #1764](https://github.com/category-labs/monad/pull/1764)
  * 返回当前正在执行/排队的请求数量,以及错误计数

#### 主要健壮性变更

* **\[Consensus]** 确定性的 timeout certificate 打破平局机制
  * 当 TC 包含多个具有相同 round 的 tip 时,按 tip.qc 进行平局打破以保持一致性
  * 参考:[monad-bft PR #2460](https://github.com/category-labs/monad-bft/pull/2460)
* **\[Consensus]** 交易 nonce 溢出验证
  * 参考:[monad-bft PR #2388](https://github.com/category-labs/monad-bft/pull/2388)
* **\[Consensus]** 在区块 proposer 和 validator 之间对 `EpochChange` 进行更一致的检查
  * 这解决了在 `testnet-2` 中观察到的链停机问题
  * 参考:[monad-bft PR #2494](https://github.com/category-labs/monad-bft/pull/2494)

#### 主要性能变更

* **\[EVM]** 在 StateDelta map 中使用 komihash
  * 参考:[monad PR #1786](https://github.com/category-labs/monad/pull/1786)
* **\[EVM]** JIT 编译器:仅为包含间接跳转的合约生成 jump table
  * 参考:[monad PR #1749](https://github.com/category-labs/monad/pull/1749)
* **\[RPC]** 使用原子序列号改善 eth call 并发性
  * 参考:[monad PR #1759](https://github.com/category-labs/monad/pull/1759)

#### 主要内部变更

* **\[Node ops]** Fuzzer 重构(新增 `--focus` flag)
  * 参考:[monad PR #1744](https://github.com/category-labs/monad/pull/1744)
* **\[Node ops]** 构建带有 debug symbol 的镜像
  * 参考:[monad-bft PR #2459](https://github.com/category-labs/monad-bft/pull/2459)

## v0.11.3-tn1

引入 Revision [`MONAD_FOUR`](/zh/developer-essentials/changelog#revisions) 和 [`MONAD_NEXT`](/zh/developer-essentials/changelog#revisions)。

| 网络                                            | 发布日期       | 备注                                               |
| --------------------------------------------- | ---------- | ------------------------------------------------ |
| [`testnet`](/zh/developer-essentials/testnet) | 2025-10-13 | Revision 在 2025-10-14 13:30 GMT 设置为 `MONAD_FOUR` |
| `devnet`                                      | 2025-10-08 | 升级时 revision 设置为 `MONAD_NEXT`                    |

`testnet` 部署的标签或哈希(无协议差异):

* `monad-bft`: [tag `v0.11.3-tn1`](https://github.com/category-labs/monad-bft/releases/tag/v0.11.3-tn1)
* `monad`: [hash `3e17265`](https://github.com/category-labs/monad/tree/3e17265fae80710229c657d725d821053cec940b)

#### 主要协议变更 - `MONAD_NEXT`

* **\[EVM/Network params]** [操作码重新定价](/zh/developer-essentials/opcode-pricing))
  * 参考:[monad PR #1600](https://github.com/category-labs/monad/pull/1600)(涵盖大部分
    重新定价)以及 [monad PR #1700](https://github.com/category-labs/monad/pull/1700)(针对
    `CREATE`/`CREATE2` 重新定价)
  * 按照
    [Monad Initial Spec Proposal](https://forum.monad.xyz/t/monad-initial-specification-proposal/195)
    中的讨论对操作码重新定价
  * 提高冷存储访问成本
  * Precompile:使少数定价过低的 precompile gas 成本更好地与相关
    硬件/延迟成本对齐
  * 注意:本次发布还包含 MISP v1.0.2 中的一些操作码重新定价,后来这些被移除:
  * 提高通过 `SSTORE` 创建存储 slot 的成本,并提高通过 `SSTORE` 删除存储 slot
    时返还的 gas 百分比
  * 提高 `CREATE` 和 `CREATE2` 的成本
* **\[EVM]** 在执行 delegated code 时禁用 CREATE 和 CREATE2
  * 参考:[monad PR #1601](https://github.com/category-labs/monad/pull/1601)

#### 主要协议变更 - `MONAD_FOUR`

* **\[Consensus/EVM]** [Staking](/zh/monad-arch/consensus/staking) 上线
  * (涉及多个 PR;参见
    [staking](https://github.com/category-labs/monad/tree/main/category/execution/monad/staking))
  * 活跃验证者集合现在由 staking precompile 的链上状态决定
  * 从指定的 `staking_activation` epoch 开始生效
  * 注意:staking 奖励要到 `staking_rewards_activation` epoch 才会激活
    (未来的某个时间点)
  * External rewards - 允许向验证者池进行外部(非区块奖励)存款,参见
    [monad PR #1625](https://github.com/category-labs/monad/pull/1625)
  * 还在 [monad PR #1742](https://github.com/category-labs/monad/pull/1742) 中为 staking precompile 增加了额外事件
  * 新增 `ValidatorRewarded`、`EpochChanged`、`ClaimRewards` 事件
* **\[Consensus/EVM]** [Reserve balance](/zh/developer-essentials/reserve-balance) 逻辑上线
  * 参考:[monad-bft PR #2160](https://github.com/category-labs/monad-bft/pull/2160) 和
    [monad PR #1537](https://github.com/category-labs/monad/pull/1537)
  * 由于异步执行,共识层在交易打包逻辑中没有最新状态可用。Reserve balance 是一个缓冲区,
    使账户的账务计算更简单,以降低在该延迟窗口内超额消费的可能性。
  * 每个 EOA 的 reserve balance 设为 `10 MON`
* **\[Consensus/EVM]** [EIP-7702](/zh/developer-essentials/eip-7702) 上线
  * 参考:[monad-bft PR #2160](https://github.com/category-labs/monad-bft/pull/2160)、[monad-bft PR #2218](https://github.com/category-labs/monad-bft/pull/2218) 和
    [monad PR #1362](https://github.com/category-labs/monad/pull/1362)
* **\[Network params]** 设置每笔交易的 gas 上限为 30M gas
  * 参考:[monad-bft PR #2246](https://github.com/category-labs/monad-bft/pull/2246)
  * 按照
    [Monad Initial Spec Proposal](https://forum.monad.xyz/t/monad-initial-specification-proposal/195)
    中的讨论
* **\[Network params]** 将区块 gas 上限从 150M gas (375 Mgas/s) 提高到 **200M** gas
  (500 Mgas/s)
  * 参考:[monad-bft PR #2266](https://github.com/category-labs/monad-bft/pull/2266)
* **\[Network params]** 实现[动态 base fee](/zh/developer-essentials/gas-pricing)
  * 参考:[monad-bft PR #2207](https://github.com/category-labs/monad-bft/pull/2207)
  * 按照
    [Monad Initial Spec Proposal](https://forum.monad.xyz/t/monad-initial-specification-proposal/195)
    中的规范
  * 目标 gas 为区块的 80%
  * 将最低 base fee 从 50 MON-gwei 提高到 **100 MON-gwei**
* **\[EVM]** 启用 [EIP-2935](https://eips.ethereum.org/EIPS/eip-2935) + blockhash
  buffer
  * 参考:[monad PR #1520](https://github.com/category-labs/monad/pull/1520)
* **\[EVM]** 启用 [EIP-7951](https://eips.ethereum.org/EIPS/eip-7951)(P256VERIFY
  precompile 支持)
  * 参考:[monad PR #1518](https://github.com/category-labs/monad/pull/1518)
* **\[EVM]** 启用 [EIP-2537](https://eips.ethereum.org/EIPS/eip-2537)(BLS12-381 precompile)
  * 参考:[monad-bft PR #1342](https://github.com/category-labs/monad/pull/1342) 和 [monad-bft PR #1350](https://github.com/category-labs/monad/pull/1350)
* **\[EVM]** 将 `CREATE`/`CREATE2` 的最大合约大小提升到 128 kb
  * 参考:[monad PR #1440](https://github.com/category-labs/monad/pull/1440)
  * 这使 `CREATE`/`CREATE2` 与顶层合约创建交易保持一致,后者的上限已在 `MONAD_TWO`
    中提升。
  * 此前由于一个 bug,它们无意中被限制为以太坊的最大 initcode 大小(49.152 kb)

#### 主要 RPC/SDK 变更

* **\[SDK]** 新增对[执行事件(Execution Events)](/zh/execution-events) 的支持
* **\[RPC]** 通过 `debug_traceCall` 扩展 `eth_call` 对 preStateTracer 和 stateDiffTracer 的支持
  * 参考:[monad-bft PR #2275](https://github.com/category-labs/monad-bft/pull/2275) 和
    [monad PR #1471](https://github.com/category-labs/monad/pull/1471)
* **\[RPC]** 在 `callTracer` 中支持 `withLog` 参数
  * 参考:[monad-bft PR #2400](https://github.com/category-labs/monad-bft/pull/2400)
  * 当 `withLog` 设为 true 时,`callTracer` 在 trace 输出中包含事件日志

#### 主要性能变更

* **\[EVM]** 数据库读写的内核缓存
  * 参考:[monad PR #1559](https://github.com/category-labs/monad/pull/1559)
  * 利用可用的主机内存缓存近期的 DB 操作 —— 该缓存
    可提升执行和 RPC 的性能
* **\[RPC]** 改进 RPC Db Node Cache 并对其进行内存限制
  * 参考:[monad PR #1581](https://github.com/category-labs/monad/pull/1581)
  * 注意 RPC CLI flag 的重命名:`--eth-call-executor-node-lru-size` 改为
    `--eth-call-executor-node-lru-max-mem`,同时新增 flag `--triedb-node-lru-max-mem`,
    两者默认均为 100MB。

#### 主要内部变更

* **\[Node ops]** 移除 `bft-fullnode` 二进制;现在只有 `bft` 二进制
  * 参考:[monad-bft PR #2072](https://github.com/category-labs/monad-bft/pull/2072)
  * 在 `v0.11` 中已从 `deb` 包中移除 `bft-fullnode`
* **\[Node ops]** PeerDiscovery:引入对 peer self name 地址的预检查
* **\[Consensus]** Blocksync:仅从已连接的节点中选择 blocksync peer
  * 参考:[monad-bft PR #2401](https://github.com/category-labs/monad-bft/pull/2401)
* **\[Consensus]** Raptorcast:对解码状态缓存的 DoS 防护
  * 参考:[monad-bft PR #2092](https://github.com/category-labs/monad-bft/pull/2092)
* **\[Node ops]** Secondary raptorcast 配置变更
  * 参考:[monad-bft PR #2378](https://github.com/category-labs/monad-bft/pull/2378)
  * 用 `enable_publisher` 和 `enable_client` 替代含义模糊的 secondary raptorcast `mode` 参数
* **\[Node ops]** 动态重新加载优先 full node
  * 参考:[monad-bft PR #2364](https://github.com/category-labs/monad-bft/pull/2364)
* **\[Node ops]** 修复 wal2json
  * 参考:[monad-bft PR #2404](https://github.com/category-labs/monad-bft/pull/2404)
* **\[Node ops/RPC]** 支持 RPC CLI 参数 `ws-sub-per-conn-limit`
  * 参考:[monad-bft PR #2161](https://github.com/category-labs/monad-bft/pull/2161)
  * 设置每个连接的最大 websocket 订阅数(默认 100)
* **\[Node ops/RPC]** 为高 eth-call 池添加配置选项
  * 参考:[monad-bft PR #2387](https://github.com/category-labs/monad-bft/pull/2387)

## v0.11.1

注意:`v0.11.1` 是仅在 `testnet-2`(一个于 2025-10-27 弃用的临时网络)上部署的版本,部署时间约为 2025-09-16 至 2025-10-08;然而,它将某些特性以不同方式映射到 revision `MONAD_FOUR`,这些映射不再保留在代码库中。`testnet-2` 在部署 `v0.11.3` 之前已重置。

在所有实际意义上,可以忽略此版本。本变更日志将 `v0.11.3` 与 `v0.10.4` 进行比较。

标签或哈希:

* `monad-bft`: [tag `v0.11.1`](https://github.com/category-labs/monad-bft/releases/tag/v0.11.1)
* `monad`: [hash `7746980`](https://github.com/category-labs/monad/tree/7746980c45b82f812bd8c4d39f4b0a1232ae16de)

## v0.10.4

| 网络                                            | 部署日期       | 备注                        |
| --------------------------------------------- | ---------- | ------------------------- |
| [`testnet`](/zh/developer-essentials/testnet) | 2025-08-18 | Revision 仍为 `MONAD_THREE` |

标签或哈希:

* `monad-bft`: [tag `v0.10.4`](https://github.com/category-labs/monad-bft/releases/tag/v0.10.4)
* `monad`: hash `39c42e6`

#### 主要 RPC/SDK 变更

* **\[RPC]** 移除 RPC 响应中与 EIP-4844 相关的字段。
  * RPC 返回的区块 header 将不再包含 `blobGasUsed`、`excessBlobGas` 和
    `parentBeaconBlockRoot`。

#### 主要性能变更

* **\[Consensus]** Vote 现在发送给当前 round 的 leader。这是一项共识优化,
  可减少 round 超时导致的有效延迟
  * 参考:[monad-bft PR #2093](https://github.com/category-labs/monad-bft/pull/2093)
* **\[Consensus]** 缓存最近已验证的 quorum certificate
  * 参考:[monad-bft PR #2167](https://github.com/category-labs/monad-bft/pull/2167)
* **\[Node ops]** trace call 的启用现在通过 `monad`(execution)命令行参数
  `--trace_calls` 控制。
  * 为保留旧行为,`--trace_calls` 目前在 debian 包中默认启用。将来
    我们建议为验证者禁用,为 RPC 与 archive 节点启用。
  * 这使投票验证者可以选择不计算 trace,因为它们仅在 RPC
    节点上需要。

#### 主要内部变更

* **\[Consensus]** 将 TC 转发给优先和公开(非 dedicated)full node
  * 参考:[monad-bft PR #2149](https://github.com/category-labs/monad-bft/pull/2149)
  * 在 `v0.10.4` 之前,所有 full node 在超时时都会落后于验证者,
    因为由 TC 导致的 round 推进没有被转发(现在对 dedicated full node 仍然如此)。
  * 因此,在超时后,full node 常常会基于过时状态将交易转发给
    接下来的三个 leader。这会导致这些交易经常错过打包,后续区块也
    相对为空。
* **\[Node ops]** 修复影响 Publisher 模式验证者的 secondary raptorcast(round gap crash)bug
  * 参考:[monad-bft PR #2090](https://github.com/category-labs/monad-bft/pull/2090)
* **\[Node ops]** `ledger-tail` 改进
  * 参考:[monad-bft PR #2144](https://github.com/category-labs/monad-bft/pull/2144)
  - 减少启动时的内存占用
  - `author_dns` 字段更名为 `author_address`,以反映 v10 地址的变更
  - 跟踪并记录超时和 finalization
* **\[Consensus]** Txpool 账户预加载 bug 修复
  * 参考:[monad-bft PR #2108](https://github.com/category-labs/monad-bft/pull/2108)

## v0.10.3

引入 [`MONAD_THREE`](/zh/developer-essentials/changelog#revisions) revision。

| 网络                                            | 部署日期       | 备注                             |
| --------------------------------------------- | ---------- | ------------------------------ |
| [`testnet`](/zh/developer-essentials/testnet) | 2025-08-12 | 升级时 revision 设置为 `MONAD_THREE` |

#### 主要协议变更 - `MONAD_THREE`

* **\[Consensus]** 共识机制从 [Fast-HotStuff](https://arxiv.org/abs/2010.11454)
  升级到 [MonadBFT](/zh/monad-arch/consensus/monad-bft)
  * 这是一次重大升级,新增了
    *(i)* [对 tail forking 的弹性](/zh/monad-arch/consensus/monad-bft#no-tail-forking) 以及
    *(ii)* [1-slot 推测性 finality](/zh/monad-arch/consensus/monad-bft#speculative-finality)
* **\[Network params]** 区块时间从 500 ms 减少到 **400 ms**

#### 主要 RPC/SDK 变更

* **\[RPC]** 通过 [WebSocket](/zh/reference/json-rpc/overview) 和共享内存队列访问,新增对
  [实时数据](/zh/monad-arch/realtime-data)的支持(文档即将发布):
  * Geth 实时事件(通过 WebSocket)
  * 带 Monad 扩展的 Geth 实时事件(通过 WebSocket)
  * 通过共享内存队列的实时数据,供 full node 主机上使用执行事件 SDK 的程序使用

#### 主要性能变更

* **\[Execution]** 切换到 JIT EVM。昂贵或频繁执行的合约字节码会
  直接编译为本机代码以加快执行速度
* **\[Execution]** 切换到使用基于文件指针的 IPC 来执行区块。此前客户端
  使用 write-ahead log (WAL),没有利用可用的共识信息,可能导致本可避免的执行

#### 主要内部变更

* **\[Node ops]** 新增 peer discovery
* **\[Node ops]** 新增 full node [RaptorCast](/zh/monad-arch/consensus/raptorcast),使 full
  node 网络具备可扩展性

## v0.9.3

| 网络                                            | 部署日期       | 备注                      |
| --------------------------------------------- | ---------- | ----------------------- |
| [`testnet`](/zh/developer-essentials/testnet) | 2025-05-29 | Revision 仍为 `MONAD_TWO` |

#### 主要 RPC/SDK 变更

* **\[RPC]** `eth_call` 和 `eth_estimateGas` 上限
  * RPC 提供方现在可以为 `eth_call` 和 `eth_estimateGas` 设置每笔交易的独立
    最大 gas 上限
    * 此前该上限始终为区块 gas 上限(150M),现在 RPC 提供方可自行
      选择(默认:30M)
    * 通过 `--eth-call-provider-gas-limit` 和 `--eth-estimate-gas-provider-gas-limit` 控制
  * 为执行 `eth_call` 和 `eth_estimateGas` 时的排队添加最大超时时间
    * 通过 `--eth_call_executor_queuing_timeout` 控制

#### 主要性能变更

* **\[RPC]** 通过为轻量与昂贵的 `eth_call` 操作维护独立的队列,提升整体 `eth_call` 性能,
  从而使轻量的 `eth_call` 操作不必排在昂贵操作之后。
  * 这引入了两个新的 RPC 错误字符串:
    * `failure to submit eth_call to thread pool: queue size exceeded`
    * `failure to execute eth_call: queuing time exceeded timeout threshold`
* **\[RPC]** 为 `eth_getLogs` 添加 archive 索引,以支持带地址和/或 topic 过滤的
  查询
  * 这使得可以高效查询更大的区块范围,工作量与匹配日志数成正比,
    而不是与区间内的区块数成正比
* **\[Execution]** 更好地限定 TrieDB 遍历范围

#### 主要内部变更

* **\[Node ops]** 针对缓慢 statesync 客户端 upsert 的性能改进
* **\[Node ops]** 修复由过早软重置导致的执行延迟和 history 长度骤降 bug
* **\[Node ops]** `keystore` 使用体验改进
  * 支持从十六进制字符串格式的私钥导入(此前需要先转换为
    json 文件)
  * 通过 `--help` 命令提供更完善的文档

## testnet-1 活跃集合扩展

2025-05-02,`testnet-1` 经历了一次活跃集合扩展

#### 主要内部变更

* **\[Network params]** 测试网验证者集合从 72 个节点扩展到 **99** 个节点

## v0.9.2

| 网络                                            | 部署日期       | 备注                      |
| --------------------------------------------- | ---------- | ----------------------- |
| [`testnet`](/zh/developer-essentials/testnet) | 2025-04-05 | Revision 仍为 `MONAD_TWO` |

#### 主要性能变更

* **\[RPC]** 更新 `eth_call` 执行实现 —— 使用更少的线程达到与 `v0.9.1` 相同的
  并发度

#### 主要内部变更

* **\[Node ops]** 支持更快的 [statesync](/zh/monad-arch/consensus/statesync) 机制
* **\[RPC]** 节点进行 statesync 时,RPC 不再接受请求
* **\[Node ops]** 对节点间 statesync 流量传输方式的一些可靠性和效率改进
* **\[Node ops]** 修复执行崩溃 bug(`monad::mpt::deserialize_node_from_buffer`、
  `'Resource temporarily unavailable`)

- **\[Node ops]** 修复导致节点 OOM 失败的无界 blocksync 请求 bug
- **\[Node ops]** 移除启动时的 DNS 解析 panic

## v0.9.1

| 网络                                            | 部署日期       | 备注                       |
| --------------------------------------------- | ---------- | ------------------------ |
| [`testnet`](/zh/developer-essentials/testnet) | 2025-03-24 | Revision 设置为 `MONAD_TWO` |

#### 主要内部变更

* **\[Node ops]** 修复 blocksync 错误
* **\[Node ops]** statesync 的可靠性和效率改进

## v0.9.0

引入 Revision [`MONAD_TWO`](/zh/developer-essentials/changelog#revisions)。

| 网络                                            | 部署日期       | 备注                                              |
| --------------------------------------------- | ---------- | ----------------------------------------------- |
| [`testnet`](/zh/developer-essentials/testnet) | 2025-03-14 | Revision 在 2025-03-14 19:00 GMT 设置为 `MONAD_TWO` |

#### 主要协议变更 - `MONAD_TWO`

* **\[EVM]** 最大合约大小从 24kb 提升到 **128kb**

#### 主要 RPC/SDK 变更

* **\[RPC]** `debug_traceTransaction` 修复
  * 修复了在一笔交易中只 trace 前 100 次调用的 bug
  * 在响应数据中新增 `error` 和 `revertReason` 字段

#### 主要性能变更

* **\[Consensus]** Dataplane v2 —— 更简单、更高效的实现;广播时间有小幅
  性能提升
* **\[RPC]** 对 `eth_call` 的 RPC 性能改进

- **\[RPC]** 移除对通过 RPC 收到的原始交易的冗余 sender\_recovery 操作

#### 主要内部变更

* **\[Node ops]** Statesync 改进,以减轻对上游验证者节点的负面性能影响

- **\[RPC]** 在 RPC 交易验证中新增 EIP-2 签名校验
- **\[Node ops]** 各项 tracing、logging 和 metrics 补充
- **\[Consensus]** 在处理无效 symbol 时的 RaptorCast 性能改进

## v0.8.1

引入 Revision [`MONAD_ONE`](/zh/developer-essentials/changelog#revisions)。

| 网络                                            | 部署日期       | 备注                                              |
| --------------------------------------------- | ---------- | ----------------------------------------------- |
| [`testnet`](/zh/developer-essentials/testnet) | 2025-02-14 | Revision 在 2025-02-14 19:00 GMT 设置为 `MONAD_ONE` |

#### 主要协议变更 - `MONAD_ONE`

* **\[Network params]** 区块时间从 1s 减少到 **500 ms**

* **\[Network params]** 区块 gas 上限从 300M 降低到 **150M**(以保持 gas 限制一致)

* **\[EVM]** 交易按 gas limit [收费](/zh/developer-essentials/gas-pricing),
  而不是按实际消耗的 gas 收费

#### 主要 RPC/SDK 变更

* **\[RPC]** [交易状态](/zh/monad-arch/transaction-lifecycle)的用户体验改进。RPC
  节点会跟踪提交到其上的交易状态,以便向用户提供更新。
