From 12f5d9c6c3338a7ef74c3133e30d0d958273b723 Mon Sep 17 00:00:00 2001 From: Aaron Blankstein Date: Thu, 18 Jan 2024 10:39:51 -0600 Subject: [PATCH] feat: remove stacker signature fields from tenure change payload --- stackslib/src/chainstate/nakamoto/tests/mod.rs | 16 ---------------- stackslib/src/chainstate/nakamoto/tests/node.rs | 2 -- stackslib/src/chainstate/stacks/block.rs | 2 -- stackslib/src/chainstate/stacks/mod.rs | 8 -------- stackslib/src/chainstate/stacks/transaction.rs | 8 +------- testnet/stacks-node/src/mockamoto.rs | 2 -- testnet/stacks-node/src/nakamoto_node/miner.rs | 11 ++--------- 7 files changed, 3 insertions(+), 46 deletions(-) diff --git a/stackslib/src/chainstate/nakamoto/tests/mod.rs b/stackslib/src/chainstate/nakamoto/tests/mod.rs index 2e89d23bcb..64f8fa3d13 100644 --- a/stackslib/src/chainstate/nakamoto/tests/mod.rs +++ b/stackslib/src/chainstate/nakamoto/tests/mod.rs @@ -174,8 +174,6 @@ pub fn test_nakamoto_first_tenure_block_syntactic_validation() { previous_tenure_blocks: 1, cause: TenureChangeCause::BlockFound, pubkey_hash: Hash160([0x02; 20]), - signature: ThresholdSignature::mock(), - signers: vec![], }; // non-sortition-inducing tenure change @@ -187,8 +185,6 @@ pub fn test_nakamoto_first_tenure_block_syntactic_validation() { previous_tenure_blocks: 1, cause: TenureChangeCause::Extended, pubkey_hash: Hash160([0x02; 20]), - signature: ThresholdSignature::mock(), - signers: vec![], }; let invalid_tenure_change_payload = TenureChangePayload { @@ -200,8 +196,6 @@ pub fn test_nakamoto_first_tenure_block_syntactic_validation() { previous_tenure_blocks: 1, cause: TenureChangeCause::BlockFound, pubkey_hash: Hash160([0x02; 20]), - signature: ThresholdSignature::mock(), - signers: vec![], }; let proof_bytes = hex_bytes("9275df67a68c8745c0ff97b48201ee6db447f7c93b23ae24cdc2400f52fdb08a1a6ac7ec71bf9c9c76e96ee4675ebff60625af28718501047bfd87b810c2d2139b73c23bd69de66360953a642c2a330a").unwrap(); @@ -615,8 +609,6 @@ pub fn test_load_store_update_nakamoto_blocks() { previous_tenure_blocks: 1, cause: TenureChangeCause::BlockFound, pubkey_hash: Hash160([0x02; 20]), - signature: ThresholdSignature::mock(), - signers: vec![], }; let tenure_change_tx_payload = TransactionPayload::TenureChange(tenure_change_payload.clone()); @@ -1255,8 +1247,6 @@ fn test_nakamoto_block_static_verification() { previous_tenure_blocks: 1, cause: TenureChangeCause::BlockFound, pubkey_hash: Hash160::from_node_public_key(&StacksPublicKey::from_private(&private_key)), - signature: ThresholdSignature::mock(), - signers: vec![], }; let tenure_change_payload_bad_ch = TenureChangePayload { @@ -1267,8 +1257,6 @@ fn test_nakamoto_block_static_verification() { previous_tenure_blocks: 1, cause: TenureChangeCause::BlockFound, pubkey_hash: Hash160::from_node_public_key(&StacksPublicKey::from_private(&private_key)), - signature: ThresholdSignature::mock(), - signers: vec![], }; let tenure_change_payload_bad_miner_sig = TenureChangePayload { @@ -1279,8 +1267,6 @@ fn test_nakamoto_block_static_verification() { previous_tenure_blocks: 1, cause: TenureChangeCause::BlockFound, pubkey_hash: Hash160([0x02; 20]), // wrong - signature: ThresholdSignature::mock(), - signers: vec![], }; let tenure_change_tx_payload = TransactionPayload::TenureChange(tenure_change_payload.clone()); @@ -1551,8 +1537,6 @@ pub fn test_get_highest_nakamoto_tenure() { previous_tenure_blocks: 10, cause: TenureChangeCause::BlockFound, pubkey_hash: Hash160([0x00; 20]), - signature: ThresholdSignature::mock(), - signers: vec![], }; let tx = chainstate.db_tx_begin().unwrap(); diff --git a/stackslib/src/chainstate/nakamoto/tests/node.rs b/stackslib/src/chainstate/nakamoto/tests/node.rs index e1a12230f8..9c96ca1e6c 100644 --- a/stackslib/src/chainstate/nakamoto/tests/node.rs +++ b/stackslib/src/chainstate/nakamoto/tests/node.rs @@ -476,8 +476,6 @@ impl TestStacksNode { previous_tenure_blocks, cause: tenure_change_cause, pubkey_hash: miner.nakamoto_miner_hash160(), - signature: ThresholdSignature::mock(), - signers: vec![], }; let block_commit_op = self.make_nakamoto_tenure_commitment( diff --git a/stackslib/src/chainstate/stacks/block.rs b/stackslib/src/chainstate/stacks/block.rs index 8de0eb75e4..011ff9baa8 100644 --- a/stackslib/src/chainstate/stacks/block.rs +++ b/stackslib/src/chainstate/stacks/block.rs @@ -1789,8 +1789,6 @@ mod test { previous_tenure_blocks: 0, cause: TenureChangeCause::BlockFound, pubkey_hash: Hash160([0x00; 20]), - signature: ThresholdSignature::mock(), - signers: vec![], }; let tx_tenure_change = StacksTransaction::new( TransactionVersion::Testnet, diff --git a/stackslib/src/chainstate/stacks/mod.rs b/stackslib/src/chainstate/stacks/mod.rs index e1f07efc92..81523ecfec 100644 --- a/stackslib/src/chainstate/stacks/mod.rs +++ b/stackslib/src/chainstate/stacks/mod.rs @@ -731,10 +731,6 @@ pub struct TenureChangePayload { pub cause: TenureChangeCause, /// The ECDSA public key hash of the current tenure pub pubkey_hash: Hash160, - /// The Stacker signature - pub signature: ThresholdSignature, - /// A bitmap of which Stackers signed - pub signers: Vec, } impl TenureChangePayload { @@ -752,8 +748,6 @@ impl TenureChangePayload { previous_tenure_blocks: num_blocks_so_far, cause: TenureChangeCause::Extended, pubkey_hash: self.pubkey_hash.clone(), - signature: ThresholdSignature::mock(), - signers: vec![], } } } @@ -1400,8 +1394,6 @@ pub mod test { previous_tenure_blocks: 0, cause: TenureChangeCause::BlockFound, pubkey_hash: Hash160([0x00; 20]), - signature: ThresholdSignature::mock(), - signers: vec![], }), ]; diff --git a/stackslib/src/chainstate/stacks/transaction.rs b/stackslib/src/chainstate/stacks/transaction.rs index 2999bb1c75..248ab2180e 100644 --- a/stackslib/src/chainstate/stacks/transaction.rs +++ b/stackslib/src/chainstate/stacks/transaction.rs @@ -201,9 +201,7 @@ impl StacksMessageCodec for TenureChangePayload { write_next(fd, &self.previous_tenure_end)?; write_next(fd, &self.previous_tenure_blocks)?; write_next(fd, &self.cause)?; - write_next(fd, &self.pubkey_hash)?; - write_next(fd, &self.signature)?; - write_next(fd, &self.signers) + write_next(fd, &self.pubkey_hash) } fn consensus_deserialize(fd: &mut R) -> Result { @@ -215,8 +213,6 @@ impl StacksMessageCodec for TenureChangePayload { previous_tenure_blocks: read_next(fd)?, cause: read_next(fd)?, pubkey_hash: read_next(fd)?, - signature: read_next(fd)?, - signers: read_next(fd)?, }) } } @@ -3782,8 +3778,6 @@ mod test { previous_tenure_blocks: 0, cause: TenureChangeCause::BlockFound, pubkey_hash: Hash160([0x00; 20]), - signature: ThresholdSignature::mock(), - signers: vec![], }), ); diff --git a/testnet/stacks-node/src/mockamoto.rs b/testnet/stacks-node/src/mockamoto.rs index d924b4a712..3227b50ec0 100644 --- a/testnet/stacks-node/src/mockamoto.rs +++ b/testnet/stacks-node/src/mockamoto.rs @@ -813,8 +813,6 @@ impl MockamotoNode { previous_tenure_blocks: 1, cause: TenureChangeCause::BlockFound, pubkey_hash: miner_pk_hash, - signature: ThresholdSignature::mock(), - signers: vec![], }); let mut tenure_tx = StacksTransaction::new( TransactionVersion::Testnet, diff --git a/testnet/stacks-node/src/nakamoto_node/miner.rs b/testnet/stacks-node/src/nakamoto_node/miner.rs index cc9b25c61b..7aec8ce6bb 100644 --- a/testnet/stacks-node/src/nakamoto_node/miner.rs +++ b/testnet/stacks-node/src/nakamoto_node/miner.rs @@ -30,8 +30,8 @@ use stacks::chainstate::stacks::boot::MINERS_NAME; use stacks::chainstate::stacks::db::{StacksChainState, StacksHeaderInfo}; use stacks::chainstate::stacks::{ CoinbasePayload, Error as ChainstateError, StacksTransaction, StacksTransactionSigner, - TenureChangeCause, TenureChangePayload, ThresholdSignature, TransactionAnchorMode, - TransactionPayload, TransactionVersion, + TenureChangeCause, TenureChangePayload, TransactionAnchorMode, TransactionPayload, + TransactionVersion, }; use stacks::core::FIRST_BURNCHAIN_CONSENSUS_HASH; use stacks::net::stackerdb::StackerDBs; @@ -299,11 +299,6 @@ impl BlockMinerThread { parent_tenure_blocks: u64, miner_pkh: Hash160, ) -> Result { - if self.config.self_signing().is_none() { - // if we're not self-signing, then we can't generate a tenure change tx: it has to come from the signers. - warn!("Tried to generate a tenure change transaction, but we aren't self-signing"); - return Err(NakamotoNodeError::CannotSelfSign); - } let is_mainnet = self.config.is_mainnet(); let chain_id = self.config.burnchain.chain_id; let tenure_change_tx_payload = TransactionPayload::TenureChange(TenureChangePayload { @@ -315,8 +310,6 @@ impl BlockMinerThread { .expect("FATAL: more than u32 blocks in a tenure"), cause: TenureChangeCause::BlockFound, pubkey_hash: miner_pkh, - signers: vec![], - signature: ThresholdSignature::mock(), }); let mut tx_auth = self.keychain.get_transaction_auth().unwrap();