You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Each epoch's validator set is now a fixed roster + active mask โ a slash clears one bit instead of rewriting the list
Signer indexes stay valid for the whole epoch, even across slashes; quorum counts active validators only
Several slashes in one block now accumulate (previously the last one overwrote the others)
Aggregate signatures carry mask_active; mask_size / mask_set_size are derived, no longer sent
slash_trainer and contract deploydrop their fixed 0.01 AMA exec fee โ it exceeded the 0.002 AMA exec cap, so neither could ever succeed. Metered DB/storage costs still apply
Slash txs attach gas to cover writing the new validator record
๐ฅ Sync inbox
Incoming blocks, attestations and consensuses land in an in-memory inbox (3 GB cap), not RocksDB
Signatures, hashes and txs are checked on arrival, in parallel; validator-set checks run only when it's the next block to apply or root
Blocks far ahead of the tip never touch the database; competing forks are kept until finality and re-verified after a softfork
When full, the furthest heights are evicted first, so the next blocks always fit
Catchup no longer re-requests blocks already buffered
๐ Faster catch-up
Bulk block fetching is no longer starved while blocks are being applied
Fixes & hardening ๐ง
Pruner: drops rewind data (muts_rev) below the previous epoch โ a rewind never goes below the root
HTTP keep-alive: fixed body reads across keep-alive requests; memory released between requests
Slash motions: signed for the correct epoch at the epoch boundary; dropped if the validator set or parent block changes mid-motion