Repository navigation
v5.5.0
Nuthatch 5.5.0 serves account history on six more chains: Optimism, Base, Arbitrum, Polygon, BNB Chain
and Gnosis, the chains rotki users are asked to buy explorer keys for. There is no storage migration.
Account history without trace_filter (RFC-0063 §13)
Address history found an account's transactions with trace_filter. reth caps it at 100 blocks and
replays every block it covers, 47 s per 100 on Base, and Polygon and Arbitrum do not serve it at all.
On these six chains the nest now uses the balance residual instead (#2053):
- Outgoing transactions are the blocks where the account's nonce rises.
- Incoming value is found where the balance rises by more than the account's own transactions
explain, and only those blocks are traced, withdebug_traceBlockByNumber. - The books must balance. Each traced block's credits must equal the balance's rise to the wei, or
the window is not recorded. Value the chain mints outside any call is read from where it is
recorded: the OP stack's depositmint, and Gnosis's bridge event. - A contract or a 7702-delegated account cannot be proved this way, because another account's
code can spend its balance. Every account action answersNUTHATCH_UNSUPPORTEDfrom its first block
with code, so rotki asks another source. - Not listed: an incoming transaction that moves no value, a zero-value call or a failed transfer
to the account. Etherscan lists them; they change nothing in rotki's books.
The trace RPC must serve debug_traceBlockByNumber. A backfill window on these chains starts at 16,384
blocks, because its cost is round trips, not blocks.
Checked through the binary against Blockscout on Optimism (three accounts, the largest with 1,411
transactions, and a delegated one refused from its delegation block), Arbitrum (594) and Gnosis
(including a bridge mint), every field identical; Base against the spike that preceded it, 905
transactions. Polygon and BNB Chain have no free reference: there the binary was run on one account each
with the books checked, and nothing compared. The fee rule held to the wei for 698 of 701
senders sampled across the six chains' histories; the three that did not are on Gnosis before its
merge, where xDAI was minted outside any transaction, and the books check refuses those blocks.
Fixed
- An empty token-log check whose probe block held more
Transferlogs than one answer may carry
failed its window on every poll. It now moves to another block (#2053).
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. A 5.4 store is used as it is. An address-history nest on one of the six
chains needs a trace RPC that serves debug_traceBlockByNumber.