pub(crate) async fn handle_quorum_proposal_recv<TYPES: NodeType, I: NodeImplementation<TYPES>, V: Versions>(
proposal: &Proposal<TYPES, QuorumProposal2<TYPES>>,
quorum_proposal_sender_key: &TYPES::SignatureKey,
event_sender: &Sender<Arc<HotShotEvent<TYPES>>>,
event_receiver: &Receiver<Arc<HotShotEvent<TYPES>>>,
validation_info: ValidationInfo<TYPES, I, V>,
) -> Result<()>
Expand description
Handles the QuorumProposalRecv
event by first validating the cert itself for the view, and then
updating the states, which runs when the proposal cannot be found in the internal state map.
This code can fail when:
- The justify qc is invalid.
- The task is internally inconsistent.
- The sequencer storage update fails.