Skip to main content

v0.12.3

warning

Please do not proceed until Monad Foundation provides notice.

Instructions for node operators

1. SSH into the node as monad user

2. Stop the services

sudo systemctl stop monad-bft monad-execution monad-rpc

3. Upgrade monad package

sudo apt update && sudo apt install --reinstall monad=0.12.3~rc.2 -y --allow-downgrades --allow-change-held-packages

4. Start the services and verify

sudo systemctl start monad-bft monad-execution monad-rpc
sudo systemctl status monad-bft monad-execution monad-rpc --no-pager -l

Expected output: All services should show Active: active (running)

5. Verify the correct version is running

monad-rpc --version

Expected output:

monad-rpc {"commit":"6323f3fcaf067c18884e3ffe72a22fb1a8d0216a","tag":"","branch":"","modified":true}

Patch notes

Please refer to the public changelog for v0.12.3.

Important updates for node operators

  • [Node ops] Add --root-offsets-chunk-count flag to monad-mpt to configure the number of chunks allocated for root offsets
    • Each chunk holds approximately 16.5M blocks. Previously, all nodes were hardcoded to use 2 chunks (max TrieDB capacity of ~33M blocks)
    • New default: 16 must be a power of 2
    • Note that the default value of 16 translates to approximately 268M blocks ~ 1240 days. In most cases the limiting factor is disk capacity which will auto-compact when filled to 80%
    • Ref: monad PR #1937
  • [RPC / Node ops] Allow RPC to run without monad-bft
    • Enables standalone RPC operation for improved deployment flexibility
    • Ref: monad-bft PR #2613
  • [RPC] EIP-7966 (eth_sendRawTransactionSync) support
  • [Node ops / Archive] Archive infrastructure improvements
    • Refactor monad-block-writer for improved reliability with --max-blocks-per-iter configuration
    • Async backfill with traces-only archive support
    • Add require-traces archiver flag and indexer fallback source
    • Support for historical execution event archiving with generic directory archiving
    • Potentially breaking: Remove --start-block from monad-archiver systemd service; operators must use imperative CLI to set start block
      • Example: monad-archiver set-start-block --block 1000000 --archive-sink s3://bucket-name/path
      • Use --async-backfill flag to set the async-backfill marker instead of primary marker
    • Ref: monad-bft PR #2610, monad-bft PR #2606, monad-bft PR #2598, monad-bft PR #2514, monad-bft PR #2612, monad-bft PR #2569, monad-bft PR #2623
  • [Node ops] Networking configuration updates
  • [Consensus] Opt-in Wire authentication protocol for UDP