Browse Source

Merge pull request #2147 from SChernykh/dev

Fixed many "new job" messages when solo mining
pull/2150/head
xmrig 3 years ago
committed by GitHub
parent
commit
ca5dfe7c12
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 26
      src/base/net/stratum/DaemonClient.cpp
  2. 2
      src/base/net/stratum/DaemonClient.h

26
src/base/net/stratum/DaemonClient.cpp

@ -179,12 +179,30 @@ void xmrig::DaemonClient::onHttpData(const HttpData &data)
return send(kGetInfo);
}
if (isOutdated(Json::getUint64(doc, kHeight), Json::getString(doc, kHash))) {
getBlockTemplate();
const uint64_t height = Json::getUint64(doc, kHeight);
const String hash = Json::getString(doc, kHash);
if (isOutdated(height, hash)) {
// Multiple /getheight responses can come at once resulting in multiple getBlockTemplate() calls
if ((height != m_blocktemplateRequestHeight) || (hash != m_blocktemplateRequestHash)) {
m_blocktemplateRequestHeight = height;
m_blocktemplateRequestHash = hash;
getBlockTemplate();
}
}
}
else if (data.url == kGetInfo && isOutdated(Json::getUint64(doc, kHeight), Json::getString(doc, "top_block_hash"))) {
getBlockTemplate();
else if (data.url == kGetInfo) {
const uint64_t height = Json::getUint64(doc, kHeight);
const String hash = Json::getString(doc, "top_block_hash");
if (isOutdated(height, hash)) {
// Multiple /getinfo responses can come at once resulting in multiple getBlockTemplate() calls
if ((height != m_blocktemplateRequestHeight) || (hash != m_blocktemplateRequestHash)) {
m_blocktemplateRequestHeight = height;
m_blocktemplateRequestHash = hash;
getBlockTemplate();
}
}
}
return;

2
src/base/net/stratum/DaemonClient.h

@ -89,6 +89,8 @@ private:
String m_tlsFingerprint;
String m_tlsVersion;
Timer *m_timer;
uint64_t m_blocktemplateRequestHeight = 0;
String m_blocktemplateRequestHash;
};

Loading…
Cancel
Save