The explorer and archival nodes
You are looking at an old version of this page: revision #838 by zoobc.how, 2026-10-26 22:31 UTC. See the current version
The ZooBC explorer lets anyone browse blocks, transactions, accounts and nodes, search old transaction messages and read daily statistics. Most of that comes not from an ordinary node but from an archival service: a separate program that runs beside a registered node and keeps a searchable index of the chain's history.
What an ordinary node keeps
An ordinary node keeps the current state (balances, records, the registry) and a recent window of blocks: one to two snapshot periods, which is 30 to 60 days on mainnet. That is enough to validate the chain and to help new nodes join from a snapshot (snapshots and fast sync). Older blocks, transactions and receipts are pruned (pruning of history), which keeps nodes light. An operator who wants to keep the pruned history locally can set keep_all_history in node.conf.
The consequence is that a node alone cannot answer "every transaction since block 0", nor a full-text search over messages.
The archival service
The archival service, zoobc-archival-api, fills that gap. A node whose operator sets archival_node = true starts it and supervises it. The service reads the node's own SQLite database and keeps an index of blocks and transactions in a MySQL store, so it can answer history, account timelines, statistics and searches. Besides archival forms of ordinary routes, it serves its own:
| Route | What it answers |
|---|---|
/search/transactions | search over transactions, including their messages |
/stats/… | network statistics |
/spine/blocks | the blocks of the spine chain |
/network/map | a map of the network |
/archive/stats | statistics about the archive itself |
One detail matters to developers comparing answers: the archival service writes hexadecimal values in upper case, while the node writes them in lower case.
Declaring it on the chain
The owner of a registered node declares an archival service with RegisterArchival (type 46). The node key named must belong to a registered node owned by the sender. No stake is locked, and UnregisterArchival (type 47) withdraws the entry. Anyone can list the declared services at GET /api/v1/registry/archivals, and the web wallet reads that list when its gateway fails.
The explorer
The explorer is a web page served by gateways. It is built on the archival routes: blocks, transactions, accounts, nodes, the spine, statistics and search. A gateway sends each API read to its archival service first and falls through to a node for the routes the archival service lacks. The explorer also shows each node's software version, so operators and observers can see who has updated (releases and updates).
All of it is public chain data: a key is needed to act on the chain, never to look at it (node API).
Not the only way to read the past
An archival service is a convenience, not the chain's memory.
What archival services do not do: they do not make blocks, which only registered nodes do, and there is no central ZooBC Foundation database that nodes report to. Relays carry calls between wallets, not transactions (relays).