Currently one use-case (possibly the largest use-case) of terminate-at-block is to provide the ability to stop a node at a given block height; remove any configured peers, disable incoming peers, and restart the node so that it can be queried at the specified block.
In Spring, we process blocks into the fork database immediately. This means that on shutdown there can be many un-applied blocks in the fork database that would normally be applied on startup. For Spring 1.0.0, we have preserved the functionality (when configured with no configured peers (p2p-peer-address)), to not apply blocks on startup so that if the node was previously stopped with terminate-at-block chain head remains at that block on startup. See #565.
Add a new feature, pause-at-block that would allow a node operator to stop processing of blocks at a specified block height without shutting down. This feature could be used by itself to pause a node at a specified block or with terminate-at-block followed by pause-at-block to restart a node at a specific block without the node possibly processing any additional received blocks from the fork database or from the network.
A new endpoint will be needed as a way to unpause, optionally with a new block pause height. Or we could just require a restart of the node after a pause.
Currently one use-case (possibly the largest use-case) of
terminate-at-block
is to provide the ability to stop a node at a given block height; remove any configured peers, disable incoming peers, and restart the node so that it can be queried at the specified block.In Spring, we process blocks into the fork database immediately. This means that on shutdown there can be many un-applied blocks in the fork database that would normally be applied on startup. For Spring 1.0.0, we have preserved the functionality (when configured with no configured peers (
p2p-peer-address
)), to not apply blocks on startup so that if the node was previously stopped withterminate-at-block
chain head remains at that block on startup. See #565.Add a new feature,
pause-at-block
that would allow a node operator to stop processing of blocks at a specified block height without shutting down. This feature could be used by itself to pause a node at a specified block or with terminate-at-block followed by pause-at-block to restart a node at a specific block without the node possibly processing any additional received blocks from the fork database or from the network.A new endpoint will be needed as a way to unpause, optionally with a new block pause height. Or we could just require a restart of the node after a pause.