Dev (#277)
# 2.2.0 * Integrated RandomxARQ algo (rx/arq) * Dashboard: * Flipped push/pull button on Dashboard * Only update algo+pool when its not donating * Fixed segfault when stopping xmrigCCServer
This commit is contained in:
parent
8ec1bd4ca7
commit
cbac54179a
13 changed files with 102 additions and 27 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
# 2.2.0
|
||||||
|
* Integrated RandomxARQ algo (rx/arq)
|
||||||
|
* Dashboard:
|
||||||
|
* Flipped push/pull button on Dashboard
|
||||||
|
* Only update algo+pool when its not donating
|
||||||
|
* Fixed segfault when stopping xmrigCCServer
|
||||||
# 2.1.0
|
# 2.1.0
|
||||||
* New XMRigCCServer without dependencies and now with full TLS support on Windows
|
* New XMRigCCServer without dependencies and now with full TLS support on Windows
|
||||||
* Dashboard
|
* Dashboard
|
||||||
|
|
|
@ -29,6 +29,7 @@ Full Windows/Linux compatible, and you can mix Linux and Windows miner on one XM
|
||||||
## Additional features of XMRigCC (on top of XMRig)
|
## Additional features of XMRigCC (on top of XMRig)
|
||||||
|
|
||||||
Check the [Coin Configuration](https://github.com/Bendr0id/xmrigCC/wiki/Coin-configurations) guide
|
Check the [Coin Configuration](https://github.com/Bendr0id/xmrigCC/wiki/Coin-configurations) guide
|
||||||
|
* **Support of RandomxARQ variant (algo: "rx/arq")**
|
||||||
* **Support of UPX2 variant (algo: "cn-extremelite/upx2")**
|
* **Support of UPX2 variant (algo: "cn-extremelite/upx2")**
|
||||||
* **Support of CN-Conceal variant (algo: "cn/conceal")**
|
* **Support of CN-Conceal variant (algo: "cn/conceal")**
|
||||||
* **Better performance for ARMv8 CPUs**
|
* **Better performance for ARMv8 CPUs**
|
||||||
|
@ -132,7 +133,7 @@ xmrigDaemon -o pool.hashvault.pro:5555 -u YOUR_WALLET -p x -k --cc-url=IP_OF_CC_
|
||||||
cn-pico
|
cn-pico
|
||||||
cn-extremelite
|
cn-extremelite
|
||||||
argon2/chukwa, argon2/wrkz
|
argon2/chukwa, argon2/wrkz
|
||||||
rx/wow, rx/loki
|
rx/wow, rx/loki, rx/arq
|
||||||
--coin=COIN specify coin instead of algorithm
|
--coin=COIN specify coin instead of algorithm
|
||||||
-o, --url=URL URL of mining server
|
-o, --url=URL URL of mining server
|
||||||
-O, --userpass=U:P username:password pair for mining server
|
-O, --userpass=U:P username:password pair for mining server
|
||||||
|
|
|
@ -64,6 +64,7 @@ static const char *kCnExtremelite = "cn-extremelite";
|
||||||
#ifdef XMRIG_ALGO_RANDOMX
|
#ifdef XMRIG_ALGO_RANDOMX
|
||||||
static const char *kRx = "rx";
|
static const char *kRx = "rx";
|
||||||
static const char *kRxWOW = "rx/wow";
|
static const char *kRxWOW = "rx/wow";
|
||||||
|
static const char *kRxARQ = "rx/arq";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef XMRIG_ALGO_ARGON2
|
#ifdef XMRIG_ALGO_ARGON2
|
||||||
|
@ -198,6 +199,7 @@ void xmrig::CpuConfig::generate()
|
||||||
# ifdef XMRIG_ALGO_RANDOMX
|
# ifdef XMRIG_ALGO_RANDOMX
|
||||||
m_threads.move(kRx, cpu->threads(Algorithm::RX_0));
|
m_threads.move(kRx, cpu->threads(Algorithm::RX_0));
|
||||||
m_threads.move(kRxWOW, cpu->threads(Algorithm::RX_WOW));
|
m_threads.move(kRxWOW, cpu->threads(Algorithm::RX_WOW));
|
||||||
|
m_threads.move(kRxARQ, cpu->threads(Algorithm::RX_ARQ));
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
generateArgon2();
|
generateArgon2();
|
||||||
|
|
|
@ -219,7 +219,7 @@ xmrig::CpuThreads xmrig::BasicCpuInfo::threads(const Algorithm &algorithm) const
|
||||||
|
|
||||||
# ifdef XMRIG_ALGO_RANDOMX
|
# ifdef XMRIG_ALGO_RANDOMX
|
||||||
if (algorithm.family() == Algorithm::RANDOM_X) {
|
if (algorithm.family() == Algorithm::RANDOM_X) {
|
||||||
if (algorithm == Algorithm::RX_WOW) {
|
if (algorithm == Algorithm::RX_WOW || algorithm == Algorithm::RX_ARQ) {
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,7 @@ void xmrig::RemoteLog::print(int, const char *line, size_t, size_t size, bool co
|
||||||
|
|
||||||
m_mutex.lock();
|
m_mutex.lock();
|
||||||
|
|
||||||
if (m_rows.size() == m_maxRows) {
|
if (m_rows.size() >= m_maxRows) {
|
||||||
m_rows.pop_front();
|
m_rows.pop_front();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -182,6 +182,7 @@ private:
|
||||||
0, // RX_0
|
0, // RX_0
|
||||||
0, // RX_WOW
|
0, // RX_WOW
|
||||||
0, // RX_LOKI
|
0, // RX_LOKI
|
||||||
|
0, // RX_ARQ
|
||||||
# endif
|
# endif
|
||||||
# ifdef XMRIG_ALGO_ARGON2
|
# ifdef XMRIG_ALGO_ARGON2
|
||||||
0, // AR2_CHUKWA
|
0, // AR2_CHUKWA
|
||||||
|
@ -225,6 +226,7 @@ private:
|
||||||
0, // RX_0
|
0, // RX_0
|
||||||
0, // RX_WOW
|
0, // RX_WOW
|
||||||
0, // RX_LOKI
|
0, // RX_LOKI
|
||||||
|
0, // RX_ARQ
|
||||||
# endif
|
# endif
|
||||||
# ifdef XMRIG_ALGO_ARGON2
|
# ifdef XMRIG_ALGO_ARGON2
|
||||||
0, // AR2_CHUKWA
|
0, // AR2_CHUKWA
|
||||||
|
@ -268,6 +270,7 @@ private:
|
||||||
Algorithm::INVALID, // RX_0
|
Algorithm::INVALID, // RX_0
|
||||||
Algorithm::INVALID, // RX_WOW
|
Algorithm::INVALID, // RX_WOW
|
||||||
Algorithm::INVALID, // RX_LOKI
|
Algorithm::INVALID, // RX_LOKI
|
||||||
|
Algorithm::INVALID, // RX_ARQ
|
||||||
# endif
|
# endif
|
||||||
# ifdef XMRIG_ALGO_ARGON2
|
# ifdef XMRIG_ALGO_ARGON2
|
||||||
Algorithm::INVALID, // AR2_CHUKWA
|
Algorithm::INVALID, // AR2_CHUKWA
|
||||||
|
|
|
@ -123,6 +123,8 @@ static AlgoName const algorithm_names[] = {
|
||||||
{ "RandomWOW", nullptr, Algorithm::RX_WOW },
|
{ "RandomWOW", nullptr, Algorithm::RX_WOW },
|
||||||
{ "randomx/loki", "rx/loki", Algorithm::RX_LOKI },
|
{ "randomx/loki", "rx/loki", Algorithm::RX_LOKI },
|
||||||
{ "RandomXL", nullptr, Algorithm::RX_LOKI },
|
{ "RandomXL", nullptr, Algorithm::RX_LOKI },
|
||||||
|
{ "randomx/arq", "rx/arq", Algorithm::RX_ARQ },
|
||||||
|
{ "RandomARQ", nullptr, Algorithm::RX_ARQ },
|
||||||
# endif
|
# endif
|
||||||
# ifdef XMRIG_ALGO_ARGON2
|
# ifdef XMRIG_ALGO_ARGON2
|
||||||
{ "argon2/chukwa", nullptr, Algorithm::AR2_CHUKWA },
|
{ "argon2/chukwa", nullptr, Algorithm::AR2_CHUKWA },
|
||||||
|
@ -158,6 +160,9 @@ size_t xmrig::Algorithm::l2() const
|
||||||
case RX_WOW:
|
case RX_WOW:
|
||||||
return 0x20000;
|
return 0x20000;
|
||||||
|
|
||||||
|
case RX_ARQ:
|
||||||
|
return 0x10000;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -188,6 +193,9 @@ size_t xmrig::Algorithm::l3() const
|
||||||
case RX_WOW:
|
case RX_WOW:
|
||||||
return oneMiB;
|
return oneMiB;
|
||||||
|
|
||||||
|
case RX_ARQ:
|
||||||
|
return oneMiB / 4;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -285,6 +293,7 @@ xmrig::Algorithm::Family xmrig::Algorithm::family(Id id)
|
||||||
case RX_0:
|
case RX_0:
|
||||||
case RX_WOW:
|
case RX_WOW:
|
||||||
case RX_LOKI:
|
case RX_LOKI:
|
||||||
|
case RX_ARQ:
|
||||||
return RANDOM_X;
|
return RANDOM_X;
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
|
|
@ -76,6 +76,7 @@ public:
|
||||||
RX_0, // "rx/0" RandomX (reference configuration).
|
RX_0, // "rx/0" RandomX (reference configuration).
|
||||||
RX_WOW, // "rx/wow" RandomWOW (Wownero).
|
RX_WOW, // "rx/wow" RandomWOW (Wownero).
|
||||||
RX_LOKI, // "rx/loki" RandomXL (Loki).
|
RX_LOKI, // "rx/loki" RandomXL (Loki).
|
||||||
|
RX_ARQ, // "rx/arq" RandomARQ (Arqma).
|
||||||
# endif
|
# endif
|
||||||
# ifdef XMRIG_ALGO_ARGON2
|
# ifdef XMRIG_ALGO_ARGON2
|
||||||
AR2_CHUKWA, // "argon2/chukwa"
|
AR2_CHUKWA, // "argon2/chukwa"
|
||||||
|
|
|
@ -75,6 +75,16 @@ RandomX_ConfigurationLoki::RandomX_ConfigurationLoki()
|
||||||
RANDOMX_FREQ_CBRANCH = 16;
|
RANDOMX_FREQ_CBRANCH = 16;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RandomX_ConfigurationArqma::RandomX_ConfigurationArqma()
|
||||||
|
{
|
||||||
|
ArgonIterations = 1;
|
||||||
|
ArgonSalt = "RandomARQ\x01";
|
||||||
|
ProgramIterations = 1024;
|
||||||
|
ProgramCount = 4;
|
||||||
|
ScratchpadL2_Size = 131072;
|
||||||
|
ScratchpadL3_Size = 262144;
|
||||||
|
}
|
||||||
|
|
||||||
RandomX_ConfigurationBase::RandomX_ConfigurationBase()
|
RandomX_ConfigurationBase::RandomX_ConfigurationBase()
|
||||||
: ArgonMemory(262144)
|
: ArgonMemory(262144)
|
||||||
, ArgonIterations(3)
|
, ArgonIterations(3)
|
||||||
|
@ -232,6 +242,7 @@ void RandomX_ConfigurationBase::Apply()
|
||||||
RandomX_ConfigurationMonero RandomX_MoneroConfig;
|
RandomX_ConfigurationMonero RandomX_MoneroConfig;
|
||||||
RandomX_ConfigurationWownero RandomX_WowneroConfig;
|
RandomX_ConfigurationWownero RandomX_WowneroConfig;
|
||||||
RandomX_ConfigurationLoki RandomX_LokiConfig;
|
RandomX_ConfigurationLoki RandomX_LokiConfig;
|
||||||
|
RandomX_ConfigurationArqma RandomX_ArqmaConfig;
|
||||||
|
|
||||||
RandomX_ConfigurationBase RandomX_CurrentConfig;
|
RandomX_ConfigurationBase RandomX_CurrentConfig;
|
||||||
|
|
||||||
|
|
|
@ -165,10 +165,12 @@ struct RandomX_ConfigurationBase
|
||||||
struct RandomX_ConfigurationMonero : public RandomX_ConfigurationBase {};
|
struct RandomX_ConfigurationMonero : public RandomX_ConfigurationBase {};
|
||||||
struct RandomX_ConfigurationWownero : public RandomX_ConfigurationBase { RandomX_ConfigurationWownero(); };
|
struct RandomX_ConfigurationWownero : public RandomX_ConfigurationBase { RandomX_ConfigurationWownero(); };
|
||||||
struct RandomX_ConfigurationLoki : public RandomX_ConfigurationBase { RandomX_ConfigurationLoki(); };
|
struct RandomX_ConfigurationLoki : public RandomX_ConfigurationBase { RandomX_ConfigurationLoki(); };
|
||||||
|
struct RandomX_ConfigurationArqma : public RandomX_ConfigurationBase { RandomX_ConfigurationArqma(); };
|
||||||
|
|
||||||
extern RandomX_ConfigurationMonero RandomX_MoneroConfig;
|
extern RandomX_ConfigurationMonero RandomX_MoneroConfig;
|
||||||
extern RandomX_ConfigurationWownero RandomX_WowneroConfig;
|
extern RandomX_ConfigurationWownero RandomX_WowneroConfig;
|
||||||
extern RandomX_ConfigurationLoki RandomX_LokiConfig;
|
extern RandomX_ConfigurationLoki RandomX_LokiConfig;
|
||||||
|
extern RandomX_ConfigurationArqma RandomX_ArqmaConfig;
|
||||||
|
|
||||||
extern RandomX_ConfigurationBase RandomX_CurrentConfig;
|
extern RandomX_ConfigurationBase RandomX_CurrentConfig;
|
||||||
|
|
||||||
|
|
|
@ -31,19 +31,51 @@
|
||||||
|
|
||||||
xmrig::Algorithm::Id xmrig::RxAlgo::apply(Algorithm::Id algorithm)
|
xmrig::Algorithm::Id xmrig::RxAlgo::apply(Algorithm::Id algorithm)
|
||||||
{
|
{
|
||||||
switch (algorithm) {
|
randomx_apply_config(*base(algorithm));
|
||||||
case Algorithm::RX_WOW:
|
|
||||||
randomx_apply_config(RandomX_WowneroConfig);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case Algorithm::RX_LOKI:
|
|
||||||
randomx_apply_config(RandomX_LokiConfig);
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
randomx_apply_config(RandomX_MoneroConfig);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return algorithm;
|
return algorithm;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const RandomX_ConfigurationBase *xmrig::RxAlgo::base(Algorithm::Id algorithm)
|
||||||
|
{
|
||||||
|
switch (algorithm) {
|
||||||
|
case Algorithm::RX_WOW:
|
||||||
|
return &RandomX_WowneroConfig;
|
||||||
|
|
||||||
|
case Algorithm::RX_LOKI:
|
||||||
|
return &RandomX_LokiConfig;
|
||||||
|
|
||||||
|
case Algorithm::RX_ARQ:
|
||||||
|
return &RandomX_ArqmaConfig;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return &RandomX_MoneroConfig;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
uint32_t xmrig::RxAlgo::version(Algorithm::Id algorithm)
|
||||||
|
{
|
||||||
|
return algorithm == Algorithm::RX_WOW ? 103 : 104;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
uint32_t xmrig::RxAlgo::programCount(Algorithm::Id algorithm)
|
||||||
|
{
|
||||||
|
return base(algorithm)->ProgramCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
uint32_t xmrig::RxAlgo::programIterations(Algorithm::Id algorithm)
|
||||||
|
{
|
||||||
|
return base(algorithm)->ProgramIterations;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
uint32_t xmrig::RxAlgo::programSize(Algorithm::Id algorithm)
|
||||||
|
{
|
||||||
|
return base(algorithm)->ProgramSize;
|
||||||
|
}
|
|
@ -28,25 +28,33 @@
|
||||||
#define XMRIG_RX_ALGO_H
|
#define XMRIG_RX_ALGO_H
|
||||||
|
|
||||||
|
|
||||||
#include <stddef.h>
|
#include <cstddef>
|
||||||
#include <stdint.h>
|
#include <cstdint>
|
||||||
|
|
||||||
|
|
||||||
#include "crypto/common/Algorithm.h"
|
#include "crypto/common/Algorithm.h"
|
||||||
|
|
||||||
|
|
||||||
|
struct RandomX_ConfigurationBase;
|
||||||
|
|
||||||
|
|
||||||
namespace xmrig
|
namespace xmrig
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
class RxAlgo
|
class RxAlgo
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
static Algorithm::Id apply(Algorithm::Id algorithm);
|
static Algorithm::Id apply(Algorithm::Id algorithm);
|
||||||
};
|
static const RandomX_ConfigurationBase *base(Algorithm::Id algorithm);
|
||||||
|
static uint32_t programCount(Algorithm::Id algorithm);
|
||||||
|
static uint32_t programIterations(Algorithm::Id algorithm);
|
||||||
|
static uint32_t programSize(Algorithm::Id algorithm);
|
||||||
|
static uint32_t version(Algorithm::Id algorithm);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
} /* namespace xmrig */
|
} /* namespace xmrig */
|
||||||
|
|
||||||
|
|
||||||
#endif /* XMRIG_RX_ALGO_H */
|
#endif /* XMRIG_RX_ALGO_H */
|
|
@ -28,15 +28,15 @@
|
||||||
#define APP_ID "XMRigCC"
|
#define APP_ID "XMRigCC"
|
||||||
#define APP_NAME "XMRigCC"
|
#define APP_NAME "XMRigCC"
|
||||||
#define APP_DESC "XMRigCC CPU miner"
|
#define APP_DESC "XMRigCC CPU miner"
|
||||||
#define APP_VERSION "2.1.1"
|
#define APP_VERSION "2.2.0"
|
||||||
#define APP_DOMAIN ""
|
#define APP_DOMAIN ""
|
||||||
#define APP_SITE "https://github.com/BenDr0id/xmrigCC/"
|
#define APP_SITE "https://github.com/BenDr0id/xmrigCC/"
|
||||||
#define APP_COPYRIGHT "Copyright (C) 2017- XMRigCC"
|
#define APP_COPYRIGHT "Copyright (C) 2017- XMRigCC"
|
||||||
#define APP_KIND "cpu"
|
#define APP_KIND "cpu"
|
||||||
|
|
||||||
#define APP_VER_MAJOR 2
|
#define APP_VER_MAJOR 2
|
||||||
#define APP_VER_MINOR 1
|
#define APP_VER_MINOR 2
|
||||||
#define APP_VER_PATCH 1
|
#define APP_VER_PATCH 0
|
||||||
|
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
#define BUILD_TYPE "DEBUG"
|
#define BUILD_TYPE "DEBUG"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue