Repository navigation
v5.6.0
Nuthatch 5.6.0 serves account history for several chains at one address, so rotki, which takes one
indexer endpoint, can ask a single nuthatch dev about Ethereum, Base and Gnosis at once. There is no
storage migration.
One endpoint for several chains (RFC-0063 §14)
Point nuthatch dev --dir at a directory with no nuthatch.toml of its own and one subdirectory per
chain, each an ordinary address-history nest (#2055):
/apianswers as the nestchainidnames. Achainidno nest serves answers
NUTHATCH_UNSUPPORTED, which rotki reads as "ask another indexer for this chain".- Each chain keeps its own cursor, store and RPCs, so one chain's stall or reorg touches no other.
RPCs come fromNUTHATCH_RPC_<chain id>andNUTHATCH_TRACE_RPC_<chain id>, else the nest's
rpc_urls;--rpc,--trace-rpcand--rpc-fallbackare refused there, because each names one
chain's. - Watching reaches every chain.
POST /api/watchand/api/unwatchgo to each chain and report
each chain's answer, so one refusal does not stop the others.GET /api/watchlists the union and
each chain's own list./readylistschain_idsand each chain's state;/metricslabels samples
withchain_id.
Checked with Gnosis and Base in one directory: every Gnosis answer through the shared endpoint was the
solo nest's, byte for byte apart from the per-store generation, and Base matched the S0 spike. rotki
still registers accounts on Ethereum only, so a Base or Gnosis nest lists its accounts in addresses
until rotki learns /ready's chain_ids.
Fixed
- A backfill from block 0 against a GraphOps RPC crawled, because the empty-trace probe asked
eth_getBlockTransactionCountByNumber, which that RPC takes about 12 s to answer. It now reads the
block's hash list instead: 196,671 blocks in 92 s, against 255 in 150 s (#2059). getblocknobytimesearched by bisection, about 30 reads a lookup, and rotki's Gnosis lookups ran out
of time and were refused. It now interpolates and falls back to bisection when a guess does not
halve the range: a mean of 10 reads and a maximum of 19 (#2060).
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.5 store is used as it is, and a single-chain nest behaves as before.