Please do not proceed until Monad Foundation provides notice.
Instructions for node operators
1. SSH into the node as monad user
2. Upgrade monad package
sudo apt update && sudo apt install --reinstall monad=0.12.3 -y --allow-downgrades --allow-change-held-packages
sudo apt update && sudo apt install --reinstall monad=0.12.3~rc.2 -y --allow-downgrades --allow-change-held-packages
3. Restart the services and verify
sudo systemctl restart 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)
4. Verify the correct version is running
Expected output:
monad-rpc {"commit":"6323f3fcaf067c18884e3ffe72a22fb1a8d0216a","tag":"v0.12.3","branch":"","modified":true}
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