Make query to find what states a given node exposes #15463
Description
Summary
If you want to make some tooling to run a query across many heights, you need to know what states a given full node has. (E.g. an indexer). The current ecosystem default as far as I can tell, is to use an archive node, which provides much slower queries. And in general is a bit less robust than what many people's needs could afford them. (E.g. resync from full nodes maintaining last 10k blocks, and only revert to an archive node if too old)
Right now the closest thing we have is earliest_block_height
in the STATUS
RPC endpoint. However this exposes the Tendermint earliest block height, not the state machine's which is subject to pruning conditions.
The proposal is to add a query of some sort, that returns the earliest state that a given node is serving queries from.
Its not obvious to me what the most natural way to expose this info is, but its pretty easy for integrators to adapt to whatever standard we want to set. E.g.
an "Earliest State Query", or a more general "status" query from the state machine.
Activity