Repository navigation
v5.1.1
Nuthatch 5.1.1 fixes address history (RFC-0063) off Ethereum and makes its backfill workable on
providers that cap a call's block range. Nothing outside an [address_history] nest changes. There is
no storage migration.
Fixes
- Optimism before Bedrock was served as an empty history (#2023). Its RPC answers
trace_filter
there with an empty success, so a pre-Bedrock range read as an address with no transactions. It now
answersNUTHATCH_UNSUPPORTEDand is never scanned. A 5.1.0 nest on Optimism that started before
block 105,235,063 should be pointed at a fresh directory, since its stored coverage for that range is
wrong. - Timestamp to block off Ethereum (#2023).
getblocknobytimewas never answered on other chains;
it now is, from the RPC or from headers-only partitions. - Partitions for OP-stack chains (#2023).
nuthatch partitionsfailed on Optimism and Base after
Isthmus, where the header's withdrawals root is not a withdrawals commitment. Off Ethereum a
partition now carries verified headers only. - A timed-out RPC call reads as a timeout (#2023), so discovery narrows its span instead of
retrying the same range for good. - Discovery's span size (#2024). Several filters sharing one window each halved it on the same
stale refusal, and a provider whose stated limit changes from call to call (Alchemy on Optimism) had
its latest figure taken as a permanent ceiling. The window now proves a size before using it, a retry
never shrinks below what a refusal named, and the ceiling is the largest limit the provider has
stated.
Faster backfill on capped providers
Once the window has proved a size, discovery sends that many spans at once, eight at a time, and runs
both trace sides and the four log filters together (#2024). Answers are the same bytes. On Optimism,
vitalik.eth over 50,000 blocks on Alchemy went from 396-452 s and 654-1,002 trace_filter calls to
95-105 s and 245-292 calls. Gnosis, where hydration dominates, made the same 282-283 eth_getLogs
calls in the same time.
Checked
Optimism and Gnosis against Blockscout, and Base against Alchemy's transfer API, on vitalik.eth: every
action exact (Optimism 119 transactions, Gnosis 444, with their transfers and 20 of 20 timestamps
each). Base has one internal row Alchemy omits, a failed call Etherscan also lists.
Gated on Lodestar's data
Every change is in the address-history path, which no production nest declares, so this release changes
no query path the release gate measures.
Compatibility and upgrade
Replace the binary and restart. No re-index, except the Optimism case above.