Skip to content

v5.5.0

Choose a tag to compare

@github-actions github-actions released this 15 Oct 18:40
· 280 commits to main since this release
18e60d4

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, with debug_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 deposit mint, 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 answers NUTHATCH_UNSUPPORTED from 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 Transfer logs 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.