v0.14.3
Tags or hashes:
monad-bft(consensus): tagv0.14.3(f2a2092b)monad(execution): tagv0.14.3(7fcd693f7)
Highlights
- Authenticated UDP enforcement — Raptorcast now requires wire-authenticated UDP sockets (previously optional, now enforced)
- Ref: monad-bft PR #2956
Notable robustness changes
- [Execution] Fix
DbCacheassert-fail when reading finalized state older than latest finalized block- Ref: monad (execution) PR #2190
- Replaces assertion with explicit checks; fixes incorrect
truncatedvalue propagation when walking the chain back past the latest finalized block
- [Execution] Raise
MIN_HISTORY_LENGTHfloor from 257 to 300- Ref: monad (execution) PR #2217
- Execution requires 256 history blocks for the block hash buffer; the old floor of 257 left only a one-block margin. Under disk pressure, history could shrink below 256 after a restart, forcing a full statesync. New floor gives ~44 blocks of headroom; also bumps the stored cap on existing DBs at init time so nodes carried over from an older binary aren't pinned at 257.
- [Execution] Fix
evm-asPushLabel encoding at offset zero for pre-Shanghai targets- Ref: monad (execution) PR #2213
- Fixes incorrect
PUSH0encoding in the EVM assembler for pre-Shanghai code paths
Notable performance changes
- [Execution] Extend trie span optimization to fnext, child_off, and SharedPtr arrays
- [Execution] Remove inflight read coalescing from rwdb find path
- [Execution] Elide DB fetch in
State::is_touched - [RPC] Skip redundant receipt conversion on log retrieval path
- Ref: monad-bft PR #2839
- Avoids building a full
TransactionReceiptwhen serving log queries; goes directly from(TxEnvelope, Receipt)toReceiptEnvelope, reducing overhead oneth_getLogsand related calls
Notable internal changes
- [Consensus] Peer discovery: require authenticated UDP in name records
- Ref: monad-bft PR #2955
- Enforces non-zero port policy for authenticated UDP; port 0 was used as an empty value in RLP-encoded peer entries and is now rejected
- [Consensus] Add full nodes message type and handling logic for peer reputation scoring
- Ref: monad-bft PR #2914, PR #2915
- Introduces a new message type for full nodes to send peer participation data to the publisher for reputation scoring
- [Consensus] Peer discovery: drop V1 wire name records
- Ref: monad-bft PR #2952
- Removes backward compatibility with V1 peer wire format; all peers must use V2 name records
- [Consensus] Expose block number by hash retrieval in archive
- Ref: monad-bft PR #2980
- Archive nodes now support block number lookup by block hash
- [Consensus] Raptorcast: round-robin mode for stake-proportional chunk assigner
- Ref: monad-bft PR #2970
- Adds round-robin assignment to the stake-proportional chunk assigner used in deterministic Raptorcast
- [Consensus] Raptorcast: require authenticated UDP socket
- Ref: monad-bft PR #2956
- Enforces authenticated UDP socket setup in raptorcast; previously optional
Full Changelog: v0.14.2...v0.14.3