Function hotshot_task_impls::consensus::handlers::publish_proposal_if_able
source · pub async fn publish_proposal_if_able<TYPES: NodeType, V: Versions>(
view: TYPES::Time,
sender: Sender<Arc<HotShotEvent<TYPES>>>,
receiver: Receiver<Arc<HotShotEvent<TYPES>>>,
quorum_membership: Arc<TYPES::Membership>,
public_key: TYPES::SignatureKey,
private_key: <TYPES::SignatureKey as SignatureKey>::PrivateKey,
consensus: OuterConsensus<TYPES>,
delay: u64,
formed_upgrade_certificate: Option<UpgradeCertificate<TYPES>>,
upgrade_lock: UpgradeLock<TYPES, V>,
commitment_and_metadata: Option<CommitmentAndMetadata<TYPES>>,
proposal_cert: Option<ViewChangeEvidence<TYPES>>,
instance_state: Arc<TYPES::InstanceState>,
id: u64
) -> Result<JoinHandle<()>>
Expand description
Publishes a proposal if there exists a value which we can propose from. Specifically, we must have either
commitment_and_metadata
, or a decided_upgrade_certificate
.