Skip to content

Commit

Permalink
blockchain_storage: refactor genesis block creation
Browse files Browse the repository at this point in the history
The existing assert is kept as it is stricter than the function's
internal assert.
  • Loading branch information
moneromooo-monero authored and warptangent committed Jan 5, 2015
1 parent 8e41b1e commit a3157d7
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 16 deletions.
20 changes: 5 additions & 15 deletions src/cryptonote_core/blockchain_storage.cpp
Expand Up @@ -113,24 +113,14 @@ bool blockchain_storage::init(const std::string& config_folder, bool testnet)
else
{
LOG_PRINT_L0("Can't load blockchain storage from file, generating genesis block.");
block bl = boost::value_initialized<block>();
block_verification_context bvc = boost::value_initialized<block_verification_context>();
if (testnet)
{
generate_genesis_block(bl, config::testnet::GENESIS_TX, config::testnet::GENESIS_NONCE);
}
else
{
generate_genesis_block(bl, config::GENESIS_TX, config::GENESIS_NONCE);
}
add_new_block(bl, bvc);
CHECK_AND_ASSERT_MES(!bvc.m_verifivation_failed && bvc.m_added_to_main_chain, false, "Failed to add genesis block to blockchain");
if (!store_genesis_block(testnet, true))
return false;
}
if(!m_blocks.size())
{
LOG_PRINT_L0("Blockchain not loaded, generating genesis block.");

if (!store_genesis_block(testnet)) {
if (!store_genesis_block(testnet, false)) {
return false;
}
} else {
Expand Down Expand Up @@ -159,7 +149,7 @@ bool blockchain_storage::init(const std::string& config_folder, bool testnet)
return true;
}
//------------------------------------------------------------------
bool blockchain_storage::store_genesis_block(bool testnet) {
bool blockchain_storage::store_genesis_block(bool testnet, bool check_added) {
block bl = ::boost::value_initialized<block>();
block_verification_context bvc = boost::value_initialized<block_verification_context>();

Expand All @@ -173,7 +163,7 @@ bool blockchain_storage::store_genesis_block(bool testnet) {
}

add_new_block(bl, bvc);
CHECK_AND_ASSERT_MES(!bvc.m_verifivation_failed, false, "Failed to add genesis block to blockchain");
CHECK_AND_ASSERT_MES(!bvc.m_verifivation_failed && (bvc.m_added_to_main_chain || !check_added), false, "Failed to add genesis block to blockchain");
return true;
}
//------------------------------------------------------------------
Expand Down
2 changes: 1 addition & 1 deletion src/cryptonote_core/blockchain_storage.h
Expand Up @@ -252,7 +252,7 @@ namespace cryptonote
uint64_t get_adjusted_time() const;
bool complete_timestamps_vector(uint64_t start_height, std::vector<uint64_t>& timestamps) const;
bool update_next_comulative_size_limit();
bool store_genesis_block(bool testnet);
bool store_genesis_block(bool testnet, bool check_added = false);
};


Expand Down

0 comments on commit a3157d7

Please sign in to comment.