Skip to content

v5.8.2

Latest

Choose a tag to compare

@github-actions github-actions released this 20 Oct 20:25
f5be02c

Nuthatch 5.8.2 keeps a seal-direct backfill on a dense chain inside the per-cursor memory budget. There
is no storage migration, and no nest's NID, registry hash or sealed segment changes.

Memory on a dense chain

Peak RSS of bench backfill --seal-direct over 30,000 blocks, against a local node serving N
transactions per block, macOS release build:

before after
blocks table, 3,000 txs/block, --concurrency 8 3,078 to 3,090 MiB 238 to 245 MiB
blocks table, 1,000 txs/block, --concurrency 8 1,010 to 1,039 MiB 224 to 245 MiB
events only, 3,000 txs/block, --concurrency 8 1,539 to 1,893 MiB 888 to 940 MiB
  • A header fetched without transaction bodies keeps only its transaction count, not every hash, so a
    window of headers no longer grows with block density (#2309). Sealed blocks segments are
    byte-identical before and after.
  • Header and eth_call batch responses are read up to 8 MiB. A batch past that is split in half at
    once, without a retry at the same size, a failover or a cooldown for the endpoint, and the width
    that fit is kept for later windows. A getLogs response past its cap follows the same rule (#2227).

bench backfill names a pool that never answers

bench backfill checks that some endpoint answers before it starts. If none does within 60
seconds, it stops and names each one, redacted to scheme and host; before, a seal-direct bench
against a closed port retried forever (#2310). dev is unchanged: it keeps a dead pool's API up and
reports stalled in /ready.

Compatibility and upgrade

Replace the binary and restart. A 5.8.1 store is used as it is.