⚠️ 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.
monad (execution) v0.15.0 Changelog
Tag: v0.15.0
Commit: 817a09f64
Highlights
- One-time DB metadata migration required (
monad-mpt --upgrade) — bumps DB schema MONAD007 → MONAD008, initializing secondary timeline metadata for upcoming dual-timeline support
Robustness fixes
- Convert user-facing
MONAD_ASSERTtoMONAD_ASSERT_THROW— prevents panics on malformed RPC input - Enforce staking syscall ordering — validation now rejects staking syscalls submitted out of order
- Fix event payload overflow check — rounds up size before alignment check to prevent assertion failure on large payloads
- 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 - 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
Internal changes
- Dual-timeline: add secondary timeline metadata and
monad-mpt --upgradeDB migration tool - MPT memory-ordering fix: route
version_lower_bound_reads through acquire accessor to fix data race on reader path - Fix missing cast from
monad_eth_revisiontoevmc_revision - Add
--disable-sq-thread-cpuflag tocmd/monad - Remove support for Petersburg and Constantinople forks (Ethereum replay only)
monad-mptstatus output format changed — the line previously showingMPT database has N history, earliest is X latest is Ynow readsMPT database has been configured to retain no more than Z versions., with block height on theLatest finalized is <block>line.monad-statushas been updated; operators using custom scripts parsingmonad-mptoutput should update to readLatest finalized isinstead of the oldlatest ispattern.
Full Changelog: v0.14.7...v0.15.0