mirror of
https://github.com/xmrig/xmrig.git
synced 2025-01-25 12:06:04 +00:00
Basic cryptonight-ipbc definition.
This commit is contained in:
parent
8fe264bbd7
commit
274992e50d
5 changed files with 39 additions and 7 deletions
|
@ -4,6 +4,7 @@ project(xmrig)
|
||||||
option(WITH_LIBCPUID "Use Libcpuid" ON)
|
option(WITH_LIBCPUID "Use Libcpuid" ON)
|
||||||
option(WITH_AEON "CryptoNight-Lite support" ON)
|
option(WITH_AEON "CryptoNight-Lite support" ON)
|
||||||
option(WITH_SUMO "CryptoNight-Heavy support" ON)
|
option(WITH_SUMO "CryptoNight-Heavy support" ON)
|
||||||
|
option(WITH_IPBC "CryptoNight-IPBC support" ON)
|
||||||
option(WITH_HTTPD "HTTP REST API" ON)
|
option(WITH_HTTPD "HTTP REST API" ON)
|
||||||
option(BUILD_STATIC "Build static binary" OFF)
|
option(BUILD_STATIC "Build static binary" OFF)
|
||||||
|
|
||||||
|
@ -205,6 +206,10 @@ if (NOT WITH_SUMO)
|
||||||
add_definitions(/DXMRIG_NO_SUMO)
|
add_definitions(/DXMRIG_NO_SUMO)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if (NOT WITH_IPBC)
|
||||||
|
add_definitions(/DXMRIG_NO_IPBC)
|
||||||
|
endif()
|
||||||
|
|
||||||
if (WITH_HTTPD)
|
if (WITH_HTTPD)
|
||||||
find_package(MHD)
|
find_package(MHD)
|
||||||
|
|
||||||
|
|
|
@ -45,9 +45,14 @@ static const char *algoNames[] = {
|
||||||
nullptr,
|
nullptr,
|
||||||
# endif
|
# endif
|
||||||
# ifndef XMRIG_NO_SUMO
|
# ifndef XMRIG_NO_SUMO
|
||||||
"cryptonight-heavy"
|
"cryptonight-heavy",
|
||||||
# else
|
# else
|
||||||
nullptr
|
nullptr,
|
||||||
|
# endif
|
||||||
|
# ifndef XMRIG_NO_IPBC
|
||||||
|
"cryptonight-ipbc",
|
||||||
|
# else
|
||||||
|
nullptr,
|
||||||
# endif
|
# endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -60,9 +65,14 @@ static const char *algoNamesShort[] = {
|
||||||
nullptr,
|
nullptr,
|
||||||
# endif
|
# endif
|
||||||
# ifndef XMRIG_NO_SUMO
|
# ifndef XMRIG_NO_SUMO
|
||||||
"cn-heavy"
|
"cn-heavy",
|
||||||
# else
|
# else
|
||||||
nullptr
|
nullptr,
|
||||||
|
# endif
|
||||||
|
# ifndef XMRIG_NO_IPBC
|
||||||
|
"cn-ipbc",
|
||||||
|
# else
|
||||||
|
nullptr,
|
||||||
# endif
|
# endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -119,9 +129,9 @@ Pool::Pool(const char *host, uint16_t port, const char *user, const char *passwo
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const char *Pool::algoName(xmrig::Algo algorithm)
|
const char *Pool::algoName(xmrig::Algo algorithm, bool shortName)
|
||||||
{
|
{
|
||||||
return algoNames[algorithm];
|
return (shortName ? algoNamesShort : algoNames)[algorithm];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,7 @@ public:
|
||||||
xmrig::Variant variant = xmrig::VARIANT_AUTO
|
xmrig::Variant variant = xmrig::VARIANT_AUTO
|
||||||
);
|
);
|
||||||
|
|
||||||
static const char *algoName(xmrig::Algo algorithm);
|
static const char *algoName(xmrig::Algo algorithm, bool shortName = false);
|
||||||
static xmrig::Algo algorithm(const char *algo);
|
static xmrig::Algo algorithm(const char *algo);
|
||||||
|
|
||||||
inline bool isNicehash() const { return m_nicehash; }
|
inline bool isNicehash() const { return m_nicehash; }
|
||||||
|
|
|
@ -34,6 +34,7 @@ enum Algo {
|
||||||
CRYPTONIGHT, /* CryptoNight (Monero) */
|
CRYPTONIGHT, /* CryptoNight (Monero) */
|
||||||
CRYPTONIGHT_LITE, /* CryptoNight-Lite (AEON) */
|
CRYPTONIGHT_LITE, /* CryptoNight-Lite (AEON) */
|
||||||
CRYPTONIGHT_HEAVY, /* CryptoNight-Heavy (SUMO) */
|
CRYPTONIGHT_HEAVY, /* CryptoNight-Heavy (SUMO) */
|
||||||
|
CRYPTONIGHT_IPBC /* CryptoNight-IPBC (IPBC) */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -47,11 +47,16 @@ constexpr const size_t CRYPTONIGHT_HEAVY_MEMORY = 4 * 1024 * 1024;
|
||||||
constexpr const uint32_t CRYPTONIGHT_HEAVY_MASK = 0x3FFFF0;
|
constexpr const uint32_t CRYPTONIGHT_HEAVY_MASK = 0x3FFFF0;
|
||||||
constexpr const uint32_t CRYPTONIGHT_HEAVY_ITER = 0x40000;
|
constexpr const uint32_t CRYPTONIGHT_HEAVY_ITER = 0x40000;
|
||||||
|
|
||||||
|
constexpr const size_t CRYPTONIGHT_IPBC_MEMORY = 1 * 1024 * 1024;
|
||||||
|
constexpr const uint32_t CRYPTONIGHT_IPBC_MASK = 0xFFFF0;
|
||||||
|
constexpr const uint32_t CRYPTONIGHT_IPBC_ITER = 0x40000;
|
||||||
|
|
||||||
|
|
||||||
template<Algo ALGO> inline constexpr size_t cn_select_memory() { return 0; }
|
template<Algo ALGO> inline constexpr size_t cn_select_memory() { return 0; }
|
||||||
template<> inline constexpr size_t cn_select_memory<CRYPTONIGHT>() { return CRYPTONIGHT_MEMORY; }
|
template<> inline constexpr size_t cn_select_memory<CRYPTONIGHT>() { return CRYPTONIGHT_MEMORY; }
|
||||||
template<> inline constexpr size_t cn_select_memory<CRYPTONIGHT_LITE>() { return CRYPTONIGHT_LITE_MEMORY; }
|
template<> inline constexpr size_t cn_select_memory<CRYPTONIGHT_LITE>() { return CRYPTONIGHT_LITE_MEMORY; }
|
||||||
template<> inline constexpr size_t cn_select_memory<CRYPTONIGHT_HEAVY>() { return CRYPTONIGHT_HEAVY_MEMORY; }
|
template<> inline constexpr size_t cn_select_memory<CRYPTONIGHT_HEAVY>() { return CRYPTONIGHT_HEAVY_MEMORY; }
|
||||||
|
template<> inline constexpr size_t cn_select_memory<CRYPTONIGHT_IPBC>() { return CRYPTONIGHT_IPBC_MEMORY; }
|
||||||
|
|
||||||
inline size_t cn_select_memory(Algo algorithm)
|
inline size_t cn_select_memory(Algo algorithm)
|
||||||
{
|
{
|
||||||
|
@ -66,6 +71,9 @@ inline size_t cn_select_memory(Algo algorithm)
|
||||||
case CRYPTONIGHT_HEAVY:
|
case CRYPTONIGHT_HEAVY:
|
||||||
return CRYPTONIGHT_HEAVY_MEMORY;
|
return CRYPTONIGHT_HEAVY_MEMORY;
|
||||||
|
|
||||||
|
case CRYPTONIGHT_IPBC:
|
||||||
|
return CRYPTONIGHT_IPBC_MEMORY;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -78,6 +86,7 @@ template<Algo ALGO> inline constexpr uint32_t cn_select_mask() { retur
|
||||||
template<> inline constexpr uint32_t cn_select_mask<CRYPTONIGHT>() { return CRYPTONIGHT_MASK; }
|
template<> inline constexpr uint32_t cn_select_mask<CRYPTONIGHT>() { return CRYPTONIGHT_MASK; }
|
||||||
template<> inline constexpr uint32_t cn_select_mask<CRYPTONIGHT_LITE>() { return CRYPTONIGHT_LITE_MASK; }
|
template<> inline constexpr uint32_t cn_select_mask<CRYPTONIGHT_LITE>() { return CRYPTONIGHT_LITE_MASK; }
|
||||||
template<> inline constexpr uint32_t cn_select_mask<CRYPTONIGHT_HEAVY>() { return CRYPTONIGHT_HEAVY_MASK; }
|
template<> inline constexpr uint32_t cn_select_mask<CRYPTONIGHT_HEAVY>() { return CRYPTONIGHT_HEAVY_MASK; }
|
||||||
|
template<> inline constexpr uint32_t cn_select_mask<CRYPTONIGHT_IPBC>() { return CRYPTONIGHT_IPBC_MASK; }
|
||||||
|
|
||||||
inline uint32_t cn_select_mask(Algo algorithm)
|
inline uint32_t cn_select_mask(Algo algorithm)
|
||||||
{
|
{
|
||||||
|
@ -92,6 +101,9 @@ inline uint32_t cn_select_mask(Algo algorithm)
|
||||||
case CRYPTONIGHT_HEAVY:
|
case CRYPTONIGHT_HEAVY:
|
||||||
return CRYPTONIGHT_HEAVY_MASK;
|
return CRYPTONIGHT_HEAVY_MASK;
|
||||||
|
|
||||||
|
case CRYPTONIGHT_IPBC:
|
||||||
|
return CRYPTONIGHT_IPBC_MASK;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -104,6 +116,7 @@ template<Algo ALGO> inline constexpr uint32_t cn_select_iter() { retur
|
||||||
template<> inline constexpr uint32_t cn_select_iter<CRYPTONIGHT>() { return CRYPTONIGHT_ITER; }
|
template<> inline constexpr uint32_t cn_select_iter<CRYPTONIGHT>() { return CRYPTONIGHT_ITER; }
|
||||||
template<> inline constexpr uint32_t cn_select_iter<CRYPTONIGHT_LITE>() { return CRYPTONIGHT_LITE_ITER; }
|
template<> inline constexpr uint32_t cn_select_iter<CRYPTONIGHT_LITE>() { return CRYPTONIGHT_LITE_ITER; }
|
||||||
template<> inline constexpr uint32_t cn_select_iter<CRYPTONIGHT_HEAVY>() { return CRYPTONIGHT_HEAVY_ITER; }
|
template<> inline constexpr uint32_t cn_select_iter<CRYPTONIGHT_HEAVY>() { return CRYPTONIGHT_HEAVY_ITER; }
|
||||||
|
template<> inline constexpr uint32_t cn_select_iter<CRYPTONIGHT_IPBC>() { return CRYPTONIGHT_IPBC_ITER; }
|
||||||
|
|
||||||
inline uint32_t cn_select_iter(Algo algorithm)
|
inline uint32_t cn_select_iter(Algo algorithm)
|
||||||
{
|
{
|
||||||
|
@ -118,6 +131,9 @@ inline uint32_t cn_select_iter(Algo algorithm)
|
||||||
case CRYPTONIGHT_HEAVY:
|
case CRYPTONIGHT_HEAVY:
|
||||||
return CRYPTONIGHT_HEAVY_ITER;
|
return CRYPTONIGHT_HEAVY_ITER;
|
||||||
|
|
||||||
|
case CRYPTONIGHT_IPBC:
|
||||||
|
return CRYPTONIGHT_IPBC_ITER;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue