Release v9.8.1
What's Changed
- mempool: CheckTx for txs received from peers now runs on a worker pool, so it no longer delays that peer's consensus messages (dydxprotocol/cometbft#62, #3426)
[mempool] recv_workersdefaults to 4, including when config.toml lacks the key;recv_workers = 0restores the old inline path- Queued txs are capped by
recv_queue_size(default 100000); txs beyond the cap are dropped and counted - New metrics:
mempool_recv_queue_len,mempool_recv_queue_dropped_txs,mempool_recv_queue_wait_seconds
- x/clob: orders that don't cross the book skip the cached-state matching path; cachekv caches are allocated only when a store is written to (dydxprotocol/cosmos-sdk#83). Adds
clob_global_lockwait/hold telemetry to CheckTx (#3426) - x/clob: the indexer now gets an expiry for short-term orders that expire in the block they're matched in. These orders previously left stale levels in the indexer's orderbook (#3430)
- x/clob: fix a panic on the first block after state sync; block rate limiters are now installed from state (#3420)
- cometbft:
/validatorsand state-sync bootstrap now return the proposer priorities consensus actually holds. Before this, state-synced nodes came up with a diverged proposer rotation and never proposed (dydxprotocol/cometbft#61, #3424) - cometbft: cache the last rebuilt validator set, so a validator-set lookup stays at about 0.05ms instead of growing with the number of blocks since the last validator-set change (dydxprotocol/cometbft#64, #3432)
- deps: cosmos-sdk fork bumped to dydx-fork-v0.50.5 (
524ebaad71e5) (#3427)
Full Changelog: protocol/v9.8.0...protocol/v9.8.1