Skip to content

Commit 5fdfd5d

Browse files
committed
refactor: Move stacks-node config file parsing into stackslib
1 parent f7b1295 commit 5fdfd5d

22 files changed

+81
-80
lines changed

stackslib/src/cli.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1154,7 +1154,7 @@ fn replay_block_nakamoto(
11541154

11551155
#[cfg(test)]
11561156
pub mod test {
1157-
use super::{drain_common_opts, CommonOpts};
1157+
use super::*;
11581158

11591159
fn parse_cli_command(s: &str) -> Vec<String> {
11601160
s.split(' ').map(String::from).collect()

testnet/stacks-node/src/chain_data.rs renamed to stackslib/src/config/chain_data.rs

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,22 @@
1717
use std::collections::HashMap;
1818
use std::process::{Command, Stdio};
1919

20-
use stacks::burnchains::bitcoin::address::BitcoinAddress;
21-
use stacks::burnchains::bitcoin::{BitcoinNetworkType, BitcoinTxOutput};
22-
use stacks::burnchains::{Burnchain, BurnchainSigner, Error as BurnchainError, Txid};
23-
use stacks::chainstate::burn::db::sortdb::{SortitionDB, SortitionHandle};
24-
use stacks::chainstate::burn::distribution::BurnSamplePoint;
25-
use stacks::chainstate::burn::operations::leader_block_commit::{
26-
MissedBlockCommit, BURN_BLOCK_MINED_AT_MODULUS,
27-
};
28-
use stacks::chainstate::burn::operations::LeaderBlockCommitOp;
29-
use stacks::chainstate::stacks::address::PoxAddress;
30-
use stacks::core::MINING_COMMITMENT_WINDOW;
31-
use stacks::util_lib::db::Error as DBError;
3220
use stacks_common::types::chainstate::{BlockHeaderHash, BurnchainHeaderHash, VRFSeed};
3321
use stacks_common::util::hash::hex_bytes;
3422

23+
use crate::burnchains::bitcoin::address::BitcoinAddress;
24+
use crate::burnchains::bitcoin::{BitcoinNetworkType, BitcoinTxOutput};
25+
use crate::burnchains::{Burnchain, BurnchainSigner, Error as BurnchainError, Txid};
26+
use crate::chainstate::burn::db::sortdb::{SortitionDB, SortitionHandle};
27+
use crate::chainstate::burn::distribution::BurnSamplePoint;
28+
use crate::chainstate::burn::operations::leader_block_commit::{
29+
MissedBlockCommit, BURN_BLOCK_MINED_AT_MODULUS,
30+
};
31+
use crate::chainstate::burn::operations::LeaderBlockCommitOp;
32+
use crate::chainstate::stacks::address::PoxAddress;
33+
use crate::core::MINING_COMMITMENT_WINDOW;
34+
use crate::util_lib::db::Error as DBError;
35+
3536
pub struct MinerStats {
3637
pub unconfirmed_commits_helper: String,
3738
}
@@ -526,18 +527,18 @@ pub mod tests {
526527
use std::fs;
527528
use std::io::Write;
528529

529-
use stacks::burnchains::{BurnchainSigner, Txid};
530-
use stacks::chainstate::burn::distribution::BurnSamplePoint;
531-
use stacks::chainstate::burn::operations::leader_block_commit::BURN_BLOCK_MINED_AT_MODULUS;
532-
use stacks::chainstate::burn::operations::LeaderBlockCommitOp;
533-
use stacks::chainstate::stacks::address::{PoxAddress, PoxAddressType20};
534530
use stacks_common::types::chainstate::{
535531
BlockHeaderHash, BurnchainHeaderHash, StacksAddress, StacksPublicKey, VRFSeed,
536532
};
537533
use stacks_common::util::hash::{hex_bytes, Hash160};
538534
use stacks_common::util::uint::{BitArray, Uint256};
539535

540536
use super::MinerStats;
537+
use crate::burnchains::{BurnchainSigner, Txid};
538+
use crate::chainstate::burn::distribution::BurnSamplePoint;
539+
use crate::chainstate::burn::operations::leader_block_commit::BURN_BLOCK_MINED_AT_MODULUS;
540+
use crate::chainstate::burn::operations::LeaderBlockCommitOp;
541+
use crate::chainstate::stacks::address::{PoxAddress, PoxAddressType20};
541542

542543
#[test]
543544
fn test_burn_dist_to_prob_dist() {

testnet/stacks-node/src/config.rs renamed to stackslib/src/config/mod.rs

Lines changed: 34 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
// You should have received a copy of the GNU General Public License
1515
// along with this program. If not, see <http://www.gnu.org/licenses/>.
1616

17+
pub mod chain_data;
18+
1719
use std::collections::{HashMap, HashSet};
1820
use std::net::{Ipv4Addr, SocketAddr, ToSocketAddrs};
1921
use std::path::PathBuf;
@@ -27,35 +29,6 @@ use clarity::vm::types::{AssetIdentifier, PrincipalData, QualifiedContractIdenti
2729
use lazy_static::lazy_static;
2830
use rand::RngCore;
2931
use serde::Deserialize;
30-
use stacks::burnchains::affirmation::AffirmationMap;
31-
use stacks::burnchains::bitcoin::BitcoinNetworkType;
32-
use stacks::burnchains::{Burnchain, MagicBytes, PoxConstants, BLOCKSTACK_MAGIC_MAINNET};
33-
use stacks::chainstate::nakamoto::signer_set::NakamotoSigners;
34-
use stacks::chainstate::stacks::boot::MINERS_NAME;
35-
use stacks::chainstate::stacks::index::marf::MARFOpenOpts;
36-
use stacks::chainstate::stacks::index::storage::TrieHashCalculationMode;
37-
use stacks::chainstate::stacks::miner::{BlockBuilderSettings, MinerStatus};
38-
use stacks::chainstate::stacks::MAX_BLOCK_LEN;
39-
use stacks::core::mempool::{MemPoolWalkSettings, MemPoolWalkTxTypes};
40-
use stacks::core::{
41-
MemPoolDB, StacksEpoch, StacksEpochExtension, StacksEpochId,
42-
BITCOIN_TESTNET_FIRST_BLOCK_HEIGHT, BITCOIN_TESTNET_STACKS_25_BURN_HEIGHT,
43-
BITCOIN_TESTNET_STACKS_25_REORGED_HEIGHT, CHAIN_ID_MAINNET, CHAIN_ID_TESTNET,
44-
PEER_VERSION_MAINNET, PEER_VERSION_TESTNET,
45-
};
46-
use stacks::cost_estimates::fee_medians::WeightedMedianFeeRateEstimator;
47-
use stacks::cost_estimates::fee_rate_fuzzer::FeeRateFuzzer;
48-
use stacks::cost_estimates::fee_scalar::ScalarFeeRateEstimator;
49-
use stacks::cost_estimates::metrics::{CostMetric, ProportionalDotProduct, UnitMetric};
50-
use stacks::cost_estimates::{CostEstimator, FeeEstimator, PessimisticEstimator, UnitEstimator};
51-
use stacks::net::atlas::AtlasConfig;
52-
use stacks::net::connection::ConnectionOptions;
53-
use stacks::net::{Neighbor, NeighborAddress, NeighborKey};
54-
use stacks::types::chainstate::BurnchainHeaderHash;
55-
use stacks::types::EpochList;
56-
use stacks::util::hash::to_hex;
57-
use stacks::util_lib::boot::boot_code_id;
58-
use stacks::util_lib::db::Error as DBError;
5932
use stacks_common::consts::SIGNER_SLOTS_PER_USER;
6033
use stacks_common::types::chainstate::StacksAddress;
6134
use stacks_common::types::net::PeerAddress;
@@ -64,7 +37,36 @@ use stacks_common::util::get_epoch_time_ms;
6437
use stacks_common::util::hash::hex_bytes;
6538
use stacks_common::util::secp256k1::{Secp256k1PrivateKey, Secp256k1PublicKey};
6639

67-
use crate::chain_data::MinerStats;
40+
use crate::burnchains::affirmation::AffirmationMap;
41+
use crate::burnchains::bitcoin::BitcoinNetworkType;
42+
use crate::burnchains::{Burnchain, MagicBytes, PoxConstants, BLOCKSTACK_MAGIC_MAINNET};
43+
use crate::chainstate::nakamoto::signer_set::NakamotoSigners;
44+
use crate::chainstate::stacks::boot::MINERS_NAME;
45+
use crate::chainstate::stacks::index::marf::MARFOpenOpts;
46+
use crate::chainstate::stacks::index::storage::TrieHashCalculationMode;
47+
use crate::chainstate::stacks::miner::{BlockBuilderSettings, MinerStatus};
48+
use crate::chainstate::stacks::MAX_BLOCK_LEN;
49+
use crate::config::chain_data::MinerStats;
50+
use crate::core::mempool::{MemPoolWalkSettings, MemPoolWalkTxTypes};
51+
use crate::core::{
52+
MemPoolDB, StacksEpoch, StacksEpochExtension, StacksEpochId,
53+
BITCOIN_TESTNET_FIRST_BLOCK_HEIGHT, BITCOIN_TESTNET_STACKS_25_BURN_HEIGHT,
54+
BITCOIN_TESTNET_STACKS_25_REORGED_HEIGHT, CHAIN_ID_MAINNET, CHAIN_ID_TESTNET,
55+
PEER_VERSION_MAINNET, PEER_VERSION_TESTNET, STACKS_EPOCHS_REGTEST, STACKS_EPOCHS_TESTNET,
56+
};
57+
use crate::cost_estimates::fee_medians::WeightedMedianFeeRateEstimator;
58+
use crate::cost_estimates::fee_rate_fuzzer::FeeRateFuzzer;
59+
use crate::cost_estimates::fee_scalar::ScalarFeeRateEstimator;
60+
use crate::cost_estimates::metrics::{CostMetric, ProportionalDotProduct, UnitMetric};
61+
use crate::cost_estimates::{CostEstimator, FeeEstimator, PessimisticEstimator, UnitEstimator};
62+
use crate::net::atlas::AtlasConfig;
63+
use crate::net::connection::ConnectionOptions;
64+
use crate::net::{Neighbor, NeighborAddress, NeighborKey};
65+
use crate::types::chainstate::BurnchainHeaderHash;
66+
use crate::types::EpochList;
67+
use crate::util::hash::to_hex;
68+
use crate::util_lib::boot::boot_code_id;
69+
use crate::util_lib::db::Error as DBError;
6870

6971
pub const DEFAULT_SATS_PER_VB: u64 = 50;
7072
pub const OP_TX_BLOCK_COMMIT_ESTIM_SIZE: u64 = 380;
@@ -636,8 +638,8 @@ impl Config {
636638
BitcoinNetworkType::Mainnet => {
637639
Err("Cannot configure epochs in mainnet mode".to_string())
638640
}
639-
BitcoinNetworkType::Testnet => Ok(stacks::core::STACKS_EPOCHS_TESTNET.to_vec()),
640-
BitcoinNetworkType::Regtest => Ok(stacks::core::STACKS_EPOCHS_REGTEST.to_vec()),
641+
BitcoinNetworkType::Testnet => Ok(STACKS_EPOCHS_TESTNET.to_vec()),
642+
BitcoinNetworkType::Regtest => Ok(STACKS_EPOCHS_REGTEST.to_vec()),
641643
}?;
642644
let mut matched_epochs = vec![];
643645
for configured_epoch in conf_epochs.iter() {

stackslib/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ pub mod clarity_cli;
6363
/// A high level library for interacting with the Clarity vm
6464
pub mod clarity_vm;
6565
pub mod cli;
66+
pub mod config;
6667
pub mod core;
6768
pub mod cost_estimates;
6869
pub mod deps;

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

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,12 @@ use stacks::chainstate::burn::Opcodes;
4848
use stacks::chainstate::coordinator::comm::CoordinatorChannels;
4949
#[cfg(test)]
5050
use stacks::chainstate::stacks::address::PoxAddress;
51+
use stacks::config::BurnchainConfig;
52+
#[cfg(test)]
53+
use stacks::config::{
54+
OP_TX_ANY_ESTIM_SIZE, OP_TX_DELEGATE_STACKS_ESTIM_SIZE, OP_TX_PRE_STACKS_ESTIM_SIZE,
55+
OP_TX_STACK_STX_ESTIM_SIZE, OP_TX_TRANSFER_STACKS_ESTIM_SIZE, OP_TX_VOTE_AGG_ESTIM_SIZE,
56+
};
5157
use stacks::core::{EpochList, StacksEpochId};
5258
use stacks::monitoring::{increment_btc_blocks_received_counter, increment_btc_ops_sent_counter};
5359
use stacks::net::http::{HttpRequestContents, HttpResponsePayload};
@@ -74,12 +80,6 @@ use url::Url;
7480
use super::super::operations::BurnchainOpSigner;
7581
use super::super::Config;
7682
use super::{BurnchainController, BurnchainTip, Error as BurnchainControllerError};
77-
use crate::config::BurnchainConfig;
78-
#[cfg(test)]
79-
use crate::config::{
80-
OP_TX_ANY_ESTIM_SIZE, OP_TX_DELEGATE_STACKS_ESTIM_SIZE, OP_TX_PRE_STACKS_ESTIM_SIZE,
81-
OP_TX_STACK_STX_ESTIM_SIZE, OP_TX_TRANSFER_STACKS_ESTIM_SIZE, OP_TX_VOTE_AGG_ESTIM_SIZE,
82-
};
8383

8484
/// The number of bitcoin blocks that can have
8585
/// passed since the UTXO cache was last refreshed before
@@ -2806,13 +2806,13 @@ mod tests {
28062806
use std::io::Write;
28072807

28082808
use stacks::burnchains::BurnchainSigner;
2809+
use stacks::config::DEFAULT_SATS_PER_VB;
28092810
use stacks_common::deps_common::bitcoin::blockdata::script::Builder;
28102811
use stacks_common::types::chainstate::{BlockHeaderHash, StacksAddress, VRFSeed};
28112812
use stacks_common::util::hash::to_hex;
28122813
use stacks_common::util::secp256k1::Secp256k1PrivateKey;
28132814

28142815
use super::*;
2815-
use crate::config::DEFAULT_SATS_PER_VB;
28162816

28172817
#[test]
28182818
fn test_get_satoshis_per_byte() {

testnet/stacks-node/src/event_dispatcher.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ use stacks::chainstate::stacks::miner::TransactionEvent;
4949
use stacks::chainstate::stacks::{
5050
StacksBlock, StacksMicroblock, StacksTransaction, TransactionPayload,
5151
};
52+
use stacks::config::{EventKeyType, EventObserverConfig};
5253
use stacks::core::mempool::{MemPoolDropReason, MemPoolEventDispatcher, ProposalCallbackReceiver};
5354
use stacks::libstackerdb::StackerDBChunkData;
5455
use stacks::net::api::postblock_proposal::{
@@ -68,8 +69,6 @@ use stacks_common::util::hash::{bytes_to_hex, Sha512Trunc256Sum};
6869
use stacks_common::util::secp256k1::MessageSignature;
6970
use url::Url;
7071

71-
use super::config::{EventKeyType, EventObserverConfig};
72-
7372
#[derive(Debug, Clone)]
7473
struct EventObserver {
7574
/// Path to the database where pending payloads are stored. If `None`, then

testnet/stacks-node/src/globals.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ use stacks::chainstate::coordinator::comm::CoordinatorChannels;
1010
use stacks::chainstate::stacks::db::unconfirmed::UnconfirmedTxMap;
1111
use stacks::chainstate::stacks::db::StacksChainState;
1212
use stacks::chainstate::stacks::miner::MinerStatus;
13+
use stacks::config::MinerConfig;
1314
use stacks::net::NetworkResult;
1415
use stacks_common::types::chainstate::{BlockHeaderHash, BurnchainHeaderHash, ConsensusHash};
1516

16-
use crate::config::MinerConfig;
1717
use crate::neon::Counters;
1818
use crate::neon_node::LeaderKeyRegistrationState;
1919
use crate::run_loop::RegisteredKey;

testnet/stacks-node/src/main.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ use stacks_common::util::hash::hex_bytes;
1616
pub mod monitoring;
1717

1818
pub mod burnchains;
19-
pub mod chain_data;
20-
pub mod config;
2119
pub mod event_dispatcher;
2220
pub mod genesis_data;
2321
pub mod globals;
@@ -41,19 +39,19 @@ use stacks::chainstate::coordinator::{get_next_recipients, OnChainRewardSetProvi
4139
use stacks::chainstate::stacks::address::PoxAddress;
4240
use stacks::chainstate::stacks::db::blocks::DummyEventDispatcher;
4341
use stacks::chainstate::stacks::db::StacksChainState;
42+
use stacks::config::chain_data::MinerStats;
43+
pub use stacks::config::{Config, ConfigFile};
4444
#[cfg(not(any(target_os = "macos", target_os = "windows", target_arch = "arm")))]
4545
use tikv_jemallocator::Jemalloc;
4646

4747
pub use self::burnchains::{
4848
BitcoinRegtestController, BurnchainController, BurnchainTip, MocknetController,
4949
};
50-
pub use self::config::{Config, ConfigFile};
5150
pub use self::event_dispatcher::EventDispatcher;
5251
pub use self::keychain::Keychain;
5352
pub use self::node::{ChainTip, Node};
5453
pub use self::run_loop::{helium, neon};
5554
pub use self::tenure::Tenure;
56-
use crate::chain_data::MinerStats;
5755
use crate::neon_node::{BlockMinerThread, TipCandidate};
5856
use crate::run_loop::boot_nakamoto;
5957

testnet/stacks-node/src/neon_node.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,8 @@ use stacks::chainstate::stacks::{
187187
StacksMicroblock, StacksPublicKey, StacksTransaction, StacksTransactionSigner,
188188
TransactionAnchorMode, TransactionPayload, TransactionVersion,
189189
};
190+
use stacks::config::chain_data::MinerStats;
191+
use stacks::config::NodeConfig;
190192
use stacks::core::mempool::MemPoolDB;
191193
use stacks::core::{EpochList, FIRST_BURNCHAIN_CONSENSUS_HASH, STACKS_EPOCH_3_0_MARKER};
192194
use stacks::cost_estimates::metrics::{CostMetric, UnitMetric};
@@ -220,8 +222,6 @@ use crate::burnchains::bitcoin_regtest_controller::{
220222
addr2str, burnchain_params_from_config, BitcoinRegtestController, OngoingBlockCommit,
221223
};
222224
use crate::burnchains::{make_bitcoin_indexer, Error as BurnchainControllerError};
223-
use crate::chain_data::MinerStats;
224-
use crate::config::NodeConfig;
225225
use crate::globals::{NeonGlobals as Globals, RelayerDirective};
226226
use crate::nakamoto_node::signer_coordinator::SignerCoordinator;
227227
use crate::run_loop::neon::RunLoop;

testnet/stacks-node/src/tests/bitcoin_regtest.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ use stacks::chainstate::burn::operations::BlockstackOperationType::{
77
LeaderBlockCommit, LeaderKeyRegister,
88
};
99
use stacks::chainstate::stacks::StacksPrivateKey;
10+
use stacks::config::InitialBalance;
1011
use stacks::core::StacksEpochId;
1112
use stacks_common::util::hash::hex_bytes;
1213

1314
use super::PUBLISH_CONTRACT;
1415
use crate::burnchains::bitcoin_regtest_controller::BitcoinRPCRequest;
15-
use crate::config::InitialBalance;
1616
use crate::helium::RunLoop;
1717
use crate::tests::to_addr;
1818
use crate::Config;

0 commit comments

Comments
 (0)