iroha
iroha copied to clipboard
SUMERAGI: Handle Soft Forks
Separate finalized WSV with pending WSV.
Un-apply blocks that are replaced with proofs of cancellation.
Soft forks can happen when the proxy tail sends a fully signed block to only one peer, for example, then that peer goes offline while other peers do a view change and replace the already committed local block. Then when the peer comes back online, it should replace their committed block with a newly created block that supercedes it.
NOTE: because we cancel out overridden block hashes, we know what block(s) should be replaced. Finalization happens after 1 block, so max depth of soft fork is just 1 block.