github category-labs/monad-bft v0.16.5

5 hours ago

⚠️ 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.

Tags or hashes:

Highlights

  • --triedb-path must name the triedb device, not a directory containing it. Packaged installs already pass /dev/triedb and need no change; custom deployments should check before upgrading. See the upgrade instructions.
  • monad-mpt --grow uses the space added when the triedb device is extended in place, so archive nodes running out of disk no longer need a full --archive and --restore onto a new device. See the upgrade instructions for the required order.
  • Triedb update and compaction counters are exported as Prometheus gauges on packaged installs.
  • eth_simulateV1 enforces a maximum response size, and an empty full state override now matches Geth.

Notable RPC/SDK changes

Notable robustness changes

  • [EVM] Hardened RLP decoding of EIP-2718 transactions and EIP-4844 blob hash lists, and fixed list-prefix encoding writing past its size.
  • [EVM] Hardened the offset trie decoder: the constructor validates that the data forms a tree, path length is bounded at MAX_PATH_NIBBLES, and an out-of-bounds read in checked_end is fixed. Not reachable in production: the offset trie is used only by execution-witness decoding, which has no caller in node execution today.
  • [Node ops] The execution event recorder no longer passes a null buffer to mempcpy when --record-exec-events is on.
  • [RPC] The triedb range query now validates its prefix key length, closing an over-read of the caller's buffer.
  • [Node ops] Fixed two shutdown races: fiber pool threads could free their scheduler while another thread was still waking them, and the VM compile thread's lock was released from the wrong thread.

Notable performance changes

Notable internal changes

  • [Node ops] monad-mpt --grow takes up the space after the triedb device is extended in place with lvextend or a grown RAID array. It runs offline in seconds, moves no data, and can be re-run if interrupted. The node must run once on this release before the device is extended; a device extended earlier is refused.
  • [Node ops] monad-node exports seven triedb update/compaction gauges read from a statistics file written by execution. The packaged units set --db-stats-file and --triedb-stats-path to the same path; both are off by default.
  • [EVM] The bn128 precompiles (ecAdd, ecMul, ecPairing) are vendored in-tree with unchanged semantics, and ecrecover shares one implementation with transaction sender recovery.
  • [EVM] MIP-8 page-storage accounting is routed through the EVMC host interface. No behaviour change.
  • Upgraded h2, rustls and related TLS dependencies.

Full Changelog: v0.16.4...v0.16.5

Don't miss a new monad-bft release

NewReleases is sending notifications on new releases.