github category-labs/monad-bft v0.14.3

6 hours ago

v0.14.3

Tags or hashes:

Highlights

  • Authenticated UDP enforcement — Raptorcast now requires wire-authenticated UDP sockets (previously optional, now enforced)

Notable robustness changes

  • [Execution] Fix DbCache assert-fail when reading finalized state older than latest finalized block
    • Ref: monad (execution) PR #2190
    • Replaces assertion with explicit checks; fixes incorrect truncated value propagation when walking the chain back past the latest finalized block
  • [Execution] Raise MIN_HISTORY_LENGTH floor 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-as PushLabel encoding at offset zero for pre-Shanghai targets

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 TransactionReceipt when serving log queries; goes directly from (TxEnvelope, Receipt) to ReceiptEnvelope, reducing overhead on eth_getLogs and 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
  • [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

Don't miss a new monad-bft release

NewReleases is sending notifications on new releases.