chore: plumb changes into testnet/

This commit is contained in:
Aaron Blankstein
2021-06-04 12:21:31 -05:00
parent 44b6af18d8
commit 10d8ee4676
5 changed files with 46 additions and 26 deletions

View File

@@ -99,6 +99,7 @@ impl BurnchainController for MocknetController {
start_height: 0,
end_height: STACKS_EPOCH_MAX,
}],
self.burnchain.pox_constants.clone(),
true,
) {
Ok(db) => db,

View File

@@ -11,8 +11,8 @@ use std::sync::{
};
use std::{thread, thread::JoinHandle};
use stacks::burnchains::BurnchainSigner;
use stacks::burnchains::{Burnchain, BurnchainParameters, Txid};
use stacks::burnchains::{BurnchainSigner, PoxConstants};
use stacks::chainstate::burn::db::sortdb::SortitionDB;
use stacks::chainstate::burn::operations::{
leader_block_commit::{RewardSetInfo, BURN_BLOCK_MINED_AT_MODULUS},
@@ -577,6 +577,7 @@ fn spawn_peer(
p2p_sock: &SocketAddr,
rpc_sock: &SocketAddr,
config: Config,
pox_constants: PoxConstants,
poll_timeout: u64,
relay_channel: SyncSender<RelayerDirective>,
mut sync_comms: PoxSyncWatchdogComms,
@@ -592,7 +593,8 @@ fn spawn_peer(
this.bind(p2p_sock, rpc_sock).unwrap();
let (mut dns_resolver, mut dns_client) = DNSResolver::new(10);
let sortdb = SortitionDB::open(&burn_db_path, false).map_err(NetError::DBError)?;
let sortdb =
SortitionDB::open(&burn_db_path, false, pox_constants).map_err(NetError::DBError)?;
let (mut chainstate, _) = StacksChainState::open_with_block_limit(
is_mainnet,
@@ -777,7 +779,8 @@ fn spawn_miner_relayer(
// the relayer _should not_ be modifying the sortdb,
// however, it needs a mut reference to create read TXs.
// should address via #1449
let mut sortdb = SortitionDB::open(&burn_db_path, true).map_err(NetError::DBError)?;
let mut sortdb = SortitionDB::open(&burn_db_path, true, burnchain.pox_constants.clone())
.map_err(NetError::DBError)?;
let (mut chainstate, _) = StacksChainState::open_with_block_limit(
is_mainnet,
@@ -1095,8 +1098,12 @@ impl InitializedNeonNode {
) -> InitializedNeonNode {
// we can call _open_ here rather than _connect_, since connect is first called in
// make_genesis_block
let sortdb = SortitionDB::open(&config.get_burn_db_file_path(), false)
.expect("Error while instantiating sortition db");
let sortdb = SortitionDB::open(
&config.get_burn_db_file_path(),
false,
burnchain.pox_constants.clone(),
)
.expect("Error while instantiating sortition db");
let view = {
let sortition_tip = SortitionDB::get_canonical_burn_chain_tip(&sortdb.conn())
@@ -1260,7 +1267,7 @@ impl InitializedNeonNode {
event_dispatcher.clone(),
blocks_processed.clone(),
microblocks_processed.clone(),
burnchain,
burnchain.clone(),
coord_comms,
shared_unconfirmed_txs.clone(),
)
@@ -1272,6 +1279,7 @@ impl InitializedNeonNode {
&p2p_sock,
&rpc_sock,
config.clone(),
burnchain.pox_constants,
5000,
relay_send.clone(),
sync_comms,

View File

@@ -6,10 +6,6 @@ use std::sync::{atomic::AtomicBool, Arc};
use std::{collections::HashSet, env};
use std::{thread, thread::JoinHandle, time};
use stacks::chainstate::burn::operations::{
leader_block_commit::{RewardSetInfo, BURN_BLOCK_MINED_AT_MODULUS},
BlockstackOperationType, LeaderBlockCommitOp, LeaderKeyRegisterOp,
};
use stacks::chainstate::burn::ConsensusHash;
use stacks::chainstate::stacks::db::{
ChainStateBootData, ClarityTx, StacksChainState, StacksHeaderInfo,
@@ -40,6 +36,13 @@ use stacks::util::hash::Sha256Sum;
use stacks::util::secp256k1::Secp256k1PrivateKey;
use stacks::util::strings::UrlString;
use stacks::util::vrf::VRFPublicKey;
use stacks::{
burnchains::PoxConstants,
chainstate::burn::operations::{
leader_block_commit::{RewardSetInfo, BURN_BLOCK_MINED_AT_MODULUS},
BlockstackOperationType, LeaderBlockCommitOp, LeaderKeyRegisterOp,
},
};
use stacks::{
burnchains::{Burnchain, Txid},
chainstate::stacks::db::{
@@ -159,6 +162,7 @@ fn spawn_peer(
rpc_sock: &SocketAddr,
burn_db_path: String,
stacks_chainstate_path: String,
pox_consts: PoxConstants,
event_dispatcher: EventDispatcher,
exit_at_block_height: Option<u64>,
genesis_chainstate_hash: Sha256Sum,
@@ -174,7 +178,7 @@ fn spawn_peer(
};
loop {
let sortdb = match SortitionDB::open(&burn_db_path, false) {
let sortdb = match SortitionDB::open(&burn_db_path, false, pox_consts.clone()) {
Ok(x) => x,
Err(e) => {
warn!("Error while connecting burnchain db in peer loop: {}", e);
@@ -377,9 +381,10 @@ impl Node {
node.spawn_peer_server(attachments_rx);
let pox_constants = burnchain_controller.sortdb_ref().pox_constants.clone();
loop {
let sortdb =
SortitionDB::open(&sortdb_path, false).expect("BUG: failed to open burn database");
let sortdb = SortitionDB::open(&sortdb_path, false, pox_constants.clone())
.expect("BUG: failed to open burn database");
if let Ok(Some(ref chain_tip)) = node.chain_state.get_stacks_chain_tip(&sortdb) {
if chain_tip.consensus_hash == burnchain_tip.block_snapshot.consensus_hash {
info!("Syncing Stacks blocks - completed");
@@ -401,11 +406,15 @@ impl Node {
pub fn spawn_peer_server(&mut self, attachments_rx: Receiver<HashSet<AttachmentInstance>>) {
// we can call _open_ here rather than _connect_, since connect is first called in
// make_genesis_block
let sortdb = SortitionDB::open(&self.config.get_burn_db_file_path(), true)
.expect("Error while instantiating burnchain db");
let burnchain = Burnchain::regtest(&self.config.get_burn_db_path());
let sortdb = SortitionDB::open(
&self.config.get_burn_db_file_path(),
true,
burnchain.pox_constants.clone(),
)
.expect("Error while instantiating burnchain db");
let view = {
let sortition_tip = SortitionDB::get_canonical_burn_chain_tip(&sortdb.conn())
.expect("Failed to get sortition tip");
@@ -493,7 +502,7 @@ impl Node {
atlasdb,
local_peer,
self.config.burnchain.peer_version,
burnchain,
burnchain.clone(),
view,
self.config.connection_options.clone(),
);
@@ -505,6 +514,7 @@ impl Node {
&rpc_sock,
self.config.get_burn_db_file_path(),
self.config.get_chainstate_path_str(),
burnchain.pox_constants,
event_dispatcher,
exit_at_block_height,
Sha256Sum::from_hex(stx_genesis::GENESIS_CHAINSTATE_HASH).unwrap(),

View File

@@ -975,7 +975,7 @@ fn contract_stx_transfer() {
db.get_account_stx_balance(
&contract_identifier.clone().into(),
)
.amount_unlocked
.amount_unlocked()
})
}
)
@@ -992,7 +992,7 @@ fn contract_stx_transfer() {
&StacksBlockHeader::make_index_block_hash(&cur_tip.0, &cur_tip.1),
|conn| {
conn.with_clarity_db_readonly(|db| {
db.get_account_stx_balance(&addr_3).amount_unlocked
db.get_account_stx_balance(&addr_3).amount_unlocked()
})
}
)
@@ -1026,7 +1026,7 @@ fn contract_stx_transfer() {
&StacksBlockHeader::make_index_block_hash(&cur_tip.0, &cur_tip.1),
|conn| {
conn.with_clarity_db_readonly(|db| {
db.get_account_stx_balance(&addr_2).amount_unlocked
db.get_account_stx_balance(&addr_2).amount_unlocked()
})
}
)
@@ -1044,7 +1044,7 @@ fn contract_stx_transfer() {
db.get_account_stx_balance(
&contract_identifier.clone().into(),
)
.amount_unlocked
.amount_unlocked()
})
}
)
@@ -1076,7 +1076,7 @@ fn contract_stx_transfer() {
db.get_account_stx_balance(
&contract_identifier.clone().into(),
)
.amount_unlocked
.amount_unlocked()
})
}
)
@@ -1093,7 +1093,7 @@ fn contract_stx_transfer() {
&StacksBlockHeader::make_index_block_hash(&cur_tip.0, &cur_tip.1),
|conn| {
conn.with_clarity_db_readonly(|db| {
db.get_account_stx_balance(&addr_3).amount_unlocked
db.get_account_stx_balance(&addr_3).amount_unlocked()
})
}
)
@@ -1233,7 +1233,7 @@ fn mine_transactions_out_of_order() {
db.get_account_stx_balance(
&contract_identifier.clone().into(),
)
.amount_unlocked
.amount_unlocked()
})
}
)
@@ -1448,7 +1448,7 @@ fn bad_contract_tx_rollback() {
db.get_account_stx_balance(
&contract_identifier.clone().into(),
)
.amount_unlocked
.amount_unlocked()
})
}
)
@@ -1465,7 +1465,7 @@ fn bad_contract_tx_rollback() {
&StacksBlockHeader::make_index_block_hash(&cur_tip.0, &cur_tip.1),
|conn| {
conn.with_clarity_db_readonly(|db| {
db.get_account_stx_balance(&addr_3).amount_unlocked
db.get_account_stx_balance(&addr_3).amount_unlocked()
})
}
)

View File

@@ -3252,6 +3252,7 @@ fn pox_integration_test() {
15,
(16 * reward_cycle_len - 1).into(),
(17 * reward_cycle_len).into(),
u32::max_value(),
);
burnchain_config.pox_constants = pox_constants.clone();