-
Notifications
You must be signed in to change notification settings - Fork 262
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
10 changed files
with
138 additions
and
19 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,7 +6,7 @@ | |
* Copyright 2016 Jay D Dee <[email protected]> | ||
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt> | ||
* Copyright 2018 Lee Clagett <https://github.com/vtnerd> | ||
* Copyright 2018 SChernykh <https://github.com/SChernykh> | ||
* Copyright 2018-2019 SChernykh <https://github.com/SChernykh> | ||
* Copyright 2016-2019 XMRig <https://github.com/xmrig>, <[email protected]> | ||
* | ||
* This program is free software: you can redistribute it and/or modify | ||
|
@@ -78,6 +78,14 @@ static AlgoData const algorithms[] = { | |
{ "cryptonight-heavy/xhv", "cn-heavy/xhv", xmrig::CRYPTONIGHT_HEAVY, xmrig::VARIANT_XHV }, | ||
{ "cryptonight-heavy/tube", "cn-heavy/tube", xmrig::CRYPTONIGHT_HEAVY, xmrig::VARIANT_TUBE }, | ||
# endif | ||
|
||
# ifndef XMRIG_NO_CN_PICO | ||
{ "cryptonight-pico/trtl", "cn-pico/trtl", xmrig::CRYPTONIGHT_PICO, xmrig::VARIANT_TRTL }, | ||
{ "cryptonight-pico", "cn-pico", xmrig::CRYPTONIGHT_PICO, xmrig::VARIANT_TRTL }, | ||
{ "cryptonight-turtle", "cn-trtl", xmrig::CRYPTONIGHT_PICO, xmrig::VARIANT_TRTL }, | ||
{ "cryptonight-ultralite", "cn-ultralite", xmrig::CRYPTONIGHT_PICO, xmrig::VARIANT_TRTL }, | ||
{ "cryptonight_turtle", "cn_turtle", xmrig::CRYPTONIGHT_PICO, xmrig::VARIANT_TRTL }, | ||
# endif | ||
}; | ||
|
||
|
||
|
@@ -111,7 +119,8 @@ static const char *variants[] = { | |
"xao", | ||
"rto", | ||
"2", | ||
"half" | ||
"half", | ||
"trtl" | ||
}; | ||
|
||
|
||
|
@@ -225,6 +234,10 @@ void xmrig::Algorithm::parseVariant(int variant) | |
void xmrig::Algorithm::setAlgo(Algo algo) | ||
{ | ||
m_algo = algo; | ||
|
||
if (m_algo == CRYPTONIGHT_PICO && m_variant == VARIANT_AUTO) { | ||
m_variant = xmrig::VARIANT_TRTL; | ||
} | ||
} | ||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,7 +5,7 @@ | |
* Copyright 2014-2016 Wolf9466 <https://github.com/OhGodAPet> | ||
* Copyright 2016 Jay D Dee <[email protected]> | ||
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt> | ||
* Copyright 2018 SChernykh <https://github.com/SChernykh> | ||
* Copyright 2018-2019 SChernykh <https://github.com/SChernykh> | ||
* Copyright 2016-2019 XMRig <https://github.com/xmrig>, <[email protected]> | ||
* | ||
* This program is free software: you can redistribute it and/or modify | ||
|
@@ -32,9 +32,11 @@ namespace xmrig | |
|
||
enum Algo { | ||
INVALID_ALGO = -1, | ||
CRYPTONIGHT, /* CryptoNight (Monero) */ | ||
CRYPTONIGHT_LITE, /* CryptoNight-Lite (AEON) */ | ||
CRYPTONIGHT_HEAVY /* CryptoNight-Heavy (RYO) */ | ||
CRYPTONIGHT, /* CryptoNight (2 MB) */ | ||
CRYPTONIGHT_LITE, /* CryptoNight (1 MB) */ | ||
CRYPTONIGHT_HEAVY, /* CryptoNight (4 MB) */ | ||
CRYPTONIGHT_PICO, /* CryptoNight (256 KB) */ | ||
ALGO_MAX | ||
}; | ||
|
||
|
||
|
@@ -70,6 +72,7 @@ enum Variant { | |
VARIANT_RTO = 7, // Modified CryptoNight variant 1 (Arto only) | ||
VARIANT_2 = 8, // CryptoNight variant 2 | ||
VARIANT_HALF = 9, // CryptoNight variant 2 with half iterations (Masari/Stellite) | ||
VARIANT_TRTL = 10, // CryptoNight Turtle (TRTL) | ||
VARIANT_MAX | ||
}; | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,6 +6,7 @@ | |
* Copyright 2016 Jay D Dee <[email protected]> | ||
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt> | ||
* Copyright 2018 Lee Clagett <https://github.com/vtnerd> | ||
* Copyright 2018-2019 SChernykh <https://github.com/SChernykh> | ||
* Copyright 2016-2019 XMRig <https://github.com/xmrig>, <[email protected]> | ||
* | ||
* This program is free software: you can redistribute it and/or modify | ||
|
@@ -22,8 +23,8 @@ | |
* along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
*/ | ||
|
||
#ifndef __CRYPTONIGHT_CONSTANTS_H__ | ||
#define __CRYPTONIGHT_CONSTANTS_H__ | ||
#ifndef XMRIG_CRYPTONIGHT_CONSTANTS_H | ||
#define XMRIG_CRYPTONIGHT_CONSTANTS_H | ||
|
||
|
||
#include <stdint.h> | ||
|
@@ -49,11 +50,17 @@ constexpr const size_t CRYPTONIGHT_HEAVY_MEMORY = 4 * 1024 * 1024; | |
constexpr const uint32_t CRYPTONIGHT_HEAVY_MASK = 0x3FFFF0; | ||
constexpr const uint32_t CRYPTONIGHT_HEAVY_ITER = 0x40000; | ||
|
||
constexpr const size_t CRYPTONIGHT_PICO_MEMORY = 256 * 1024; | ||
constexpr const uint32_t CRYPTONIGHT_PICO_MASK = 0x1FFF0; | ||
constexpr const uint32_t CRYPTONIGHT_PICO_ITER = 0x40000; | ||
constexpr const uint32_t CRYPTONIGHT_TRTL_ITER = 0x10000; | ||
|
||
|
||
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_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_PICO>() { return CRYPTONIGHT_PICO_MEMORY; } | ||
|
||
|
||
inline size_t cn_select_memory(Algo algorithm) | ||
|
@@ -69,6 +76,9 @@ inline size_t cn_select_memory(Algo algorithm) | |
case CRYPTONIGHT_HEAVY: | ||
return CRYPTONIGHT_HEAVY_MEMORY; | ||
|
||
case CRYPTONIGHT_PICO: | ||
return CRYPTONIGHT_PICO_MEMORY; | ||
|
||
default: | ||
break; | ||
} | ||
|
@@ -81,6 +91,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_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_PICO>() { return CRYPTONIGHT_PICO_MASK; } | ||
|
||
|
||
inline uint32_t cn_select_mask(Algo algorithm) | ||
|
@@ -96,6 +107,9 @@ inline uint32_t cn_select_mask(Algo algorithm) | |
case CRYPTONIGHT_HEAVY: | ||
return CRYPTONIGHT_HEAVY_MASK; | ||
|
||
case CRYPTONIGHT_PICO: | ||
return CRYPTONIGHT_PICO_MASK; | ||
|
||
default: | ||
break; | ||
} | ||
|
@@ -118,6 +132,7 @@ template<> inline constexpr uint32_t cn_select_iter<CRYPTONIGHT_LITE, VARIANT_1> | |
template<> inline constexpr uint32_t cn_select_iter<CRYPTONIGHT_HEAVY, VARIANT_0>() { return CRYPTONIGHT_HEAVY_ITER; } | ||
template<> inline constexpr uint32_t cn_select_iter<CRYPTONIGHT_HEAVY, VARIANT_XHV>() { return CRYPTONIGHT_HEAVY_ITER; } | ||
template<> inline constexpr uint32_t cn_select_iter<CRYPTONIGHT_HEAVY, VARIANT_TUBE>() { return CRYPTONIGHT_HEAVY_ITER; } | ||
template<> inline constexpr uint32_t cn_select_iter<CRYPTONIGHT_PICO, VARIANT_TRTL>() { return CRYPTONIGHT_TRTL_ITER; } | ||
|
||
|
||
inline uint32_t cn_select_iter(Algo algorithm, Variant variant) | ||
|
@@ -130,6 +145,9 @@ inline uint32_t cn_select_iter(Algo algorithm, Variant variant) | |
case VARIANT_RTO: | ||
return CRYPTONIGHT_XAO_ITER; | ||
|
||
case VARIANT_TRTL: | ||
return CRYPTONIGHT_TRTL_ITER; | ||
|
||
default: | ||
break; | ||
} | ||
|
@@ -145,6 +163,9 @@ inline uint32_t cn_select_iter(Algo algorithm, Variant variant) | |
case CRYPTONIGHT_HEAVY: | ||
return CRYPTONIGHT_HEAVY_ITER; | ||
|
||
case CRYPTONIGHT_PICO: | ||
return CRYPTONIGHT_TRTL_ITER; | ||
|
||
default: | ||
break; | ||
} | ||
|
@@ -164,9 +185,10 @@ template<> inline constexpr Variant cn_base_variant<VARIANT_XAO>() { return VA | |
template<> inline constexpr Variant cn_base_variant<VARIANT_RTO>() { return VARIANT_1; } | ||
template<> inline constexpr Variant cn_base_variant<VARIANT_2>() { return VARIANT_2; } | ||
template<> inline constexpr Variant cn_base_variant<VARIANT_HALF>() { return VARIANT_2; } | ||
template<> inline constexpr Variant cn_base_variant<VARIANT_TRTL>() { return VARIANT_2; } | ||
|
||
|
||
} /* namespace xmrig */ | ||
|
||
|
||
#endif /* __CRYPTONIGHT_CONSTANTS_H__ */ | ||
#endif /* XMRIG_CRYPTONIGHT_CONSTANTS_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,6 +6,7 @@ | |
* Copyright 2016 Jay D Dee <[email protected]> | ||
* Copyright 2017-2018 XMR-Stak <https://github.com/fireice-uk>, <https://github.com/psychocrypt> | ||
* Copyright 2018 Lee Clagett <https://github.com/vtnerd> | ||
* Copyright 2018-2019 SChernykh <https://github.com/SChernykh> | ||
* Copyright 2016-2019 XMRig <https://github.com/xmrig>, <[email protected]> | ||
* | ||
* This program is free software: you can redistribute it and/or modify | ||
|
@@ -254,4 +255,21 @@ const static uint8_t test_output_tube_heavy[160] = { | |
#endif | ||
|
||
|
||
#ifndef XMRIG_NO_CN_PICO | ||
// "cn-pico/trtl" | ||
const static uint8_t test_output_pico_trtl[160] = { | ||
0x08, 0xF4, 0x21, 0xD7, 0x83, 0x31, 0x17, 0x30, 0x0E, 0xDA, 0x66, 0xE9, 0x8F, 0x4A, 0x25, 0x69, | ||
0x09, 0x3D, 0xF3, 0x00, 0x50, 0x01, 0x73, 0x94, 0x4E, 0xFC, 0x40, 0x1E, 0x9A, 0x4A, 0x17, 0xAF, | ||
0xB2, 0x17, 0x2E, 0xC9, 0x46, 0x6E, 0x1A, 0xEE, 0x70, 0xEC, 0x85, 0x72, 0xA1, 0x4C, 0x23, 0x3E, | ||
0xE3, 0x54, 0x58, 0x2B, 0xCB, 0x93, 0xF8, 0x69, 0xD4, 0x29, 0x74, 0x4D, 0xE5, 0x72, 0x6A, 0x26, | ||
0x4E, 0xFD, 0x28, 0xFC, 0xD3, 0x74, 0x8A, 0x83, 0xF3, 0xCA, 0x92, 0x84, 0xE7, 0x4E, 0x10, 0xC2, | ||
0x05, 0x62, 0xC7, 0xBE, 0x99, 0x73, 0xED, 0x90, 0xB5, 0x6F, 0xDA, 0x64, 0x71, 0x2D, 0x99, 0x39, | ||
0x29, 0xDB, 0x22, 0x2B, 0x97, 0xB6, 0x37, 0x0E, 0x9A, 0x03, 0x65, 0xCC, 0xF7, 0xD0, 0x9A, 0xB7, | ||
0x68, 0xCE, 0x07, 0x3E, 0x15, 0x40, 0x3C, 0xCE, 0x8C, 0x63, 0x16, 0x72, 0xB5, 0x74, 0x84, 0xF4, | ||
0xA1, 0xE7, 0x53, 0x85, 0xFB, 0x72, 0xDD, 0x75, 0x90, 0x39, 0xB2, 0x3D, 0xC3, 0x08, 0x2C, 0xD5, | ||
0x01, 0x08, 0x27, 0x75, 0x86, 0xB9, 0xBB, 0x9B, 0xDF, 0xEA, 0x49, 0xDE, 0x46, 0xCB, 0x83, 0x45 | ||
}; | ||
#endif | ||
|
||
|
||
#endif /* XMRIG_CRYPTONIGHT_TEST_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.