diff --git a/cumulus/client/collator/src/lib.rs b/cumulus/client/collator/src/lib.rs index 44b6ccfc5b..c146e246f3 100644 --- a/cumulus/client/collator/src/lib.rs +++ b/cumulus/client/collator/src/lib.rs @@ -309,17 +309,15 @@ where let block_hash = b.header().hash(); let collation = self.build_collation(b, block_hash, validation_data.relay_parent_number)?; - let pov_hash = collation.proof_of_validity.hash(); let (result_sender, signed_stmt_recv) = oneshot::channel(); self.wait_to_announce .lock() - .wait_to_announce(block_hash, pov_hash, signed_stmt_recv); + .wait_to_announce(block_hash, signed_stmt_recv); tracing::info!( target: LOG_TARGET, - pov_hash = ?pov_hash, ?block_hash, "Produced proof-of-validity candidate.", ); diff --git a/cumulus/client/network/src/lib.rs b/cumulus/client/network/src/lib.rs index eff58b2683..d31f41530a 100644 --- a/cumulus/client/network/src/lib.rs +++ b/cumulus/client/network/src/lib.rs @@ -36,7 +36,7 @@ use sp_runtime::{ use polkadot_node_primitives::{SignedFullStatement, Statement}; use polkadot_parachain::primitives::HeadData; use polkadot_primitives::v1::{ - Block as PBlock, CandidateReceipt, CompactStatement, Hash as PHash, Id as ParaId, + Block as PBlock, Hash as PHash, CandidateReceipt, CompactStatement, Id as ParaId, OccupiedCoreAssumption, ParachainHost, SignedStatement, SigningContext, }; use polkadot_service::ClientHandle; @@ -178,10 +178,10 @@ impl BlockAnnounceData { } } -impl TryFrom for BlockAnnounceData { +impl TryFrom<&'_ SignedFullStatement> for BlockAnnounceData { type Error = (); - fn try_from(stmt: SignedFullStatement) -> Result { + fn try_from(stmt: &SignedFullStatement) -> Result { let receipt = if let Statement::Seconded(receipt) = stmt.payload() { receipt.to_plain() } else { @@ -530,7 +530,6 @@ impl WaitToAnnounce { pub fn wait_to_announce( &mut self, block_hash: ::Hash, - pov_hash: PHash, signed_stmt_recv: oneshot::Receiver, ) { let announce_block = self.announce_block.clone(); @@ -543,8 +542,7 @@ impl WaitToAnnounce { "waiting for announce block in a background task...", ); - wait_to_announce::(block_hash, pov_hash, announce_block, signed_stmt_recv) - .await; + wait_to_announce::(block_hash, announce_block, signed_stmt_recv).await; tracing::debug!( target: "cumulus-network", @@ -558,7 +556,6 @@ impl WaitToAnnounce { async fn wait_to_announce( block_hash: ::Hash, - pov_hash: PHash, announce_block: Arc>) + Send + Sync>, signed_stmt_recv: oneshot::Receiver, ) { @@ -567,7 +564,6 @@ async fn wait_to_announce( Err(_) => { tracing::debug!( target: "cumulus-network", - pov_hash = ?pov_hash, block = ?block_hash, "Wait to announce stopped, because sender was dropped.", ); @@ -575,18 +571,14 @@ async fn wait_to_announce( } }; - match statement.payload() { - Statement::Seconded(c) if &c.descriptor.pov_hash == &pov_hash => { - if let Ok(data) = BlockAnnounceData::try_from(statement) { - announce_block(block_hash, Some(data.encode())); - } - } - _ => tracing::debug!( + if let Ok(data) = BlockAnnounceData::try_from(&statement) { + announce_block(block_hash, Some(data.encode())); + } else { + tracing::debug!( target: "cumulus-network", statement = ?statement, block = ?block_hash, - expected_pov_hash = ?pov_hash, "Received invalid statement while waiting to announce block.", - ), + ); } } diff --git a/cumulus/client/network/src/tests.rs b/cumulus/client/network/src/tests.rs index 997583fda0..481c5a95a5 100644 --- a/cumulus/client/network/src/tests.rs +++ b/cumulus/client/network/src/tests.rs @@ -219,7 +219,7 @@ fn check_signer_is_legit_validator() { let (mut validator, api) = make_validator_and_api(); let (signed_statement, header) = block_on(make_gossip_message_and_header_using_genesis(api, 1)); - let data = BlockAnnounceData::try_from(signed_statement) + let data = BlockAnnounceData::try_from(&signed_statement) .unwrap() .encode(); @@ -233,7 +233,7 @@ fn check_statement_is_correctly_signed() { let (signed_statement, header) = block_on(make_gossip_message_and_header_using_genesis(api, 0)); - let mut data = BlockAnnounceData::try_from(signed_statement) + let mut data = BlockAnnounceData::try_from(&signed_statement) .unwrap() .encode(); @@ -296,7 +296,7 @@ fn check_header_match_candidate_receipt_header() { let (signed_statement, mut header) = block_on(make_gossip_message_and_header_using_genesis(api, 0)); - let data = BlockAnnounceData::try_from(signed_statement) + let data = BlockAnnounceData::try_from(&signed_statement) .unwrap() .encode(); header.number = 300; @@ -323,7 +323,7 @@ fn relay_parent_not_imported_when_block_announce_is_processed() { let (signed_statement, header) = make_gossip_message_and_header(api, block.hash(), 0).await; - let data = BlockAnnounceData::try_from(signed_statement) + let data = BlockAnnounceData::try_from(&signed_statement) .unwrap() .encode();