From 59806758767fa35f78ce5ce59f62bfbd2ae788b9 Mon Sep 17 00:00:00 2001 From: XMRig Date: Thu, 18 Feb 2021 12:56:39 +0700 Subject: [PATCH] Code and copyright cleanup. --- src/base/io/log/Tags.cpp | 6 ++- src/base/io/log/Tags.h | 4 +- src/base/kernel/interfaces/IConfig.h | 12 ++---- src/base/net/stratum/Pool.cpp | 26 +++++------- src/base/net/stratum/Pool.h | 16 +++----- src/base/net/stratum/SelfSelectClient.cpp | 50 +++++++++++------------ src/base/net/stratum/SelfSelectClient.h | 49 ++++++++++------------ src/core/config/Config_platform.h | 10 +---- src/core/config/usage.h | 15 ++++--- 9 files changed, 80 insertions(+), 108 deletions(-) diff --git a/src/base/io/log/Tags.cpp b/src/base/io/log/Tags.cpp index 75b4ca8a..23ef63d7 100644 --- a/src/base/io/log/Tags.cpp +++ b/src/base/io/log/Tags.cpp @@ -1,6 +1,6 @@ /* XMRig - * Copyright 2018-2020 SChernykh - * Copyright 2016-2020 XMRig , + * Copyright (c) 2018-2021 SChernykh + * Copyright (c) 2016-2021 XMRig , * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -36,6 +36,7 @@ const char *xmrig::Tags::network() return tag; } + const char* xmrig::Tags::origin() { static const char* tag = YELLOW_BG_BOLD(WHITE_BOLD_S " origin "); @@ -43,6 +44,7 @@ const char* xmrig::Tags::origin() return tag; } + const char *xmrig::Tags::signal() { static const char *tag = YELLOW_BG_BOLD(WHITE_BOLD_S " signal "); diff --git a/src/base/io/log/Tags.h b/src/base/io/log/Tags.h index fc2c7485..07312d4e 100644 --- a/src/base/io/log/Tags.h +++ b/src/base/io/log/Tags.h @@ -1,6 +1,6 @@ /* XMRig - * Copyright 2018-2020 SChernykh - * Copyright 2016-2020 XMRig , + * Copyright (c) 2018-2021 SChernykh + * Copyright (c) 2016-2021 XMRig , * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/base/kernel/interfaces/IConfig.h b/src/base/kernel/interfaces/IConfig.h index 0e03f786..7a7f657e 100644 --- a/src/base/kernel/interfaces/IConfig.h +++ b/src/base/kernel/interfaces/IConfig.h @@ -1,12 +1,6 @@ /* XMRig - * Copyright 2010 Jeff Garzik - * Copyright 2012-2014 pooler - * Copyright 2014 Lucas Jones - * Copyright 2014-2016 Wolf9466 - * Copyright 2016 Jay D Dee - * Copyright 2017-2018 XMR-Stak , - * Copyright 2018-2021 SChernykh - * Copyright 2016-2021 XMRig , + * Copyright (c) 2018-2021 SChernykh + * Copyright (c) 2016-2021 XMRig , * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -73,7 +67,6 @@ public: DaemonKey = 1018, DaemonPollKey = 1019, SelfSelectKey = 1028, - SubmitToOriginKey = 1049, DataDirKey = 1035, TitleKey = 1037, NoTitleKey = 1038, @@ -88,6 +81,7 @@ public: DmiKey = 1049, HugePageSizeKey = 1050, PauseOnActiveKey = 1051, + SubmitToOriginKey = 1052, // xmrig common CPUPriorityKey = 1021, diff --git a/src/base/net/stratum/Pool.cpp b/src/base/net/stratum/Pool.cpp index 8148deae..e39df3b5 100644 --- a/src/base/net/stratum/Pool.cpp +++ b/src/base/net/stratum/Pool.cpp @@ -1,13 +1,7 @@ /* XMRig - * Copyright 2010 Jeff Garzik - * Copyright 2012-2014 pooler - * Copyright 2014 Lucas Jones - * Copyright 2014-2016 Wolf9466 - * Copyright 2016 Jay D Dee - * Copyright 2017-2019 XMR-Stak , - * Copyright 2019 Howard Chu - * Copyright 2018-2020 SChernykh - * Copyright 2016-2020 XMRig , + * Copyright (c) 2019 Howard Chu + * Copyright (c) 2018-2020 SChernykh + * Copyright (c) 2016-2020 XMRig , * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -79,8 +73,8 @@ const char *Pool::kNicehash = "nicehash"; const char *Pool::kPass = "pass"; const char *Pool::kRigId = "rig-id"; const char *Pool::kSelfSelect = "self-select"; -const char* Pool::kSubmitToOrigin = "submit-to-origin"; const char *Pool::kSOCKS5 = "socks5"; +const char *Pool::kSubmitToOrigin = "submit-to-origin"; const char *Pool::kTls = "tls"; const char *Pool::kUrl = "url"; const char *Pool::kUser = "user"; @@ -138,8 +132,8 @@ xmrig::Pool::Pool(const rapidjson::Value &object) : setKeepAlive(Json::getValue(object, kKeepalive)); if (m_daemon.isValid()) { - m_mode = MODE_SELF_SELECT; - m_submit_to_origin = Json::getBool(object, kSubmitToOrigin, false); + m_mode = MODE_SELF_SELECT; + m_submitToOrigin = Json::getBool(object, kSubmitToOrigin, m_submitToOrigin); } else if (Json::getBool(object, kDaemon)) { m_mode = MODE_DAEMON; @@ -239,7 +233,7 @@ xmrig::IClient *xmrig::Pool::createClient(int id, IClientListener *listener) con client = new DaemonClient(id, listener); } else if (m_mode == MODE_SELF_SELECT) { - client = new SelfSelectClient(id, Platform::userAgent(), listener, m_submit_to_origin); + client = new SelfSelectClient(id, Platform::userAgent(), listener, m_submitToOrigin); } # endif # ifdef XMRIG_ALGO_KAWPOW @@ -302,8 +296,8 @@ rapidjson::Value xmrig::Pool::toJSON(rapidjson::Document &doc) const obj.AddMember(StringRef(kDaemonPollInterval), m_pollInterval, allocator); } else { - obj.AddMember(StringRef(kSelfSelect), m_daemon.url().toJSON(), allocator); - obj.AddMember(StringRef(kSubmitToOrigin), m_submit_to_origin, allocator); + obj.AddMember(StringRef(kSelfSelect), m_daemon.url().toJSON(), allocator); + obj.AddMember(StringRef(kSubmitToOrigin), m_submitToOrigin, allocator); } return obj; @@ -322,7 +316,7 @@ std::string xmrig::Pool::printableName() const } if (m_mode == MODE_SELF_SELECT) { - out += std::string(" self-select ") + CSI "1;" + std::to_string(m_daemon.isTLS() ? 32 : 36) + "m" + m_daemon.url().data() + WHITE_BOLD_S + (m_submit_to_origin ? " submit-to-origin" : "") + CLEAR; + out += std::string(" self-select ") + CSI "1;" + std::to_string(m_daemon.isTLS() ? 32 : 36) + "m" + m_daemon.url().data() + WHITE_BOLD_S + (m_submitToOrigin ? " submit-to-origin" : "") + CLEAR; } return out; diff --git a/src/base/net/stratum/Pool.h b/src/base/net/stratum/Pool.h index 97ef3fac..3f9baecf 100644 --- a/src/base/net/stratum/Pool.h +++ b/src/base/net/stratum/Pool.h @@ -1,13 +1,7 @@ /* XMRig - * Copyright 2010 Jeff Garzik - * Copyright 2012-2014 pooler - * Copyright 2014 Lucas Jones - * Copyright 2014-2016 Wolf9466 - * Copyright 2016 Jay D Dee - * Copyright 2017-2018 XMR-Stak , - * Copyright 2019 Howard Chu - * Copyright 2018-2020 SChernykh - * Copyright 2016-2020 XMRig , + * Copyright (c) 2019 Howard Chu + * Copyright (c) 2018-2020 SChernykh + * Copyright (c) 2016-2020 XMRig , * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -72,8 +66,8 @@ public: static const char *kPass; static const char *kRigId; static const char *kSelfSelect; - static const char* kSubmitToOrigin; static const char *kSOCKS5; + static const char *kSubmitToOrigin; static const char *kTls; static const char *kUrl; static const char *kUser; @@ -145,6 +139,7 @@ private: void setKeepAlive(const rapidjson::Value &value); Algorithm m_algorithm; + bool m_submitToOrigin = false; Coin m_coin; int m_keepAlive = 0; Mode m_mode = MODE_POOL; @@ -157,7 +152,6 @@ private: uint64_t m_pollInterval = kDefaultPollInterval; Url m_daemon; Url m_url; - bool m_submit_to_origin = false; # ifdef XMRIG_FEATURE_BENCHMARK std::shared_ptr m_benchmark; diff --git a/src/base/net/stratum/SelfSelectClient.cpp b/src/base/net/stratum/SelfSelectClient.cpp index b2bb291e..2dca057a 100644 --- a/src/base/net/stratum/SelfSelectClient.cpp +++ b/src/base/net/stratum/SelfSelectClient.cpp @@ -1,13 +1,8 @@ /* XMRig - * Copyright 2010 Jeff Garzik - * Copyright 2012-2014 pooler - * Copyright 2014 Lucas Jones - * Copyright 2014-2016 Wolf9466 - * Copyright 2016 Jay D Dee - * Copyright 2017-2018 XMR-Stak , - * Copyright 2019 jtgrassie - * Copyright 2018-2020 SChernykh - * Copyright 2016-2020 XMRig , + * Copyright (c) 2019 jtgrassie + * Copyright (c) 2021 Hansie Odendaal + * Copyright (c) 2018-2021 SChernykh + * Copyright (c) 2016-2021 XMRig , * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -57,8 +52,9 @@ static const char * const required_fields[] = { kBlocktemplateBlob, kBlockhashin } /* namespace xmrig */ -xmrig::SelfSelectClient::SelfSelectClient(int id, const char *agent, IClientListener *listener, bool submit_to_origin) : - m_listener(listener), m_submit_to_origin(submit_to_origin) +xmrig::SelfSelectClient::SelfSelectClient(int id, const char *agent, IClientListener *listener, bool submitToOrigin) : + m_submitToOrigin(submitToOrigin), + m_listener(listener) { m_httpListener = std::make_shared(this); m_client = new Client(id, agent, this); @@ -71,6 +67,16 @@ xmrig::SelfSelectClient::~SelfSelectClient() } +int64_t xmrig::SelfSelectClient::submit(const JobResult &result) +{ + if (m_submitToOrigin) { + submitOriginDaemon(result); + } + + return m_client->submit(result); +} + + void xmrig::SelfSelectClient::tick(uint64_t now) { m_client->tick(now); @@ -205,7 +211,7 @@ void xmrig::SelfSelectClient::submitBlockTemplate(rapidjson::Value &result) auto &allocator = doc.GetAllocator(); m_blocktemplate = Json::getString(result,kBlocktemplateBlob); - m_blockdiff = Json::getUint64(result, kDifficulty); + m_blockDiff = Json::getUint64(result, kDifficulty); Value params(kObjectType); params.AddMember(StringRef(kId), m_job.clientId().toJSON(), allocator); @@ -241,27 +247,21 @@ void xmrig::SelfSelectClient::submitBlockTemplate(rapidjson::Value &result) }); } -int64_t xmrig::SelfSelectClient::submit(const JobResult& result) -{ - if (m_submit_to_origin) { - submitOriginDaemon(result); - } - return m_client->submit(result); -} void xmrig::SelfSelectClient::submitOriginDaemon(const JobResult& result) { - if (result.diff == 0 || m_blockdiff == 0) { + if (result.diff == 0 || m_blockDiff == 0) { return; } - if (result.actualDiff() < m_blockdiff) { - m_origin_not_submitted++; + if (result.actualDiff() < m_blockDiff) { + m_originNotSubmitted++; LOG_DEBUG("%s " RED_BOLD("not submitted to origin daemon, difficulty too low") " (%" PRId64 "/%" PRId64 ") " BLACK_BOLD(" diff ") BLACK_BOLD("%" PRIu64) BLACK_BOLD(" vs. ") BLACK_BOLD("%" PRIu64), - Tags::origin(), m_origin_submitted, m_origin_not_submitted, m_blockdiff, result.actualDiff()); + Tags::origin(), m_originSubmitted, m_originNotSubmitted, m_blockDiff, result.actualDiff()); return; } + char *data = m_blocktemplate.data(); Cvt::toHex(data + 78, 8, reinterpret_cast(&result.nonce), 4); @@ -277,10 +277,10 @@ void xmrig::SelfSelectClient::submitOriginDaemon(const JobResult& result) FetchRequest req(HTTP_POST, pool().daemon().host(), pool().daemon().port(), "/json_rpc", doc, pool().daemon().isTLS(), isQuiet()); fetch(tag(), std::move(req), m_httpListener); - m_origin_submitted++; + m_originSubmitted++; LOG_INFO("%s " GREEN_BOLD("submitted to origin daemon") " (%" PRId64 "/%" PRId64 ") " " diff " WHITE("%" PRIu64) " vs. " WHITE("%" PRIu64), - Tags::origin(), m_origin_submitted, m_origin_not_submitted, m_blockdiff, result.actualDiff(), result.diff); + Tags::origin(), m_originSubmitted, m_originNotSubmitted, m_blockDiff, result.actualDiff(), result.diff); // Ensure that the latest block template is available after block submission getBlockTemplate(); diff --git a/src/base/net/stratum/SelfSelectClient.h b/src/base/net/stratum/SelfSelectClient.h index 2cf0e6d0..c73198a5 100644 --- a/src/base/net/stratum/SelfSelectClient.h +++ b/src/base/net/stratum/SelfSelectClient.h @@ -1,13 +1,8 @@ /* XMRig - * Copyright 2010 Jeff Garzik - * Copyright 2012-2014 pooler - * Copyright 2014 Lucas Jones - * Copyright 2014-2016 Wolf9466 - * Copyright 2016 Jay D Dee - * Copyright 2017-2018 XMR-Stak , - * Copyright 2019 jtgrassie - * Copyright 2018-2020 SChernykh - * Copyright 2016-2020 XMRig , + * Copyright (c) 2019 jtgrassie + * Copyright (c) 2021 Hansie Odendaal + * Copyright (c) 2018-2021 SChernykh + * Copyright (c) 2016-2021 XMRig , * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -31,11 +26,10 @@ #include "base/kernel/interfaces/IClientListener.h" #include "base/net/http/HttpListener.h" #include "base/net/stratum/Job.h" -#include "base/tools/Object.h" -#include #include +#include namespace xmrig { @@ -46,7 +40,7 @@ class SelfSelectClient : public IClient, public IClientListener, public IHttpLis public: XMRIG_DISABLE_COPY_MOVE_DEFAULT(SelfSelectClient) - SelfSelectClient(int id, const char *agent, IClientListener *listener, bool submit_to_origin); + SelfSelectClient(int id, const char *agent, IClientListener *listener, bool submitToOrigin); ~SelfSelectClient() override; protected: @@ -66,7 +60,6 @@ protected: inline int64_t send(const rapidjson::Value &obj, Callback callback) override { return m_client->send(obj, callback); } inline int64_t send(const rapidjson::Value &obj) override { return m_client->send(obj); } inline int64_t sequence() const override { return m_client->sequence(); } - inline int64_t submit(const JobResult &result) override; inline void connect() override { m_client->connect(); } inline void connect(const Pool &pool) override { m_client->connect(pool); } inline void deleteLater() override { m_client->deleteLater(); } @@ -78,6 +71,7 @@ protected: inline void setRetries(int retries) override { m_client->setRetries(retries); m_retries = retries; } inline void setRetryPause(uint64_t ms) override { m_client->setRetryPause(ms); m_retryPause = ms; } + int64_t submit(const JobResult &result) override; void tick(uint64_t now) override; // IClientListener @@ -106,25 +100,26 @@ private: void retry(); void setState(State state); void submitBlockTemplate(rapidjson::Value &result); - inline void submitOriginDaemon(const JobResult &result); - bool m_active = false; - bool m_quiet = false; + void submitOriginDaemon(const JobResult &result); + + bool m_active = false; + bool m_quiet = false; + const bool m_submitToOrigin; IClient *m_client; IClientListener *m_listener; - int m_retries = 5; - int64_t m_failures = 0; - int64_t m_sequence = 1; + int m_retries = 5; + int64_t m_failures = 0; + int64_t m_sequence = 1; Job m_job; - State m_state = IdleState; - String m_blocktemplate; - bool m_submit_to_origin = false; + State m_state = IdleState; std::map m_results; std::shared_ptr m_httpListener; - uint64_t m_retryPause = 5000; - uint64_t m_timestamp = 0; - uint64_t m_blockdiff = 0; - uint64_t m_origin_submitted = 0; - uint64_t m_origin_not_submitted = 0; + String m_blocktemplate; + uint64_t m_blockDiff = 0; + uint64_t m_originNotSubmitted = 0; + uint64_t m_originSubmitted = 0; + uint64_t m_retryPause = 5000; + uint64_t m_timestamp = 0; }; diff --git a/src/core/config/Config_platform.h b/src/core/config/Config_platform.h index f97d6fd8..dbe2a4d8 100644 --- a/src/core/config/Config_platform.h +++ b/src/core/config/Config_platform.h @@ -1,12 +1,6 @@ /* XMRig - * Copyright 2010 Jeff Garzik - * Copyright 2012-2014 pooler - * Copyright 2014 Lucas Jones - * Copyright 2014-2016 Wolf9466 - * Copyright 2016 Jay D Dee - * Copyright 2017-2018 XMR-Stak , - * Copyright 2018-2020 SChernykh - * Copyright 2016-2020 XMRig , + * Copyright (c) 2018-2021 SChernykh + * Copyright (c) 2016-2021 XMRig , * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/core/config/usage.h b/src/core/config/usage.h index 8078e1a4..8b8ec533 100644 --- a/src/core/config/usage.h +++ b/src/core/config/usage.h @@ -1,12 +1,11 @@ /* XMRig - * Copyright 2010 Jeff Garzik - * Copyright 2012-2014 pooler - * Copyright 2014 Lucas Jones - * Copyright 2014-2016 Wolf9466 - * Copyright 2016 Jay D Dee - * Copyright 2017-2018 XMR-Stak , - * Copyright 2018-2020 SChernykh - * Copyright 2016-2020 XMRig , + * Copyright (c) 2010 Jeff Garzik + * Copyright (c) 2012-2014 pooler + * Copyright (c) 2014 Lucas Jones + * Copyright (c) 2014-2016 Wolf9466 + * Copyright (c) 2016 Jay D Dee + * Copyright (c) 2018-2021 SChernykh + * Copyright (c) 2016-2021 XMRig , * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by