Move network classes into xmrig namespace.
This commit is contained in:
parent
dbdcc14672
commit
ee667144e8
42 changed files with 481 additions and 332 deletions
|
@ -5,7 +5,9 @@
|
|||
* Copyright 2014-2016 Wolf9466 <https://github.com/OhGodAPet>
|
||||
* Copyright 2016 Jay D Dee <jayddee246@gmail.com>
|
||||
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt>
|
||||
* Copyright 2016-2018 XMRig <https://github.com/xmrig>, <support@xmrig.com>
|
||||
* Copyright 2018 Lee Clagett <https://github.com/vtnerd>
|
||||
* Copyright 2018-2019 SChernykh <https://github.com/SChernykh>
|
||||
* Copyright 2016-2019 XMRig <https://github.com/xmrig>, <support@xmrig.com>
|
||||
*
|
||||
* 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
|
||||
|
@ -32,17 +34,20 @@
|
|||
#include "common/net/Job.h"
|
||||
|
||||
|
||||
namespace xmrig {
|
||||
|
||||
|
||||
class JobResult
|
||||
{
|
||||
public:
|
||||
inline JobResult() : poolId(0), diff(0), nonce(0) {}
|
||||
inline JobResult(int poolId, const xmrig::Id &jobId, const xmrig::Id &clientId, uint32_t nonce, const uint8_t *result, uint32_t diff, const xmrig::Algorithm &algorithm) :
|
||||
poolId(poolId),
|
||||
diff(diff),
|
||||
nonce(nonce),
|
||||
inline JobResult(int poolId, const Id &jobId, const Id &clientId, uint32_t nonce, const uint8_t *result, uint32_t diff, const Algorithm &algorithm) :
|
||||
algorithm(algorithm),
|
||||
clientId(clientId),
|
||||
jobId(jobId)
|
||||
jobId(jobId),
|
||||
poolId(poolId),
|
||||
diff(diff),
|
||||
nonce(nonce)
|
||||
{
|
||||
memcpy(this->result, result, sizeof(this->result));
|
||||
}
|
||||
|
@ -65,13 +70,17 @@ public:
|
|||
}
|
||||
|
||||
|
||||
Algorithm algorithm;
|
||||
Id clientId;
|
||||
Id jobId;
|
||||
int poolId;
|
||||
uint32_t diff;
|
||||
uint32_t nonce;
|
||||
uint8_t result[32];
|
||||
xmrig::Algorithm algorithm;
|
||||
xmrig::Id clientId;
|
||||
xmrig::Id jobId;
|
||||
};
|
||||
|
||||
|
||||
} /* namespace xmrig */
|
||||
|
||||
|
||||
#endif /* XMRIG_JOBRESULT_H */
|
||||
|
|
|
@ -44,12 +44,10 @@
|
|||
#include "workers/Workers.h"
|
||||
|
||||
|
||||
Network::Network(xmrig::Controller *controller) :
|
||||
m_donate(nullptr),
|
||||
m_controller(controller)
|
||||
xmrig::Network::Network(Controller *controller) :
|
||||
m_controller(controller),
|
||||
m_donate(nullptr)
|
||||
{
|
||||
srand(time(0) ^ (uintptr_t) this);
|
||||
|
||||
Workers::setListener(this);
|
||||
|
||||
const std::vector<Pool> &pools = controller->config()->pools();
|
||||
|
@ -72,18 +70,18 @@ Network::Network(xmrig::Controller *controller) :
|
|||
}
|
||||
|
||||
|
||||
Network::~Network()
|
||||
xmrig::Network::~Network()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void Network::connect()
|
||||
void xmrig::Network::connect()
|
||||
{
|
||||
m_strategy->connect();
|
||||
}
|
||||
|
||||
|
||||
void Network::stop()
|
||||
void xmrig::Network::stop()
|
||||
{
|
||||
if (m_donate) {
|
||||
m_donate->stop();
|
||||
|
@ -93,7 +91,7 @@ void Network::stop()
|
|||
}
|
||||
|
||||
|
||||
void Network::onActive(IStrategy *strategy, Client *client)
|
||||
void xmrig::Network::onActive(IStrategy *strategy, Client *client)
|
||||
{
|
||||
if (m_donate && m_donate == strategy) {
|
||||
LOG_NOTICE("dev donate started");
|
||||
|
@ -114,7 +112,7 @@ void Network::onActive(IStrategy *strategy, Client *client)
|
|||
}
|
||||
|
||||
|
||||
void Network::onJob(IStrategy *strategy, Client *client, const Job &job)
|
||||
void xmrig::Network::onJob(IStrategy *strategy, Client *client, const Job &job)
|
||||
{
|
||||
if (m_donate && m_donate->isActive() && m_donate != strategy) {
|
||||
return;
|
||||
|
@ -124,7 +122,7 @@ void Network::onJob(IStrategy *strategy, Client *client, const Job &job)
|
|||
}
|
||||
|
||||
|
||||
void Network::onJobResult(const JobResult &result)
|
||||
void xmrig::Network::onJobResult(const JobResult &result)
|
||||
{
|
||||
if (result.poolId == -1 && m_donate) {
|
||||
m_donate->submit(result);
|
||||
|
@ -135,7 +133,7 @@ void Network::onJobResult(const JobResult &result)
|
|||
}
|
||||
|
||||
|
||||
void Network::onPause(IStrategy *strategy)
|
||||
void xmrig::Network::onPause(IStrategy *strategy)
|
||||
{
|
||||
if (m_donate && m_donate == strategy) {
|
||||
LOG_NOTICE("dev donate finished");
|
||||
|
@ -150,7 +148,7 @@ void Network::onPause(IStrategy *strategy)
|
|||
}
|
||||
|
||||
|
||||
void Network::onResultAccepted(IStrategy *strategy, Client *client, const SubmitResult &result, const char *error)
|
||||
void xmrig::Network::onResultAccepted(IStrategy *strategy, Client *client, const SubmitResult &result, const char *error)
|
||||
{
|
||||
m_state.add(result, error);
|
||||
|
||||
|
@ -167,13 +165,13 @@ void Network::onResultAccepted(IStrategy *strategy, Client *client, const Submit
|
|||
}
|
||||
|
||||
|
||||
bool Network::isColors() const
|
||||
bool xmrig::Network::isColors() const
|
||||
{
|
||||
return m_controller->config()->isColors();
|
||||
}
|
||||
|
||||
|
||||
void Network::setJob(Client *client, const Job &job, bool donate)
|
||||
void xmrig::Network::setJob(Client *client, const Job &job, bool donate)
|
||||
{
|
||||
if (job.height()) {
|
||||
LOG_INFO(isColors() ? MAGENTA_BOLD("new job") " from " WHITE_BOLD("%s:%d") " diff " WHITE_BOLD("%d") " algo " WHITE_BOLD("%s") " height " WHITE_BOLD("%" PRIu64)
|
||||
|
@ -195,7 +193,7 @@ void Network::setJob(Client *client, const Job &job, bool donate)
|
|||
}
|
||||
|
||||
|
||||
void Network::tick()
|
||||
void xmrig::Network::tick()
|
||||
{
|
||||
const uint64_t now = uv_now(uv_default_loop());
|
||||
|
||||
|
@ -211,7 +209,7 @@ void Network::tick()
|
|||
}
|
||||
|
||||
|
||||
void Network::onTick(uv_timer_t *handle)
|
||||
void xmrig::Network::onTick(uv_timer_t *handle)
|
||||
{
|
||||
static_cast<Network*>(handle->data)->tick();
|
||||
}
|
||||
|
|
|
@ -35,19 +35,17 @@
|
|||
#include "interfaces/IJobResultListener.h"
|
||||
|
||||
|
||||
class IStrategy;
|
||||
class Url;
|
||||
|
||||
|
||||
namespace xmrig {
|
||||
class Controller;
|
||||
}
|
||||
|
||||
|
||||
class Controller;
|
||||
class IStrategy;
|
||||
|
||||
|
||||
class Network : public IJobResultListener, public IStrategyListener
|
||||
{
|
||||
public:
|
||||
Network(xmrig::Controller *controller);
|
||||
Network(Controller *controller);
|
||||
~Network() override;
|
||||
|
||||
void connect();
|
||||
|
@ -69,12 +67,15 @@ private:
|
|||
|
||||
static void onTick(uv_timer_t *handle);
|
||||
|
||||
Controller *m_controller;
|
||||
IStrategy *m_donate;
|
||||
IStrategy *m_strategy;
|
||||
NetworkState m_state;
|
||||
uv_timer_t m_timer;
|
||||
xmrig::Controller *m_controller;
|
||||
};
|
||||
|
||||
|
||||
} /* namespace xmrig */
|
||||
|
||||
|
||||
#endif /* XMRIG_NETWORK_H */
|
||||
|
|
|
@ -39,7 +39,7 @@ static inline float randomf(float min, float max) {
|
|||
}
|
||||
|
||||
|
||||
DonateStrategy::DonateStrategy(int level, const char *user, xmrig::Algo algo, IStrategyListener *listener) :
|
||||
xmrig::DonateStrategy::DonateStrategy(int level, const char *user, Algo algo, IStrategyListener *listener) :
|
||||
m_active(false),
|
||||
m_donateTime(level * 60 * 1000),
|
||||
m_idleTime((100 - level) * 60 * 1000),
|
||||
|
@ -51,7 +51,7 @@ DonateStrategy::DonateStrategy(int level, const char *user, xmrig::Algo algo, IS
|
|||
uint8_t hash[200];
|
||||
char userId[65] = { 0 };
|
||||
|
||||
xmrig::keccak(reinterpret_cast<const uint8_t *>(user), strlen(user), hash);
|
||||
keccak(reinterpret_cast<const uint8_t *>(user), strlen(user), hash);
|
||||
Job::toHex(hash, 32, userId);
|
||||
|
||||
# ifndef XMRIG_NO_TLS
|
||||
|
@ -61,7 +61,7 @@ DonateStrategy::DonateStrategy(int level, const char *user, xmrig::Algo algo, IS
|
|||
m_pools.push_back(Pool("donate.v2.xmrig.com", 3333, userId, nullptr, false, true));
|
||||
|
||||
for (Pool &pool : m_pools) {
|
||||
pool.adjust(xmrig::Algorithm(algo, xmrig::VARIANT_AUTO));
|
||||
pool.adjust(Algorithm(algo, VARIANT_AUTO));
|
||||
}
|
||||
|
||||
if (m_pools.size() > 1) {
|
||||
|
@ -78,38 +78,38 @@ DonateStrategy::DonateStrategy(int level, const char *user, xmrig::Algo algo, IS
|
|||
}
|
||||
|
||||
|
||||
DonateStrategy::~DonateStrategy()
|
||||
xmrig::DonateStrategy::~DonateStrategy()
|
||||
{
|
||||
delete m_strategy;
|
||||
}
|
||||
|
||||
|
||||
int64_t DonateStrategy::submit(const JobResult &result)
|
||||
int64_t xmrig::DonateStrategy::submit(const JobResult &result)
|
||||
{
|
||||
return m_strategy->submit(result);
|
||||
}
|
||||
|
||||
|
||||
void DonateStrategy::connect()
|
||||
void xmrig::DonateStrategy::connect()
|
||||
{
|
||||
m_strategy->connect();
|
||||
}
|
||||
|
||||
|
||||
void DonateStrategy::setAlgo(const xmrig::Algorithm &algo)
|
||||
void xmrig::DonateStrategy::setAlgo(const xmrig::Algorithm &algo)
|
||||
{
|
||||
m_strategy->setAlgo(algo);
|
||||
}
|
||||
|
||||
|
||||
void DonateStrategy::stop()
|
||||
void xmrig::DonateStrategy::stop()
|
||||
{
|
||||
uv_timer_stop(&m_timer);
|
||||
m_strategy->stop();
|
||||
}
|
||||
|
||||
|
||||
void DonateStrategy::tick(uint64_t now)
|
||||
void xmrig::DonateStrategy::tick(uint64_t now)
|
||||
{
|
||||
m_now = now;
|
||||
|
||||
|
@ -122,7 +122,7 @@ void DonateStrategy::tick(uint64_t now)
|
|||
}
|
||||
|
||||
|
||||
void DonateStrategy::onActive(IStrategy *strategy, Client *client)
|
||||
void xmrig::DonateStrategy::onActive(IStrategy *strategy, Client *client)
|
||||
{
|
||||
if (!isActive()) {
|
||||
uv_timer_start(&m_timer, DonateStrategy::onTimer, m_donateTime, 0);
|
||||
|
@ -133,7 +133,7 @@ void DonateStrategy::onActive(IStrategy *strategy, Client *client)
|
|||
}
|
||||
|
||||
|
||||
void DonateStrategy::onJob(IStrategy *strategy, Client *client, const Job &job)
|
||||
void xmrig::DonateStrategy::onJob(IStrategy *strategy, Client *client, const Job &job)
|
||||
{
|
||||
if (isActive()) {
|
||||
m_listener->onJob(this, client, job);
|
||||
|
@ -141,24 +141,24 @@ void DonateStrategy::onJob(IStrategy *strategy, Client *client, const Job &job)
|
|||
}
|
||||
|
||||
|
||||
void DonateStrategy::onPause(IStrategy *strategy)
|
||||
void xmrig::DonateStrategy::onPause(IStrategy *strategy)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void DonateStrategy::onResultAccepted(IStrategy *strategy, Client *client, const SubmitResult &result, const char *error)
|
||||
void xmrig::DonateStrategy::onResultAccepted(IStrategy *strategy, Client *client, const SubmitResult &result, const char *error)
|
||||
{
|
||||
m_listener->onResultAccepted(this, client, result, error);
|
||||
}
|
||||
|
||||
|
||||
void DonateStrategy::idle(uint64_t timeout)
|
||||
void xmrig::DonateStrategy::idle(uint64_t timeout)
|
||||
{
|
||||
uv_timer_start(&m_timer, DonateStrategy::onTimer, timeout, 0);
|
||||
}
|
||||
|
||||
|
||||
void DonateStrategy::suspend()
|
||||
void xmrig::DonateStrategy::suspend()
|
||||
{
|
||||
# if defined(XMRIG_AMD_PROJECT) || defined(XMRIG_NVIDIA_PROJECT)
|
||||
m_stop = m_now + 5000;
|
||||
|
@ -173,7 +173,7 @@ void DonateStrategy::suspend()
|
|||
}
|
||||
|
||||
|
||||
void DonateStrategy::onTimer(uv_timer_t *handle)
|
||||
void xmrig::DonateStrategy::onTimer(uv_timer_t *handle)
|
||||
{
|
||||
auto strategy = static_cast<DonateStrategy*>(handle->data);
|
||||
|
||||
|
|
|
@ -36,15 +36,17 @@
|
|||
#include "common/interfaces/IStrategyListener.h"
|
||||
|
||||
|
||||
namespace xmrig {
|
||||
|
||||
|
||||
class Client;
|
||||
class IStrategyListener;
|
||||
class Url;
|
||||
|
||||
|
||||
class DonateStrategy : public IStrategy, public IStrategyListener
|
||||
{
|
||||
public:
|
||||
DonateStrategy(int level, const char *user, xmrig::Algo algo, IStrategyListener *listener);
|
||||
DonateStrategy(int level, const char *user, Algo algo, IStrategyListener *listener);
|
||||
~DonateStrategy() override;
|
||||
|
||||
public:
|
||||
|
@ -53,7 +55,7 @@ public:
|
|||
|
||||
int64_t submit(const JobResult &result) override;
|
||||
void connect() override;
|
||||
void setAlgo(const xmrig::Algorithm &algo) override;
|
||||
void setAlgo(const Algorithm &algo) override;
|
||||
void stop() override;
|
||||
void tick(uint64_t now) override;
|
||||
|
||||
|
@ -80,4 +82,8 @@ private:
|
|||
uv_timer_t m_timer;
|
||||
};
|
||||
|
||||
|
||||
} /* namespace xmrig */
|
||||
|
||||
|
||||
#endif /* XMRIG_DONATESTRATEGY_H */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue