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-rpc3. Upgrade monad package
- Testnet
- Mainnet
sudo apt update && sudo apt install --reinstall monad=0.12.3~rc.2 -y --allow-downgrades --allow-change-held-packagesComing soon.
4. Start the services and verify
sudo systemctl start monad-bft monad-execution monad-rpcsudo systemctl status monad-bft monad-execution monad-rpc --no-pager -lExpected output: All services should show Active: active (running)
5. Verify the correct version is running
monad-rpc --versionExpected output:
- Testnet
- Mainnet
monad-rpc {"commit":"6323f3fcaf067c18884e3ffe72a22fb1a8d0216a","tag":"","branch":"","modified":true}Coming soon.
Patch notes
Please refer to the public changelog for v0.12.3.
Important updates for node operators
- [Node ops] Add
--root-offsets-chunk-countflag tomonad-mptto 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- Ref: monad-bft PR #2542
- [Node ops / Archive] Archive infrastructure improvements
- Refactor
monad-block-writerfor improved reliability with--max-blocks-per-iterconfiguration - Async backfill with traces-only archive support
- Add
require-tracesarchiver flag and indexer fallback source - Support for historical execution event archiving with generic directory archiving
- Potentially breaking: Remove
--start-blockfrommonad-archiversystemd 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-backfillflag to set the async-backfill marker instead of primary marker
- Example:
- 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
- Refactor
- [Node ops] Networking configuration updates
- Use default MTU 1500
- Add HDR histogram for broadcast latency tracking in
monad-executorandmonad-raptorcast - Ref: monad-bft PR #2576, monad-bft PR #2602
- [Consensus] Opt-in Wire authentication protocol for UDP
- Node operator instructions to be provided in the future
- Includes replay window adjustments for improved reliability
- Ref: monad-bft PR #2417, monad-bft PR #2544, monad-bft PR #2626, monad-bft PR #2091