Skip to content

Commit 1886013

Browse files
authored
Merge pull request #4743 from ASuciuX/feat/mock-mining-hot-swap
Feat/mock mining hot swap
2 parents 54ae125 + ea9c8c8 commit 1886013

File tree

7 files changed

+23
-10
lines changed

7 files changed

+23
-10
lines changed

testnet/stacks-node/src/burnchains/bitcoin_regtest_controller.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -703,8 +703,8 @@ impl BitcoinRegtestController {
703703
utxos_to_exclude: Option<UTXOSet>,
704704
block_height: u64,
705705
) -> Option<UTXOSet> {
706-
// if mock mining, do not even both requesting UTXOs
707-
if self.config.node.mock_mining {
706+
// if mock mining, do not even bother requesting UTXOs
707+
if self.config.get_node_config().mock_mining {
708708
return None;
709709
}
710710

testnet/stacks-node/src/config.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -558,6 +558,19 @@ impl Config {
558558
return config.miner;
559559
}
560560

561+
pub fn get_node_config(&self) -> NodeConfig {
562+
let Some(path) = &self.config_path else {
563+
return self.node.clone();
564+
};
565+
let Ok(config_file) = ConfigFile::from_path(path.as_str()) else {
566+
return self.node.clone();
567+
};
568+
let Ok(config) = Config::from_config_file(config_file) else {
569+
return self.node.clone();
570+
};
571+
return config.node;
572+
}
573+
561574
/// Apply any test settings to this burnchain config struct
562575
#[cfg_attr(test, mutants::skip)]
563576
fn apply_test_settings(&self, burnchain: &mut Burnchain) {

testnet/stacks-node/src/nakamoto_node.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ impl StacksNode {
167167
let local_peer = p2p_net.local_peer.clone();
168168

169169
// setup initial key registration
170-
let leader_key_registration_state = if config.node.mock_mining {
170+
let leader_key_registration_state = if config.get_node_config().mock_mining {
171171
// mock mining, pretend to have a registered key
172172
let (vrf_public_key, _) = keychain.make_vrf_keypair(VRF_MOCK_MINER_KEY);
173173
LeaderKeyRegistrationState::Active(RegisteredKey {

testnet/stacks-node/src/nakamoto_node/miner.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -656,7 +656,7 @@ impl BlockMinerThread {
656656
fn make_vrf_proof(&mut self) -> Option<VRFProof> {
657657
// if we're a mock miner, then make sure that the keychain has a keypair for the mocked VRF
658658
// key
659-
let vrf_proof = if self.config.node.mock_mining {
659+
let vrf_proof = if self.config.get_node_config().mock_mining {
660660
self.keychain.generate_proof(
661661
VRF_MOCK_MINER_KEY,
662662
self.burn_block.sortition_hash.as_bytes(),

testnet/stacks-node/src/neon_node.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1712,7 +1712,7 @@ impl BlockMinerThread {
17121712
fn make_vrf_proof(&mut self) -> Option<VRFProof> {
17131713
// if we're a mock miner, then make sure that the keychain has a keypair for the mocked VRF
17141714
// key
1715-
let vrf_proof = if self.config.node.mock_mining {
1715+
let vrf_proof = if self.config.get_node_config().mock_mining {
17161716
self.keychain.generate_proof(
17171717
VRF_MOCK_MINER_KEY,
17181718
self.burn_block.sortition_hash.as_bytes(),
@@ -2535,7 +2535,7 @@ impl BlockMinerThread {
25352535
let res = bitcoin_controller.submit_operation(target_epoch_id, op, &mut op_signer, attempt);
25362536
if res.is_none() {
25372537
self.failed_to_submit_last_attempt = true;
2538-
if !self.config.node.mock_mining {
2538+
if !self.config.get_node_config().mock_mining {
25392539
warn!("Relayer: Failed to submit Bitcoin transaction");
25402540
return None;
25412541
}
@@ -3518,7 +3518,7 @@ impl RelayerThread {
35183518
return false;
35193519
}
35203520

3521-
if !self.config.node.mock_mining {
3521+
if !self.config.get_node_config().mock_mining {
35223522
// mock miner can't mine microblocks yet, so don't stop it from trying multiple
35233523
// anchored blocks
35243524
if self.mined_stacks_block && self.config.node.mine_microblocks {
@@ -4777,7 +4777,7 @@ impl StacksNode {
47774777
let local_peer = p2p_net.local_peer.clone();
47784778

47794779
// setup initial key registration
4780-
let leader_key_registration_state = if config.node.mock_mining {
4780+
let leader_key_registration_state = if config.get_node_config().mock_mining {
47814781
// mock mining, pretend to have a registered key
47824782
let (vrf_public_key, _) = keychain.make_vrf_keypair(VRF_MOCK_MINER_KEY);
47834783
LeaderKeyRegistrationState::Active(RegisteredKey {

testnet/stacks-node/src/run_loop/nakamoto.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ impl RunLoop {
195195
return true;
196196
}
197197
}
198-
if self.config.node.mock_mining {
198+
if self.config.get_node_config().mock_mining {
199199
info!("No UTXOs found, but configured to mock mine");
200200
return true;
201201
} else {

testnet/stacks-node/src/run_loop/neon.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ impl RunLoop {
373373
return true;
374374
}
375375
}
376-
if self.config.node.mock_mining {
376+
if self.config.get_node_config().mock_mining {
377377
info!("No UTXOs found, but configured to mock mine");
378378
return true;
379379
} else {

0 commit comments

Comments
 (0)