
Monad BFT Upstream Watch - Txpool, Statesync, and Service Plumbing Moving Fast
Overview
Written on March 28, 2026. Between March 25 and March 27, the category-labs/monad-bft repository landed a cluster of operator-relevant changes across service startup wiring, authenticated UDP defaults, statesync edge-case handling, txpool executor mechanics, and RPC tooling. None of this is a formal network upgrade notice by itself, but it is exactly the kind of upstream churn that can alter node behavior and performance once operators pick up a newer build. On the service and config side, PR #2916 merged on March 27 and adds an explicit config path for the monad-ledger-tail systemd service. The same day, PR #2906 lowered per-instance monad-wireauth defaults, with the PR noting that more than one wireauth instance is expected to run and that prior defaults were higher than necessary. For node operators, that points to continued iteration around service topology and authenticated-UDP rollout assumptions.
Statesync behavior also shifted. PR #2905, merged March 25, relaxes an assertion around db_status so a stale DoneSync message arriving before a reset RequestSync does not trip the same crash path. The PR says the edge case had not been observed in practice, but a relaxed assertion still changes failure behavior, so this belongs in pre-upgrade replay and recovery testing rather than being treated as invisible plumbing.
Context
The heaviest performance-sensitive activity is in the monad-eth-txpool-executor path. PRs #2882, #2884, #2885, and #2886 landed between March 25 and March 26 and move forwarded ingress buffering and pacing into a fair-queue executor, remove batching from the forwarder, and add tests. In PR notes, authors reported better anti-starvation under 40K TPS spam and throughput improving from roughly 11K toward a configured 16K tx/s path.
RPC-facing work is moving too. PR #2910 fixes an eth_call stats-tracking memory leak, while PRs #2892 and #2911 tighten OpenRPC CI and workflow permissions. Open PRs still cover direct-UDP forwarding, raptorcast transport, and EthCallHandler gas-limit config. For BitCtrl, that makes this a canary-first smoke-test window, not a fleet-wide blind bump.
What Landed Recently
- PR
#2916adds an explicit config path for themonad-ledger-tailsystemd service. - PR
#2906lowers per-instancemonad-wireauthdefaults for multi-instance deployment assumptions. - PR
#2905relaxes a statesync assertion around a staleDoneSyncarriving before a resetRequestSync. - PRs
#2882,#2884,#2885, and#2886rework forwarded ingress fairness, batching, pacing, and test coverage inmonad-eth-txpool-executor. - PR
#2910fixes aneth_callstats tracking memory leak in RPC. - PRs
#2892and#2911rework OpenRPC documentation CI and workflow permissions.
What Still Needs Watching
- Open PR
#2900proposes sending forwarded transactions over direct UDP inmonad-state. - Open PR
#2898proposes direct UDP transport inmonad-raptorcast. - Open PR
#2926proposes movingeth_callgas-limit config intoEthCallHandler. - Additional open consensus and peer-scoring PRs suggest the networking and validation pipeline is still moving.
Operator Notes
- Treat any upstream pickup as a canary candidate first, not an unreviewed fleet-wide bump.
- Re-test systemd restart paths, especially if you run custom service wrappers around
monad-ledger-tail. - Re-run authenticated-UDP and wireauth handshake tests if your topology uses multiple instances or custom limits.
- Stress the txpool path with spam or fairness scenarios before trusting previous propagation assumptions.
- Recheck RPC automation that leans on
eth_callor doc-derived method expectations.
Sources
- category-labs/monad-bft repository
- PR #2916 - explicit config path for monad-ledger-tail service
- PR #2906 - lower per-instance wireauth defaults
- PR #2905 - relax statesync assertion
- PR #2882 - fair queue forwarded ingress in client
- PR #2884 - move forwarded pacing into executor
- PR #2910 - fix eth call stats tracking memleak in RPC
- PR #2892 - rework OpenRPC documentation CI workflow
- PR #2911 - fix OpenRPC workflow permissions
- Open PR #2900 - send forwarded transactions over direct UDP
- Open PR #2898 - direct UDP transport
- Open PR #2926 - move eth call gas limit config to EthCallHandler
- Several operator-relevant Monad BFT PRs merged between March 25 and March 27 across ledger-tail startup, wireauth defaults, statesync, txpool executor mechanics, and RPC tooling.
- The biggest behavior risk sits in the txpool executor changes, which alter forwarding, batching, fairness, and pacing under load.
- Statesync now handles one reset or stale DoneSync edge case more permissively, which may reduce crash risk but still changes assertion behavior.
- More networking and RPC-adjacent work remains open as of March 28, so the upstream surface is still moving and should be tested before any bump.
