Fixing miner issues
- Switch from full-block to header-only (140-byte) RandomX input - Add 32-byte SoloNonce system for solo mining mode - Compute proper difficulty target from compact bits field - Add SHA256D dual-hash PoW check in CpuWorker for solo mining - Raise RandomX dataset/scratchpad limits to 4GB/4MB - Use standard RandomX share filtering in pool (stratum) mode
This commit is contained in:
@@ -79,6 +79,22 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
// Constructor for solo/DragonX mining with full 32-byte nonce
|
||||
inline JobResult(const Job &job, const uint8_t *nonce32, const uint8_t *result) :
|
||||
algorithm(job.algorithm()),
|
||||
index(job.index()),
|
||||
clientId(job.clientId()),
|
||||
jobId(job.id()),
|
||||
backend(job.backend()),
|
||||
nonce(0),
|
||||
diff(job.diff()),
|
||||
m_isSoloResult(true)
|
||||
{
|
||||
memcpy(m_result, result, sizeof(m_result));
|
||||
memcpy(m_nonceBytes, nonce32, 32);
|
||||
m_nonceSize = 32;
|
||||
}
|
||||
|
||||
inline const uint8_t *result() const { return m_result; }
|
||||
inline uint64_t actualDiff() const { return Job::toDiff(reinterpret_cast<const uint64_t*>(m_result)[3]); }
|
||||
inline uint8_t *result() { return m_result; }
|
||||
@@ -87,6 +103,12 @@ public:
|
||||
|
||||
inline const uint8_t *minerSignature() const { return m_hasMinerSignature ? m_minerSignature : nullptr; }
|
||||
|
||||
// Solo nonce support
|
||||
inline bool isSoloResult() const { return m_isSoloResult; }
|
||||
inline const uint8_t *soloNonce() const { return m_nonceBytes; }
|
||||
inline const uint8_t *nonceBytes() const { return m_nonceBytes; }
|
||||
inline size_t nonceSize() const { return m_nonceSize; }
|
||||
|
||||
const Algorithm algorithm;
|
||||
const uint8_t index;
|
||||
const String clientId;
|
||||
@@ -102,6 +124,9 @@ private:
|
||||
|
||||
uint8_t m_minerSignature[64] = { 0 };
|
||||
bool m_hasMinerSignature = false;
|
||||
uint8_t m_nonceBytes[32] = { 0 };
|
||||
size_t m_nonceSize = 4;
|
||||
bool m_isSoloResult = false;
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user