From 9765de3f01895460d198b39c57ee39308f51d2cd Mon Sep 17 00:00:00 2001 From: "Dr.Elias" Date: Tue, 16 Nov 2021 17:16:11 +0300 Subject: [PATCH 1/4] "soft" opencl boost factor --- crypto/util/pow-miner.cpp | 2 +- tonlib/tonlib/tonlib-cli.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/crypto/util/pow-miner.cpp b/crypto/util/pow-miner.cpp index df1a2332..ab372d3b 100644 --- a/crypto/util/pow-miner.cpp +++ b/crypto/util/pow-miner.cpp @@ -270,7 +270,7 @@ int main(int argc, char* const argv[]) { break; case 'F': factor = atoi(optarg); - CHECK(factor >= 1 && factor <= (1 << MAX_BOOST_POW)); + CHECK(factor >= 1 && factor <= 16384); options.factor = factor; break; #endif diff --git a/tonlib/tonlib/tonlib-cli.cpp b/tonlib/tonlib/tonlib-cli.cpp index db38b5f5..4bc970bc 100644 --- a/tonlib/tonlib/tonlib-cli.cpp +++ b/tonlib/tonlib/tonlib-cli.cpp @@ -832,7 +832,7 @@ class TonlibCli : public td::actor::Actor { auto factor_s = parser.read_word(); if (!factor_s.empty()) { factor = std::atoi(factor_s.data()); - CHECK(factor >= 1 && factor <= (1 << MAX_BOOST_POW)); + CHECK(factor >= 1 && factor <= 16384); } auto platform_id_s = parser.read_word(); From 27fc34842ff78859a52b984f74a53c4e3b4978d5 Mon Sep 17 00:00:00 2001 From: "Dr.Elias" Date: Tue, 16 Nov 2021 17:44:44 +0300 Subject: [PATCH 2/4] restart miner immediately if a result is found --- tonlib/tonlib/tonlib-cli.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/tonlib/tonlib/tonlib-cli.cpp b/tonlib/tonlib/tonlib-cli.cpp index 4bc970bc..e6e3c3e5 100644 --- a/tonlib/tonlib/tonlib-cli.cpp +++ b/tonlib/tonlib/tonlib-cli.cpp @@ -713,6 +713,7 @@ class TonlibCli : public td::actor::Actor { } void got_answer(td::optional answer) { + need_run_miners_ = true; source_.cancel(); if (--threads_alive_ == 0) { threads_.clear(); From d92bef7df15ced646a386ad1a9ca093e9b7055d9 Mon Sep 17 00:00:00 2001 From: "Dr.Elias" Date: Tue, 16 Nov 2021 18:52:47 +0300 Subject: [PATCH 3/4] log the lite server id in case of network error --- tonlib/tonlib/TonlibClient.cpp | 4 ++-- tonlib/tonlib/TonlibClient.h | 6 ++++++ tonlib/tonlib/tonlib-cli.cpp | 4 +++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/tonlib/tonlib/TonlibClient.cpp b/tonlib/tonlib/TonlibClient.cpp index 49679b0d..f4c7d204 100644 --- a/tonlib/tonlib/TonlibClient.cpp +++ b/tonlib/tonlib/TonlibClient.cpp @@ -1371,8 +1371,8 @@ void TonlibClient::init_ext_client() { } else { auto lite_clients_size = config_.lite_clients.size(); CHECK(lite_clients_size != 0); - auto lite_client_id = td::Random::fast(0, td::narrow_cast(lite_clients_size) - 1); - auto& lite_client = config_.lite_clients[lite_client_id]; + lite_client_id_ = td::Random::fast(0, td::narrow_cast(lite_clients_size) - 1); + auto& lite_client = config_.lite_clients[lite_client_id_]; class Callback : public ExtClientLazy::Callback { public: explicit Callback(td::actor::ActorShared<> parent) : parent_(std::move(parent)) { diff --git a/tonlib/tonlib/TonlibClient.h b/tonlib/tonlib/TonlibClient.h index bedc1d49..8ee97c85 100644 --- a/tonlib/tonlib/TonlibClient.h +++ b/tonlib/tonlib/TonlibClient.h @@ -87,6 +87,11 @@ class TonlibClient : public td::actor::Actor { } } + public: + tonlib::Config::LiteClient* get_lite_client() { + return lite_client_id_ >= 0 ? &config_.lite_clients[lite_client_id_] : nullptr; + }; + private: enum class State { Uninited, Running, Closed } state_ = State::Uninited; td::unique_ptr callback_; @@ -98,6 +103,7 @@ class TonlibClient : public td::actor::Actor { std::string rwallet_init_public_key_; std::string last_state_key_; bool use_callbacks_for_network_{false}; + int lite_client_id_ = -1; // KeyStorage std::shared_ptr kv_; diff --git a/tonlib/tonlib/tonlib-cli.cpp b/tonlib/tonlib/tonlib-cli.cpp index e6e3c3e5..429dc19c 100644 --- a/tonlib/tonlib/tonlib-cli.cpp +++ b/tonlib/tonlib/tonlib-cli.cpp @@ -749,8 +749,10 @@ class TonlibCli : public td::actor::Actor { void with_giver_info(td::Result> r_info) { auto status = do_with_giver_info(std::move(r_info)); - LOG_IF(ERROR, status.is_error()) << "pminer: " << status; if (status.is_error()) { + auto lite_client = client_.get_actor_unsafe().get_lite_client(); + CHECK(lite_client); + LOG(ERROR) << "pminer: " << status << " (#" << lite_client->address.get_ipv4() << ")"; // need to restart if liteserver is not ready hangup(); std::exit(3); From 727aba72921760543c6cab605e44f39960d5b7ed Mon Sep 17 00:00:00 2001 From: "Dr.Elias" Date: Tue, 16 Nov 2021 19:26:17 +0300 Subject: [PATCH 4/4] cuda compute capability 1.1 --- crypto/CMakeLists.txt | 1 + tonlib/CMakeLists.txt | 1 + 2 files changed, 2 insertions(+) diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt index fb9c3515..02d3c7b3 100644 --- a/crypto/CMakeLists.txt +++ b/crypto/CMakeLists.txt @@ -311,6 +311,7 @@ if(MINERCUDA) enable_language(CUDA) find_package(CUDA REQUIRED) + SET(CUDA_NVCC_FLAGS “-arch=sm_11”) include_directories("${CUDA_INCLUDE_DIRS}") add_library(pow-miner-cuda-lib util/Miner.cpp util/MinerCuda.cpp util/Miner.h util/cuda/miner.h util/cuda/sha256.cpp util/cuda/sha256.h diff --git a/tonlib/CMakeLists.txt b/tonlib/CMakeLists.txt index 74aaf941..90cd8d9e 100644 --- a/tonlib/CMakeLists.txt +++ b/tonlib/CMakeLists.txt @@ -75,6 +75,7 @@ if(MINERCUDA) enable_language(CUDA) find_package(CUDA REQUIRED) + SET(CUDA_NVCC_FLAGS “-arch=sm_11”) include_directories("${CUDA_INCLUDE_DIRS}") add_executable(tonlib-cuda-cli tonlib/tonlib-cli.cpp)