diff --git a/console/executor.hpp b/console/executor.hpp index 43d19bbb..ec7c83d7 100644 --- a/console/executor.hpp +++ b/console/executor.hpp @@ -64,12 +64,12 @@ class executor void dump_version() const; void dump_hardware() const; void dump_options() const; + void dump_configuration() const; void dump_body_sizes() const; void dump_records() const; void dump_buckets() const; void dump_progress() const; void dump_collisions() const; - void dump_sizes() const; // Store functions. bool check_store_path(bool create=false) const; diff --git a/console/executor_commands.cpp b/console/executor_commands.cpp index 0de00e7c..027b3914 100644 --- a/console/executor_commands.cpp +++ b/console/executor_commands.cpp @@ -33,7 +33,7 @@ const std::string executor::name_{ "bs" }; bool executor::do_help() { log_.stop(); - printer help(metadata_.load_options(), name_, BS_INFORMATION_MESSAGE); + printer help(metadata_.load_options(), name_, BS_DETAIL_MESSAGE); help.initialize(); help.commandline(output_); return true; @@ -124,7 +124,14 @@ bool executor::do_information() !open_store()) return false; - dump_sizes(); + dump_body_sizes(); + dump_records(); + dump_buckets(); + dump_collisions(); + + // This one can take a few seconds on cold iron. + logger(BS_INFORMATION_PROGRESS_START); + dump_progress(); return close_store(); } diff --git a/console/executor_dumps.cpp b/console/executor_dumps.cpp index 19ed2d58..2bcd2e9c 100644 --- a/console/executor_dumps.cpp +++ b/console/executor_dumps.cpp @@ -75,9 +75,17 @@ void executor::dump_options() const logger(format("[v]erbose...... " BS_LOG_TABLE) % levels::verbose_defined % toggle_.at(levels::verbose)); } +// query_ not valid unless store is loaded. +void executor::dump_configuration() const +{ + logger(format(BS_INFORMATION_START) + % store_.is_dirty() + % query_.interval_span()); +} + void executor::dump_body_sizes() const { - logger(format(BS_MEASURE_SIZES) % + logger(format(BS_INFORMATION_SIZES) % query_.header_body_size() % query_.txs_body_size() % query_.tx_body_size() % @@ -100,7 +108,7 @@ void executor::dump_body_sizes() const void executor::dump_records() const { - logger(format(BS_MEASURE_RECORDS) % + logger(format(BS_INFORMATION_RECORDS) % query_.header_records() % query_.tx_records() % query_.point_records() % @@ -116,7 +124,7 @@ void executor::dump_records() const void executor::dump_buckets() const { - logger(format(BS_MEASURE_BUCKETS) % + logger(format(BS_INFORMATION_BUCKETS) % query_.header_buckets() % query_.txs_buckets() % query_.tx_buckets() % @@ -133,7 +141,7 @@ void executor::dump_buckets() const void executor::dump_collisions() const { - logger(format(BS_MEASURE_COLLISION_RATES) % + logger(format(BS_INFORMATION_COLLISION_RATES) % (to_double(query_.header_records()) / query_.header_buckets()) % (to_double(query_.tx_records()) / query_.tx_buckets()) % (to_double(query_.point_records()) / query_.point_buckets()) % @@ -147,7 +155,7 @@ void executor::dump_progress() const { using namespace system; - logger(format(BS_MEASURE_PROGRESS) % + logger(format(BS_INFORMATION_PROGRESS) % query_.get_fork() % query_.get_top_confirmed() % encode_hash(query_.get_top_confirmed_hash()) % @@ -159,18 +167,5 @@ void executor::dump_progress() const query_.get_candidate_size()); } -// file and logical sizes. -void executor::dump_sizes() const -{ - dump_body_sizes(); - dump_records(); - dump_buckets(); - dump_collisions(); - - // This one can take a few seconds on cold iron. - logger(BS_MEASURE_PROGRESS_START); - dump_progress(); -} - } // namespace server } // namespace libbitcoin diff --git a/console/executor_options.cpp b/console/executor_options.cpp index cb4dea2f..ca7dadbd 100644 --- a/console/executor_options.cpp +++ b/console/executor_options.cpp @@ -176,11 +176,11 @@ void executor::do_resume() // [i]nfo void executor::do_info() const { + dump_configuration(); dump_body_sizes(); dump_records(); dump_buckets(); dump_collisions(); - ////dump_progress(); } // [m]enu diff --git a/console/executor_runner.cpp b/console/executor_runner.cpp index 2f25b2c6..c3f31ed7 100644 --- a/console/executor_runner.cpp +++ b/console/executor_runner.cpp @@ -140,7 +140,7 @@ bool executor::do_run() dump_body_sizes(); dump_records(); dump_buckets(); - ////logger(BS_MEASURE_PROGRESS_START); + ////logger(BS_INFORMATION_PROGRESS_START); ////dump_progress(); // Stopped by stopper. @@ -173,7 +173,7 @@ bool executor::do_run() // Sizes and records change, buckets don't. dump_body_sizes(); dump_records(); - ////logger(BS_MEASURE_PROGRESS_START); + ////logger(BS_INFORMATION_PROGRESS_START); ////dump_progress(); if (!close_store(true)) diff --git a/console/executor_scans.cpp b/console/executor_scans.cpp index edf634b1..0c565293 100644 --- a/console/executor_scans.cpp +++ b/console/executor_scans.cpp @@ -76,7 +76,7 @@ void executor::scan_flags() const // input and output table slab counts. void executor::scan_slabs() const { - logger(BS_MEASURE_SLABS); + logger(BS_INFORMATION_SLABS); logger(BS_OPERATION_INTERRUPT); database::tx_link::integer link{}; size_t inputs{}, outputs{}; @@ -92,14 +92,14 @@ void executor::scan_slabs() const inputs += puts.first; outputs += puts.second; if (is_zero(link % frequency)) - logger(format(BS_MEASURE_SLABS_ROW) % link % inputs % outputs); + logger(format(BS_INFORMATION_SLABS_ROW) % link % inputs % outputs); } if (canceled()) logger(BS_OPERATION_CANCELED); const auto span = duration_cast(logger::now() - start); - logger(format(BS_MEASURE_STOP) % inputs % outputs % span.count()); + logger(format(BS_INFORMATION_STOP) % inputs % outputs % span.count()); } // hashmap bucket fill rates. diff --git a/console/executor_store.cpp b/console/executor_store.cpp index eedf684b..542c5572 100644 --- a/console/executor_store.cpp +++ b/console/executor_store.cpp @@ -113,7 +113,7 @@ code executor::open_store_coded(bool details) return ec; } - logger(store_.is_dirty() ? BS_DATABASE_STARTED_DIRTY : BS_DATABASE_STARTED); + logger(BS_DATABASE_STARTED); return error::success; } diff --git a/console/localize.hpp b/console/localize.hpp index d3e0eac4..db6725fc 100644 --- a/console/localize.hpp +++ b/console/localize.hpp @@ -32,7 +32,7 @@ // --settings #define BS_SETTINGS_MESSAGE \ "These are the configuration settings that can be set." -#define BS_INFORMATION_MESSAGE \ +#define BS_DETAIL_MESSAGE \ "Runs a full bitcoin node server." // --initchain @@ -67,8 +67,12 @@ #define BS_RESTORE_COMPLETE \ "Restored the database in %1% secs." -// --measure -#define BS_MEASURE_SIZES \ +// --information +#define BS_INFORMATION_START \ + "Configuration...\n" \ + " dirty :%1%\n" \ + " interval :%2%" +#define BS_INFORMATION_SIZES \ "Body sizes...\n" \ " header :%1%\n" \ " txs :%2%\n" \ @@ -88,7 +92,7 @@ " filter_bk :%16%\n" \ " filter_tx :%17%\n" \ " address :%18%" -#define BS_MEASURE_RECORDS \ +#define BS_INFORMATION_RECORDS \ "Table records...\n" \ " header :%1%\n" \ " tx :%2%\n" \ @@ -101,15 +105,15 @@ " strong_tx :%9%\n" \ " filter_bk :%10%\n" \ " address :%11%" -#define BS_MEASURE_SLABS \ +#define BS_INFORMATION_SLABS \ "Table slabs..." -#define BS_MEASURE_SLABS_ROW \ +#define BS_INFORMATION_SLABS_ROW \ " @tx :%1%, inputs:%2%, outputs:%3%" -#define BS_MEASURE_STOP \ +#define BS_INFORMATION_STOP \ " input :%1%\n" \ " output :%2%\n" \ " seconds :%3%" -#define BS_MEASURE_BUCKETS \ +#define BS_INFORMATION_BUCKETS \ "Head buckets...\n" \ " header :%1%\n" \ " txs :%2%\n" \ @@ -123,7 +127,7 @@ " filter_bk :%10%\n" \ " filter_tx :%11%\n" \ " address :%12%" -#define BS_MEASURE_COLLISION_RATES \ +#define BS_INFORMATION_COLLISION_RATES \ "Collision rates...\n" \ " header :%1%\n" \ " tx :%2%\n" \ @@ -131,9 +135,9 @@ " strong_tx :%4%\n" \ " valid_tx :%5%\n" \ " address :%6%" -#define BS_MEASURE_PROGRESS_START \ +#define BS_INFORMATION_PROGRESS_START \ "Thinking..." -#define BS_MEASURE_PROGRESS \ +#define BS_INFORMATION_PROGRESS \ "Chain progress...\n" \ " fork pt :%1%\n" \ " top conf :%2%:%3%\n" \ @@ -171,9 +175,7 @@ #define BS_NODE_INTERRUPT \ "Press CTRL-C to stop the node." #define BS_DATABASE_STARTED \ - "Database is started (clean)." -#define BS_DATABASE_STARTED_DIRTY \ - "Database is started (dirty)." + "Database is started." #define BS_NETWORK_STARTING \ "Please wait while network is starting..." #define BS_NODE_START_FAIL \ diff --git a/src/protocols/protocol_electrum.cpp b/src/protocols/protocol_electrum.cpp index 59c37d08..b17d54af 100644 --- a/src/protocols/protocol_electrum.cpp +++ b/src/protocols/protocol_electrum.cpp @@ -230,7 +230,7 @@ void protocol_electrum::handle_blockchain_block_headers(const code& ec, { object_t { - { "count", quantity }, + { "count", uint64_t{ quantity } }, { "headers", std::move(headers) }, { "max", maximum } } @@ -296,7 +296,7 @@ void protocol_electrum::handle_blockchain_headers_subscribe(const code& ec, { object_t { - { "height", top }, + { "height", uint64_t{ top } }, { "hex", to_hex(*header, chain::header::serialized_size()) } } }, 256, BIND(complete, _1));