Initializing sideband when creating constants, rather than elsewhere.
This commit is contained in:
parent
3bc420c0a6
commit
1ac9679204
3 changed files with 14 additions and 19 deletions
|
@ -80,19 +80,10 @@ char const * live_canary_public_key_data = "7CBAF192A3763DAEC9F9BAC1B2CDF665D836
|
|||
std::string const test_canary_public_key_data = nano::get_env_or_default ("NANO_TEST_CANARY_PUB", "3BAD2C554ACE05F5E528FBBCE79D51E552C55FA765CCFD89B289C4835DE5F04A"); // nano_1gxf7jcnomi7yqkkjyxwwygo5sckrohtgsgezp6u74g6ifgydw4cajwbk8bf
|
||||
}
|
||||
|
||||
nano::ledger_constants nano::dev::constants{ nano::networks::nano_dev_network };
|
||||
std::shared_ptr<nano::block> & nano::dev::genesis = nano::dev::constants.genesis;
|
||||
nano::keypair nano::dev::genesis_key{ dev_private_key_data };
|
||||
nano::uint128_t nano::dev::genesis_amount{ std::numeric_limits<nano::uint128_t>::max () };
|
||||
namespace {
|
||||
struct genesis_sideband_initializer {
|
||||
genesis_sideband_initializer ()
|
||||
{
|
||||
nano::dev::genesis->sideband_set (nano::block_sideband (nano::dev::genesis->account (), 0, nano::dev::genesis_amount, 1, nano::seconds_since_epoch (), nano::epoch::epoch_0, false, false, false, nano::epoch::epoch_0));
|
||||
}
|
||||
};
|
||||
genesis_sideband_initializer initializer;
|
||||
}
|
||||
nano::ledger_constants nano::dev::constants{ nano::networks::nano_dev_network };
|
||||
std::shared_ptr<nano::block> & nano::dev::genesis = nano::dev::constants.genesis;
|
||||
|
||||
nano::network_params::network_params () :
|
||||
network_params (network_constants::active_network)
|
||||
|
@ -139,6 +130,11 @@ nano::ledger_constants::ledger_constants (nano::networks network_a) :
|
|||
nano_test_final_votes_canary_height (1),
|
||||
final_votes_canary_height (network_a == nano::networks::nano_dev_network ? nano_dev_final_votes_canary_height : network_a == nano::networks::nano_beta_network ? nano_beta_final_votes_canary_height : network_a == nano::networks::nano_test_network ? nano_test_final_votes_canary_height : nano_live_final_votes_canary_height)
|
||||
{
|
||||
nano_beta_genesis->sideband_set (nano::block_sideband (nano_beta_genesis->account (), 0, nano::dev::genesis_amount, 1, nano::seconds_since_epoch (), nano::epoch::epoch_0, false, false, false, nano::epoch::epoch_0));
|
||||
nano_dev_genesis->sideband_set (nano::block_sideband (nano_dev_genesis->account (), 0, nano::dev::genesis_amount, 1, nano::seconds_since_epoch (), nano::epoch::epoch_0, false, false, false, nano::epoch::epoch_0));
|
||||
nano_live_genesis->sideband_set (nano::block_sideband (nano_live_genesis->account (), 0, nano::dev::genesis_amount, 1, nano::seconds_since_epoch (), nano::epoch::epoch_0, false, false, false, nano::epoch::epoch_0));
|
||||
nano_test_genesis->sideband_set (nano::block_sideband (nano_test_genesis->account (), 0, nano::dev::genesis_amount, 1, nano::seconds_since_epoch (), nano::epoch::epoch_0, false, false, false, nano::epoch::epoch_0));
|
||||
|
||||
nano::link epoch_link_v1;
|
||||
const char * epoch_message_v1 ("epoch v1 block");
|
||||
strncpy ((char *)epoch_link_v1.bytes.data (), epoch_message_v1, epoch_link_v1.bytes.size ());
|
||||
|
|
|
@ -395,10 +395,10 @@ public:
|
|||
|
||||
namespace dev
|
||||
{
|
||||
extern nano::ledger_constants constants;
|
||||
extern std::shared_ptr<nano::block> & genesis;
|
||||
extern nano::keypair genesis_key;
|
||||
extern nano::uint128_t genesis_amount;
|
||||
extern nano::ledger_constants constants;
|
||||
extern std::shared_ptr<nano::block> & genesis;
|
||||
}
|
||||
|
||||
/** Constants which depend on random values (this class should never be used globally due to CryptoPP globals potentially not being initialized) */
|
||||
|
|
|
@ -105,16 +105,15 @@ public:
|
|||
*/
|
||||
void initialize (nano::write_transaction const & transaction_a, nano::ledger_cache & ledger_cache_a) override
|
||||
{
|
||||
auto & genesis = *network_params.ledger.genesis;
|
||||
auto hash_l (genesis.hash ());
|
||||
debug_assert (network_params.ledger.genesis->has_sideband ());
|
||||
debug_assert (account.begin (transaction_a) == account.end ());
|
||||
genesis.sideband_set (nano::block_sideband (network_params.ledger.genesis_account (), 0, nano::dev::genesis_amount, 1, nano::seconds_since_epoch (), nano::epoch::epoch_0, false, false, false, nano::epoch::epoch_0));
|
||||
block.put (transaction_a, hash_l, genesis);
|
||||
auto hash_l (network_params.ledger.genesis->hash ());
|
||||
block.put (transaction_a, hash_l, *network_params.ledger.genesis);
|
||||
++ledger_cache_a.block_count;
|
||||
confirmation_height.put (transaction_a, network_params.ledger.genesis_account (), nano::confirmation_height_info{ 1, genesis.hash () });
|
||||
confirmation_height.put (transaction_a, network_params.ledger.genesis_account (), nano::confirmation_height_info{ 1, network_params.ledger.genesis->hash () });
|
||||
++ledger_cache_a.cemented_count;
|
||||
ledger_cache_a.final_votes_confirmation_canary = (network_params.ledger.final_votes_canary_account == network_params.ledger.genesis_account () && 1 >= network_params.ledger.final_votes_canary_height);
|
||||
account.put (transaction_a, network_params.ledger.genesis_account (), { hash_l, network_params.ledger.genesis_account (), genesis.hash (), std::numeric_limits<nano::uint128_t>::max (), nano::seconds_since_epoch (), 1, nano::epoch::epoch_0 });
|
||||
account.put (transaction_a, network_params.ledger.genesis_account (), { hash_l, network_params.ledger.genesis_account (), network_params.ledger.genesis->hash (), std::numeric_limits<nano::uint128_t>::max (), nano::seconds_since_epoch (), 1, nano::epoch::epoch_0 });
|
||||
++ledger_cache_a.account_count;
|
||||
ledger_cache_a.rep_weights.representation_put (network_params.ledger.genesis_account (), std::numeric_limits<nano::uint128_t>::max ());
|
||||
frontier.put (transaction_a, hash_l, network_params.ledger.genesis_account ());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue