From 3e89df4150051493abdb358e93cf998906c6bee0 Mon Sep 17 00:00:00 2001 From: moneromooo-monero Date: Mon, 26 Oct 2015 19:43:39 +0000 Subject: [PATCH] Build fixes for the old blockchain_storage version --- src/blockchain_utilities/blockchain_dump.cpp | 7 +++++-- src/cryptonote_core/blockchain_storage.cpp | 10 ++++++---- src/cryptonote_core/blockchain_storage.h | 4 ++-- tests/unit_tests/hardfork.cpp | 5 +++++ 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/blockchain_utilities/blockchain_dump.cpp b/src/blockchain_utilities/blockchain_dump.cpp index 4c3c09c4..ce028f66 100644 --- a/src/blockchain_utilities/blockchain_dump.cpp +++ b/src/blockchain_utilities/blockchain_dump.cpp @@ -162,7 +162,9 @@ int main(int argc, char* argv[]) LOG_PRINT_L0("Setting log level = " << log_level); bool opt_testnet = command_line::get_arg(vm, arg_testnet_on); +#if SOURCE_DB != DB_MEMORY bool opt_include_db_only_data = command_line::get_arg(vm, arg_include_db_only_data); +#endif std::string m_config_folder; @@ -271,7 +273,6 @@ int main(int argc, char* argv[]) start_struct(d,"blockchain"); uint64_t height = core_storage->get_current_blockchain_height(); write_pod(d, "height", height); -goto start; start_array(d,"blockids", true); for (uint64_t h = 0; h < height; ++h) write_pod(d,core_storage->get_block_id_by_height(h)); @@ -310,6 +311,7 @@ goto start; end_compound(d); } } + end_compound(d); start_struct(d,"blocks", true); { std::vector blockids; @@ -333,6 +335,7 @@ goto start; write_pod(d,key_images[n]); } end_compound(d); +#if SOURCE_DB != DB_MEMORY if (opt_include_db_only_data) { start_struct(d, "block_timestamps", true); @@ -386,7 +389,6 @@ goto start; catch (const OUTPUT_DNE &) { break; } } end_compound(d); -start: start_struct(d, "outputs_amounts", true); for (uint64_t base = 1; base <= (uint64_t)10000000000000000000ul; base *= 10) for (uint64_t digit = 1; digit <= 9; ++digit) { uint64_t amount = digit * base; @@ -417,6 +419,7 @@ start: write_pod(d, boost::lexical_cast(v), db->get_hard_fork_starting_height(v)); end_compound(d); } +#endif end_compound(d); CHECK_AND_ASSERT_MES(r, false, "Failed to dump blockchain"); diff --git a/src/cryptonote_core/blockchain_storage.cpp b/src/cryptonote_core/blockchain_storage.cpp index 6d2b33bd..fa63efe0 100644 --- a/src/cryptonote_core/blockchain_storage.cpp +++ b/src/cryptonote_core/blockchain_storage.cpp @@ -1900,19 +1900,21 @@ bool blockchain_storage::for_all_key_images(std::function f) const +bool blockchain_storage::for_all_blocks(std::function f) const { for (blocks_container::const_iterator i = m_blocks.begin(); i != m_blocks.end(); ++i) { - if (!f(i->height, i->bl)) + crypto::hash hash; + get_block_hash (i->bl, hash); + if (!f(i->height, hash, i->bl)) return false; } return true; } //------------------------------------------------------------------ -bool blockchain_storage::for_all_transactions(std::function f) const +bool blockchain_storage::for_all_transactions(std::function f) const { for (transactions_container::const_iterator i = m_transactions.begin(); i != m_transactions.end(); ++i) { - if (!f(i->second.tx)) + if (!f(i->first, i->second.tx)) return false; } return true; diff --git a/src/cryptonote_core/blockchain_storage.h b/src/cryptonote_core/blockchain_storage.h index 4a4fc14c..671cdadc 100644 --- a/src/cryptonote_core/blockchain_storage.h +++ b/src/cryptonote_core/blockchain_storage.h @@ -186,8 +186,8 @@ namespace cryptonote uint64_t get_block_coins_generated(uint64_t height) const { return m_blocks[height].already_generated_coins; } bool for_all_key_images(std::function) const; - bool for_all_blocks(std::function) const; - bool for_all_transactions(std::function) const; + bool for_all_blocks(std::function) const; + bool for_all_transactions(std::function) const; bool for_all_outputs(std::function) const; // use for testing only diff --git a/tests/unit_tests/hardfork.cpp b/tests/unit_tests/hardfork.cpp index 210c1959..5c58b3f4 100644 --- a/tests/unit_tests/hardfork.cpp +++ b/tests/unit_tests/hardfork.cpp @@ -98,6 +98,11 @@ public: virtual void add_spent_key(const crypto::key_image& k_image) {} virtual void remove_spent_key(const crypto::key_image& k_image) {} + virtual bool for_all_key_images(std::function) const { return true; } + virtual bool for_all_blocks(std::function) const { return true; } + virtual bool for_all_transactions(std::function) const { return true; } + virtual bool for_all_outputs(std::function f) const { return true; } + virtual void add_block( const block& blk , const size_t& block_size , const difficulty_type& cumulative_difficulty