Integrated new Algos (#224)

- Added XLT v5/9 with autodetect(algo: "cryptonight", variant: "xtl" (autodetect), "xtlv9" (force v9))
- Added cn-lite variant UPX/uPlexa (algo: "cryptonight-lite", variant "upx")
- Added force-pow-variant parameter to force usage of the variant from the config and skip parsing of pow/variant from job/pool
This commit is contained in:
Ben Gräf 2019-01-04 18:34:48 +00:00 committed by GitHub
parent d36797d696
commit 1273e45e46
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
30 changed files with 3372 additions and 52 deletions

View file

@ -231,27 +231,29 @@ bool Client::parseJob(const rapidjson::Value &params, int *code)
PowVariant powVariant = Options::i()->powVariant();
if (params.HasMember("algo")) {
std::string algo = params["algo"].GetString();
if (!Options::i()->forcePowVariant()) {
if (params.HasMember("algo")) {
std::string algo = params["algo"].GetString();
if (algo.find("/") != std::string::npos) {
powVariant = parseVariant(algo.substr(algo.find("/")+1));
}
}
if (params.HasMember("variant")) {
const rapidjson::Value &variant = params["variant"];
PowVariant parsedVariant = powVariant;
if (variant.IsInt()) {
parsedVariant = parseVariant(variant.GetInt());
} else if (variant.IsString()) {
parsedVariant = parseVariant(variant.GetString());
if (algo.find("/") != std::string::npos) {
powVariant = parseVariant(algo.substr(algo.find("/") + 1));
}
}
if (parsedVariant != POW_AUTODETECT) {
powVariant = parsedVariant;
if (params.HasMember("variant")) {
const rapidjson::Value& variant = params["variant"];
PowVariant parsedVariant = powVariant;
if (variant.IsInt()) {
parsedVariant = parseVariant(variant.GetInt());
} else if (variant.IsString()) {
parsedVariant = parseVariant(variant.GetString());
}
if (parsedVariant != POW_AUTODETECT) {
powVariant = parsedVariant;
}
}
}

View file

@ -146,6 +146,10 @@ PowVariant Job::powVariant() const
} else {
return PowVariant::POW_V0;
}
} else if (m_powVariant == PowVariant::POW_XTL) {
if (m_blob[0] > 5) {
return PowVariant::POW_XTL_V9;
}
} else {
return m_powVariant;
}