From cbfa1612b7eb9ad7088e9778006283197880d7d8 Mon Sep 17 00:00:00 2001 From: "cr.zoidberg" Date: Tue, 14 May 2019 04:25:14 +0200 Subject: [PATCH 1/4] removed unused code --- src/currency_core/blockchain_storage.cpp | 25 ------------------------ 1 file changed, 25 deletions(-) diff --git a/src/currency_core/blockchain_storage.cpp b/src/currency_core/blockchain_storage.cpp index 3db594ca..f88d60c6 100644 --- a/src/currency_core/blockchain_storage.cpp +++ b/src/currency_core/blockchain_storage.cpp @@ -2213,31 +2213,6 @@ bool blockchain_storage::is_multisig_output_spent(const crypto::hash& multisig_i return source_tx_ptr->m_spent_flags[ms_out_index]; } //------------------------------------------------------------------ -// bool blockchain_storage::resync_spent_tx_flags() -// { -// LOG_PRINT_L0("Started re-building spent tx outputs data..."); -// CRITICAL_REGION_LOCAL(m_blockchain_lock); -// for(auto& tx: m_db_transactions) -// { -// if(is_coinbase(tx.second.tx)) -// continue; -// -// for(auto& in: tx.second.tx.vin) -// { -// CHECKED_GET_SPECIFIC_VARIANT(in, txin_to_key, in_to_key, false); -// if(in_to_key.key_offsets.size() != 1) -// continue; -// -// //direct spending -// if(!update_spent_tx_flags_for_input(in_to_key.amount, in_to_key.key_offsets[0], true)) -// return false; -// -// } -// } -// LOG_PRINT_L0("Finished re-building spent tx outputs data"); -// return true; -// } -//------------------------------------------------------------------ bool blockchain_storage::find_blockchain_supplement(const std::list& qblock_ids, uint64_t& starter_offset)const { CRITICAL_REGION_LOCAL(m_read_lock); From 19c52a8344881ad052532db20a8a5e7e4d3a1185 Mon Sep 17 00:00:00 2001 From: sowle Date: Tue, 14 May 2019 19:01:45 +0200 Subject: [PATCH 2/4] conn_tool minor improvement --- src/connectivity_tool/conn_tool.cpp | 33 +++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/src/connectivity_tool/conn_tool.cpp b/src/connectivity_tool/conn_tool.cpp index 98f2a53f..ff528e48 100644 --- a/src/connectivity_tool/conn_tool.cpp +++ b/src/connectivity_tool/conn_tool.cpp @@ -55,7 +55,7 @@ namespace const command_line::arg_descriptor arg_genesis_split_amount = { "genesis-split-amount", "Set split amount for generating genesis block", 0, true }; const command_line::arg_descriptor arg_get_info_flags = { "getinfo-flags-hex", "Set of bits for rpc-get-daemon-info", "", true }; const command_line::arg_descriptor arg_set_peer_log_level = { "set-peer-log-level", "Set log level for remote peer", 0, true }; - const command_line::arg_descriptor arg_download_peer_log = { "download-peer-log", "Download log from remote peer (starting offset)", 0, true }; + const command_line::arg_descriptor arg_download_peer_log = { "download-peer-log", "Download log from remote peer [,]", "", true }; const command_line::arg_descriptor arg_do_consloe_log = { "do-console-log", "Tool generates debug console output(debug purposes)", "", true }; } @@ -929,9 +929,28 @@ bool handle_download_peer_log(po::variables_map& vm) { std::cout << "ERROR: secret key error" << ENDL; return false; + + int64_t start_offset = 0; + int64_t count = -1; + + std::string arg_str = command_line::get_arg(vm, arg_download_peer_log); + size_t comma_pos = arg_str.find(','); + if (comma_pos != std::string::npos) + { + // count is specified + if (!epee::string_tools::string_to_num_fast(arg_str.substr(comma_pos + 1), count) || count < 0) + { + std::cout << "ERROR: invalid argument: " << arg_str << ENDL; + return false; + } + arg_str.erase(comma_pos); + } + if (!epee::string_tools::string_to_num_fast(arg_str, start_offset) || start_offset < 0) + { + std::cout << "ERROR: couldn't parse start_offset: " << arg_str << ENDL; + return false; } - uint64_t start_offset = command_line::get_arg(vm, arg_download_peer_log); levin::levin_client_impl2 transport; peerid_type peer_id = 0; @@ -947,6 +966,9 @@ bool handle_download_peer_log(po::variables_map& vm) std::cout << "Current log level: " << rsp.current_log_level << ENDL; std::cout << "Current log size: " << rsp.current_log_size << ENDL; + if (start_offset == 0 && count == 0) + return true; // a caller wanted to just get the info, end of story + if (start_offset >= rsp.current_log_size) { std::cout << "ERROR: invalid start offset: " << start_offset << ", log size: " << rsp.current_log_size << ENDL; @@ -969,6 +991,13 @@ bool handle_download_peer_log(po::variables_map& vm) { req.log_chunk_offset = end_offset; req.log_chunk_size = std::min(chunk_size, rsp.current_log_size - req.log_chunk_offset); + + if (count > 0) + { + uint64_t bytes_left = count + start_offset - end_offset; + req.log_chunk_size = std::min(req.log_chunk_size, bytes_left); + } + if (req.log_chunk_size == 0) break; From c0f7a2cf467e46a872094a711479f21ce32745f2 Mon Sep 17 00:00:00 2001 From: "crypro.zoidberg" Date: Tue, 14 May 2019 20:03:51 +0200 Subject: [PATCH 3/4] fixed typo --- src/connectivity_tool/conn_tool.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/connectivity_tool/conn_tool.cpp b/src/connectivity_tool/conn_tool.cpp index ff528e48..f44af1ba 100644 --- a/src/connectivity_tool/conn_tool.cpp +++ b/src/connectivity_tool/conn_tool.cpp @@ -929,6 +929,7 @@ bool handle_download_peer_log(po::variables_map& vm) { std::cout << "ERROR: secret key error" << ENDL; return false; + } int64_t start_offset = 0; int64_t count = -1; From 2320fe5099518a30dab75f5a4dcd03974553fd83 Mon Sep 17 00:00:00 2001 From: "crypro.zoidberg" Date: Wed, 15 May 2019 20:24:54 +0200 Subject: [PATCH 4/4] added more stat in wallet logs --- src/gui/qt-daemon/application/daemon_backend.cpp | 2 +- src/rpc/core_rpc_server_commands_defs.h | 2 ++ src/wallet/wallet2.h | 3 ++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/gui/qt-daemon/application/daemon_backend.cpp b/src/gui/qt-daemon/application/daemon_backend.cpp index b518be67..07a3b5a4 100644 --- a/src/gui/qt-daemon/application/daemon_backend.cpp +++ b/src/gui/qt-daemon/application/daemon_backend.cpp @@ -1546,7 +1546,7 @@ void daemon_backend::wallet_vs_options::worker_func() { w->get()->build_minted_block(ctx.sp, ctx.rsp); } - LOG_PRINT_L1(w->get()->get_log_prefix() + " PoS mint iteration finished(" << ctx.rsp.status << ")"); + LOG_PRINT_L1(w->get()->get_log_prefix() + " PoS mint iteration finished(iterations: " << ctx.rsp.iterations_processed << "," << ctx.rsp.status << ")"); return true; }); } diff --git a/src/rpc/core_rpc_server_commands_defs.h b/src/rpc/core_rpc_server_commands_defs.h index fe143042..01da849a 100644 --- a/src/rpc/core_rpc_server_commands_defs.h +++ b/src/rpc/core_rpc_server_commands_defs.h @@ -1084,6 +1084,7 @@ namespace currency uint64_t starter_timestamp; crypto::hash last_block_hash; bool is_pos_allowed; + uint64_t iterations_processed; BEGIN_KV_SERIALIZE_MAP() KV_SERIALIZE(status) @@ -1091,6 +1092,7 @@ namespace currency KV_SERIALIZE(block_timestamp) KV_SERIALIZE(height) KV_SERIALIZE(is_pos_allowed) + KV_SERIALIZE(iterations_processed) KV_SERIALIZE(starter_timestamp) KV_SERIALIZE_VAL_POD_AS_BLOB(last_block_hash); END_KV_SERIALIZE_MAP() diff --git a/src/wallet/wallet2.h b/src/wallet/wallet2.h index 05c4230d..ee92ebac 100644 --- a/src/wallet/wallet2.h +++ b/src/wallet/wallet2.h @@ -1014,7 +1014,7 @@ namespace tools cxt.rsp.status = CORE_RPC_STATUS_NOT_FOUND; uint64_t timstamp_start = runtime_config.get_core_time(); uint64_t timstamp_last_idle_call = runtime_config.get_core_time(); - + cxt.rsp.iterations_processed = 0; for (size_t i = 0; i != cxt.sp.pos_entries.size(); i++) { @@ -1080,6 +1080,7 @@ namespace tools { PROFILE_FUNC("check_hash"); check_hash_res = currency::check_hash(kernel_hash, this_coin_diff); + ++cxt.rsp.iterations_processed; } if (check_hash_res) {