client: allow reverting finalized blocks (#4535)

* client: allow reverting blocks past finality

* client: fix leaves reversion

* client: extend docs on revert

* client: add comment on leaves revert
This commit is contained in:
André Silva
2020-01-06 14:58:43 +00:00
committed by Gavin Wood
parent 4fa4dfb77b
commit c4e20af74d
6 changed files with 124 additions and 42 deletions
+8 -2
View File
@@ -283,10 +283,16 @@ pub trait Backend<Block, H>: AuxStore + Send + Sync where
Ok(())
}
/// Attempts to revert the chain by `n` blocks.
/// Attempts to revert the chain by `n` blocks. If `revert_finalized` is set
/// it will attempt to revert past any finalized block, this is unsafe and
/// can potentially leave the node in an inconsistent state.
///
/// Returns the number of blocks that were successfully reverted.
fn revert(&self, n: NumberFor<Block>) -> sp_blockchain::Result<NumberFor<Block>>;
fn revert(
&self,
n: NumberFor<Block>,
revert_finalized: bool,
) -> sp_blockchain::Result<NumberFor<Block>>;
/// Insert auxiliary data into key-value store.
fn insert_aux<