Skip to content

v1.6.2

Choose a tag to compare

@vans163 vans163 released this 16 Oct 22:24
· 11 commits to main since this release
f5ac7d7

v1.6.2

Major ๐Ÿ“œ

๐Ÿ—ณ๏ธ Stable validator slots (epoch 877)

  • 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 deploy drop 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
  • Bootstrap: default snapshot height 85,800,302;