⚠️ Do not upgrade your mainnet or testnet node until you receive an official announcement.
Upgrades are communicated via official channels. See upgrade instructions for details.
v0.15.0
Tags or hashes:
monad-bft(consensus): tagv0.15.0(8facc4fae)monad(execution): tagv0.15.0(817a09f64)
Highlights
- MIP-12: Vote pace + block reward activation — updated vote pacing and block reward activation schedule
- One-time DB metadata migration required (
monad-mpt --upgrade) — bumps DB schema MONAD007 → MONAD008, initializing secondary timeline metadata for upcoming dual-timeline support - RPC batch concurrency limit — new server-side cap on concurrent batch requests to prevent resource exhaustion
eth_simulateV1gated behind CLI flag — disabled by default; enable with--enable-eth-simulate-v1- Raptorcast starvation fix — networking message starvation in raptorcast resolved
Notable consensus/protocol changes (→ MINOR)
- [Consensus] MIP-12: Update vote pace and block reward activation
- Ref: monad-bft PR #3120
Notable RPC/SDK changes
- [RPC] Add batch concurrent limit — server-side cap on concurrent RPC batch requests
- Ref: monad-bft PR #3128
- [RPC] Remove decompression support from RPC — compressed request bodies no longer accepted
- Ref: monad-bft PR #3032
- [RPC] Gate
eth_simulateV1behind--enable-eth-simulate-v1CLI flag (default: off) — returns "Method not supported" unless flag is set- Ref: monad-bft PR #3149
Notable robustness changes
- [Consensus] Fix networking message starvation in raptorcast
- Ref: monad-bft PR #3137
- [Execution] Convert user-facing
MONAD_ASSERTtoMONAD_ASSERT_THROW— prevents panics on malformed RPC input - [Execution] Enforce staking syscall ordering — validation now rejects staking syscalls submitted out of order
- [Execution] Fix event payload overflow check — rounds up size before alignment check to prevent assertion failure on large payloads
- [Execution] Fix MONAD007→MONAD008 migration data corruption on nodes with ≥15.8 TB disk — prevents db_offsets overrun and root-offsets ring bound violation during
monad-mpt --upgrade - [Execution] Fix
monad-mpt --upgradecrash on legacy databases — fixes integer underflow causingAssertion 'r != MAP_FAILED'on nodes with databases created beforenum_cnv_chunkswas added to the storage pool footer
Notable internal changes
- [Consensus] Raptorcast: Proposer validation per round — raptorcast now owns a
ProposerScheduletype for per-round proposer validation, decoupled from MonadState- Ref: monad-bft PR #3114
- [Execution] Dual-timeline: add secondary timeline metadata and
monad-mpt --upgradeDB migration tool - [Execution] MPT memory-ordering fix: route
version_lower_bound_reads through acquire accessor to fix data race on reader path - [Execution] Fix missing cast from
monad_eth_revisiontoevmc_revision - [Execution] Add
--disable-sq-thread-cpuflag tocmd/monad - [Execution] Remove support for Petersburg and Constantinople forks (Ethereum replay only)
Full Changelog: v0.14.7...v0.15.0