Add Masari v7 support (#133)

This commit is contained in:
Ben Gräf 2018-06-14 21:14:36 +02:00 committed by GitHub
parent e23743980e
commit ae15b9f5ac
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 22 additions and 9 deletions

View file

@ -281,7 +281,8 @@ constexpr static const char *pow_variant_names[] = {
"1", "1",
"ipbc", "ipbc",
"alloy", "alloy",
"xtl" "xtl",
"msr"
}; };
Options *Options::parse(int argc, char **argv) Options *Options::parse(int argc, char **argv)
@ -1022,7 +1023,6 @@ bool Options::parsePowVariant(const char *powVariant)
break; break;
} }
if (i == ARRAY_SIZE(pow_variant_names) - 1 && !strcmp(powVariant, "tube")) { if (i == ARRAY_SIZE(pow_variant_names) - 1 && !strcmp(powVariant, "tube")) {
m_powVariant = POW_IPBC; m_powVariant = POW_IPBC;
break; break;

View file

@ -30,6 +30,7 @@ enum PowVariant
POW_IPBC, POW_IPBC,
POW_ALLOY, POW_ALLOY,
POW_XTL, POW_XTL,
POW_MSR,
LAST_ITEM LAST_ITEM
}; };
@ -47,6 +48,8 @@ inline std::string getPowVariantName(PowVariant powVariant)
return "alloy"; return "alloy";
case POW_XTL: case POW_XTL:
return "xtl"; return "xtl";
case POW_MSR:
return "msr";
case POW_AUTODETECT: case POW_AUTODETECT:
default: default:
return "-1"; return "-1";
@ -95,12 +98,14 @@ inline PowVariant parseVariant(const std::string variant)
powVariant = PowVariant::POW_V0; powVariant = PowVariant::POW_V0;
} else if (variant == "1") { } else if (variant == "1") {
powVariant = PowVariant::POW_V1; powVariant = PowVariant::POW_V1;
} else if (variant == "ipbc") { } else if (variant == "ipbc" || variant == "tube") {
powVariant = PowVariant::POW_IPBC; powVariant = PowVariant::POW_IPBC;
} else if (variant == "alloy") { } else if (variant == "xao" || variant == "alloy") {
powVariant = PowVariant::POW_ALLOY; powVariant = PowVariant::POW_ALLOY;
} else if (variant == "xtl") { } else if (variant == "xtl" || variant == "stellite") {
powVariant = PowVariant::POW_XTL; powVariant = PowVariant::POW_XTL;
} else if (variant == "msr" || variant == "masari") {
powVariant = PowVariant::POW_MSR;
} }
return powVariant; return powVariant;

View file

@ -1,5 +1,5 @@
{ {
"algo": "cryptonight", // cryptonight (default), cryptonight-lite or cryptopnight-heavy "algo": "cryptonight", // cryptonight (default), cryptonight-lite or cryptonight-heavy
"aesni": 0, // selection of AES-NI mode (0 auto, 1 on, 2 off) "aesni": 0, // selection of AES-NI mode (0 auto, 1 on, 2 off)
"threads": 0, // number of miner threads (not set or 0 enables automatic selection of optimal thread count) "threads": 0, // number of miner threads (not set or 0 enables automatic selection of optimal thread count)
"multihash-factor": 0, // number of hash blocks to process at a time (not set or 0 enables automatic selection of optimal number of hash blocks) "multihash-factor": 0, // number of hash blocks to process at a time (not set or 0 enables automatic selection of optimal number of hash blocks)
@ -33,7 +33,7 @@
"use-tls" : false, // enable tls for CC communication (needs to be enabled on CC Server too) "use-tls" : false, // enable tls for CC communication (needs to be enabled on CC Server too)
"access-token": "mySecret", // access token for CC Server (has to be the same in config_cc.json) "access-token": "mySecret", // access token for CC Server (has to be the same in config_cc.json)
"worker-id": null, // custom worker-id for CC Server (otherwise hostname is used) "worker-id": null, // custom worker-id for CC Server (otherwise hostname is used)
"update-interval-s": 10 // status update interval in seconds (default: 10 min: 1) "update-interval-s": 10, // status update interval in seconds (default: 10 min: 1)
"use-remote-logging" : true, // enable remote logging on CC Server "use-remote-logging" : true, // enable remote logging on CC Server
"remote-logging-max-rows" : 20 // maximum last n-log rows to send CC Server "remote-logging-max-rows" : 20 // maximum last n-log rows to send CC Server
} }

View file

