pub(crate) fn repropose_block<K: KVStore>(
current_view: ViewNumber,
block_tree: &BlockTreeSingleton<K>,
) -> Result<Option<CryptoHash>, BlockTreeError>
Expand description
Get the Block
in the block_tree
which a leader of the current_view
should re-propose in order
to satisfy the Consecutive Views Rule and make progress in the view.
§Usage
If Ok(Some(block_hash))
is returned, then the leader should re-propose the block identified by
block_hash
.
Else if Ok(None)
is returned, then the leader should either propose a new block, or
nudge using the highest pc.
§Rationale
The Consecutive Views Rule and the purpose of repropose_block
is explained in the
“Committing” section of safety
’s module-level docs.