penumbra
penumbra copied to clipboard
pd: add support for running in paused 'archive node' mode
Is your feature request related to a problem? Please describe. In the CometBFT ecosystem, an 'archive node' refers to a node that is running an from an old (pre-upgrade) genesis, used to serve Comet RPC requests for data during that epoch. Post upgrade, any state from a pre-upgrade epoch is not queryable by the CometBFT RPC. This presents a problem for use cases such as relayers, which use the Comet RPC in order to fetch headers to use to build client updates. As such, it is typical for CometBFT operators to run a pre-upgrade node in a 'frozen' state, where that node only exists to serve RPC requests for headers from the pre-upgrade epoch, known as an 'archive node'.
There is not currently a natively supported pathway in pd
for running in 'archive' mode (not producing any blocks, but still remaining online so as not to halt CometBFT).
Describe the solution you'd like
We should add a flag to pd start
, pd start --archive
, that configures pd
so that it expects to run in a frozen 'archive' state.
--archive
should:
- Ignore/override any upgrade parameters indicating that the node should halt due to an upgrade.
- Instruct
pd
to not respond to any consensus-related ABCI requests. This should be done in a way that avoidspd
or CometBFT halting. - Instruct
pd
to not respond to any mempool-related ABCI requests. This should be done in a way that avoidspd
or CometBFT halting.