Context & versions
We saw this when trying out #1894
Steps to reproduce
- Open a hydra head
- Do some commits and decommits
- Stop the hydra-node and wipe
state (= fatal crash of disk)
- Start the hydra-node with a suitable
--start-chain-from
- Look at the state of the node
Actual behavior
The hydra-node will ignore increment and decrement transactions. It's internal state will not represent what happened on-chain.
Expected behavior
Although losing the snapshots and other off-chain state, the hydra-node should still know at least what state the head on L1 is.
Implementation idea
The HeadLogic (and specification) rules for handling chain events should never be conditional. We must not ignore the observation from the chain, even if it is inconsistent with our world view (i.e. HeadState).