Tweaks circa genesis, should not affect behavior
This commit is contained in:
parent
6ab59f63a7
commit
c00e20268d
2 changed files with 14 additions and 12 deletions
|
|
@ -140,6 +140,8 @@ void database::init_genesis(const genesis_state_type& genesis_state)
|
|||
{ try {
|
||||
FC_ASSERT(genesis_state.initial_witness_candidates.size() > 0,
|
||||
"Cannot start a chain with zero witnesses.");
|
||||
FC_ASSERT(genesis_state.initial_active_witnesses <= genesis_state.initial_witness_candidates.size(),
|
||||
"initial_active_witnesses is larger than the number of candidate witnesses.");
|
||||
|
||||
_undo_db.disable();
|
||||
struct auth_inhibitor {
|
||||
|
|
@ -273,6 +275,7 @@ void database::init_genesis(const genesis_state_type& genesis_state)
|
|||
}
|
||||
}
|
||||
|
||||
// Helper function to get account ID by name
|
||||
const auto& accounts_by_name = get_index_type<account_index>().indices().get<by_name>();
|
||||
auto get_account_id = [&accounts_by_name](const string& name) {
|
||||
auto itr = accounts_by_name.find(name);
|
||||
|
|
@ -282,7 +285,7 @@ void database::init_genesis(const genesis_state_type& genesis_state)
|
|||
return itr->get_id();
|
||||
};
|
||||
|
||||
// Create initial assets
|
||||
// Helper function to get asset ID by symbol
|
||||
const auto& assets_by_symbol = get_index_type<asset_index>().indices().get<by_symbol>();
|
||||
auto get_asset_id = [&assets_by_symbol](const string& symbol) {
|
||||
auto itr = assets_by_symbol.find(symbol);
|
||||
|
|
@ -292,6 +295,7 @@ void database::init_genesis(const genesis_state_type& genesis_state)
|
|||
return itr->get_id();
|
||||
};
|
||||
|
||||
// Create initial assets
|
||||
for( const genesis_state_type::initial_asset_type& asset : genesis_state.initial_assets )
|
||||
{
|
||||
asset_dynamic_data_id_type dynamic_data_id;
|
||||
|
|
@ -400,12 +404,11 @@ void database::init_genesis(const genesis_state_type& genesis_state)
|
|||
// Create initial witnesses and delegates
|
||||
std::for_each(genesis_state.initial_witness_candidates.begin(), genesis_state.initial_witness_candidates.end(),
|
||||
[&](const genesis_state_type::initial_witness_type& witness) {
|
||||
|
||||
witness_create_operation op;
|
||||
op.block_signing_key = witness.block_signing_key;
|
||||
op.initial_secret = witness.initial_secret;
|
||||
op.witness_account = get_account_id(witness.owner_name);
|
||||
apply_operation(genesis_eval_state, op).get<object_id_type>();
|
||||
apply_operation(genesis_eval_state, op);
|
||||
});
|
||||
std::for_each(genesis_state.initial_committee_candidates.begin(), genesis_state.initial_committee_candidates.end(),
|
||||
[&](const genesis_state_type::initial_committee_member_type& member) {
|
||||
|
|
@ -439,10 +442,10 @@ void database::init_genesis(const genesis_state_type& genesis_state)
|
|||
auto init_witnesses = get_global_properties().active_witnesses;
|
||||
|
||||
_wso.scheduler = witness_scheduler();
|
||||
_wso.scheduler._min_token_count = init_witnesses.size() / 2;
|
||||
_wso.scheduler._min_token_count = std::max(int(init_witnesses.size()) / 2, 1);
|
||||
_wso.scheduler.update(init_witnesses);
|
||||
|
||||
for( size_t i=0; i<init_witnesses.size(); i++ )
|
||||
for( size_t i=0; i<init_witnesses.size(); ++i )
|
||||
_wso.scheduler.produce_schedule(rng);
|
||||
|
||||
_wso.last_scheduling_block = 0;
|
||||
|
|
|
|||
|
|
@ -143,16 +143,16 @@ void database::update_active_witnesses()
|
|||
a.active.weight_threshold += 1;
|
||||
});
|
||||
|
||||
modify( gpo, [&]( global_property_object& gp ){
|
||||
modify(gpo, [&]( global_property_object& gp ){
|
||||
gp.active_witnesses.clear();
|
||||
gp.active_witnesses.reserve( wits.size() );
|
||||
gp.active_witnesses.reserve(wits.size());
|
||||
std::transform(wits.begin(), wits.end(),
|
||||
std::inserter(gp.active_witnesses, gp.active_witnesses.end()),
|
||||
[](const witness_object& w) {
|
||||
return w.id;
|
||||
});
|
||||
gp.witness_accounts.clear();
|
||||
gp.witness_accounts.reserve( wits.size() );
|
||||
gp.witness_accounts.reserve(wits.size());
|
||||
std::transform(wits.begin(), wits.end(),
|
||||
std::inserter(gp.witness_accounts, gp.witness_accounts.end()),
|
||||
[](const witness_object& w) {
|
||||
|
|
@ -161,11 +161,10 @@ void database::update_active_witnesses()
|
|||
});
|
||||
|
||||
const witness_schedule_object& wso = witness_schedule_id_type()(*this);
|
||||
modify( wso, [&]( witness_schedule_object& _wso )
|
||||
modify(wso, [&](witness_schedule_object& _wso)
|
||||
{
|
||||
_wso.scheduler.update( gpo.active_witnesses );
|
||||
} );
|
||||
|
||||
_wso.scheduler.update(gpo.active_witnesses);
|
||||
});
|
||||
} FC_CAPTURE_AND_RETHROW() }
|
||||
|
||||
void database::update_active_delegates()
|
||||
|
|
|
|||
Loading…
Reference in a new issue