@ -42,6 +42,8 @@ static void cryptonight_aesni(PowVariant powVersion, const uint8_t* input, size_
CryptoNightMultiHash<0x100000, POW_DEFAULT_INDEX_SHIFT, MEMORY, 0x1FFFF0, false, NUM_HASH_BLOCKS>::hash(input, size, output, ctx); CryptoNightMultiHash<0x100000, POW_DEFAULT_INDEX_SHIFT, MEMORY, 0x1FFFF0, false, NUM_HASH_BLOCKS>::hash(input, size, output, ctx);
} else if (powVersion == PowVariant::POW_XTL) { } else if (powVersion == PowVariant::POW_XTL) {
CryptoNightMultiHash<0x80000, POW_XLT_V4_INDEX_SHIFT, MEMORY, 0x1FFFF0, false, NUM_HASH_BLOCKS>::hashPowV2(input, size, output, ctx); CryptoNightMultiHash<0x80000, POW_XLT_V4_INDEX_SHIFT, MEMORY, 0x1FFFF0, false, NUM_HASH_BLOCKS>::hashPowV2(input, size, output, ctx);
} else if (powVersion == PowVariant::POW_MSR) {
CryptoNightMultiHash<0x40000, POW_DEFAULT_INDEX_SHIFT, MEMORY, 0x1FFFF0, false, NUM_HASH_BLOCKS>::hashPowV2(input, size, output, ctx);
} else { } else {
CryptoNightMultiHash<0x80000, POW_DEFAULT_INDEX_SHIFT, MEMORY, 0x1FFFF0, false, NUM_HASH_BLOCKS>::hash(input, size, output, ctx); CryptoNightMultiHash<0x80000, POW_DEFAULT_INDEX_SHIFT, MEMORY, 0x1FFFF0, false, NUM_HASH_BLOCKS>::hash(input, size, output, ctx);
} }
@ -56,6 +58,8 @@ static void cryptonight_softaes(PowVariant powVersion, const uint8_t* input, siz
CryptoNightMultiHash<0x100000, POW_DEFAULT_INDEX_SHIFT, MEMORY, 0x1FFFF0, true, NUM_HASH_BLOCKS>::hash(input, size, output, ctx); CryptoNightMultiHash<0x100000, POW_DEFAULT_INDEX_SHIFT, MEMORY, 0x1FFFF0, true, NUM_HASH_BLOCKS>::hash(input, size, output, ctx);
} else if (powVersion == PowVariant::POW_XTL) { } else if (powVersion == PowVariant::POW_XTL) {
CryptoNightMultiHash<0x80000, POW_XLT_V4_INDEX_SHIFT, MEMORY, 0x1FFFF0, true, NUM_HASH_BLOCKS>::hashPowV2(input, size, output, ctx); CryptoNightMultiHash<0x80000, POW_XLT_V4_INDEX_SHIFT, MEMORY, 0x1FFFF0, true, NUM_HASH_BLOCKS>::hashPowV2(input, size, output, ctx);
} else if (powVersion == PowVariant::POW_MSR) {
CryptoNightMultiHash<0x40000, POW_DEFAULT_INDEX_SHIFT, MEMORY, 0x1FFFF0, true, NUM_HASH_BLOCKS>::hashPowV2(input, size, output, ctx);
} else { } else {
CryptoNightMultiHash<0x80000, POW_DEFAULT_INDEX_SHIFT, MEMORY, 0x1FFFF0, true, NUM_HASH_BLOCKS>::hash(input, size, output, ctx); CryptoNightMultiHash<0x80000, POW_DEFAULT_INDEX_SHIFT, MEMORY, 0x1FFFF0, true, NUM_HASH_BLOCKS>::hash(input, size, output, ctx);
} }

View file

@ -33,7 +33,7 @@
"use-tls" : false, // enable tls for CC communication (needs to be enabled on CC Server too) "use-tls" : false, // enable tls for CC communication (needs to be enabled on CC Server too)
"access-token": "mySecret", // access token for CC Server (has to be the same in config_cc.json) "access-token": "mySecret", // access token for CC Server (has to be the same in config_cc.json)
"worker-id": null, // custom worker-id for CC Server (otherwise hostname is used) "worker-id": null, // custom worker-id for CC Server (otherwise hostname is used)
"update-interval-s": 10 // status update interval in seconds (default: 10 min: 1) "update-interval-s": 10, // status update interval in seconds (default: 10 min: 1)
"use-remote-logging" : true, // enable remote logging on CC Server "use-remote-logging" : true, // enable remote logging on CC Server
"remote-logging-max-rows" : 20 // maximum last n-log rows to send CC Server "remote-logging-max-rows" : 20 // maximum last n-log rows to send CC Server
} }

View file

@ -146,6 +146,10 @@ PowVariant Job::powVariant() const
{ {
return POW_V1; return POW_V1;
} }
else if (m_powVariant == PowVariant::POW_MSR && m_blob[0] < 7)
{
return POW_V1;
}
else else
{ {
return m_powVariant; return m_powVariant;

View file

@ -36,7 +36,7 @@
#define APP_DESC "XMRigCC CPU miner" #define APP_DESC "XMRigCC CPU miner"
#define APP_COPYRIGHT "Copyright (C) 2017- BenDr0id" #define APP_COPYRIGHT "Copyright (C) 2017- BenDr0id"
#endif #endif
#define APP_VERSION "1.6.4_beta1 (based on XMRig)" #define APP_VERSION "1.6.4_masari_v7_support (based on XMRig)"
#define APP_DOMAIN "" #define APP_DOMAIN ""
#define APP_SITE "https://github.com/Bendr0id/xmrigCC" #define APP_SITE "https://github.com/Bendr0id/xmrigCC"
#define APP_KIND "cpu" #define APP_KIND "cpu"