mirror of
https://github.com/BitMaker-hub/NerdMiner_v2.git
synced 2025-10-09 20:55:11 +02:00
decrease transfer size;
fixed network loop; fixed esp32s3 sha? Need to perform long test
This commit is contained in:
@@ -480,6 +480,8 @@ void runStratumWorker(void *name) {
|
|||||||
hashes += res->nonce_count;
|
hashes += res->nonce_count;
|
||||||
if (res->difficulty > currentPoolDifficulty && job_pool == res->id && res->nonce != 0xFFFFFFFF)
|
if (res->difficulty > currentPoolDifficulty && job_pool == res->id && res->nonce != 0xFFFFFFFF)
|
||||||
{
|
{
|
||||||
|
if (!client.connected())
|
||||||
|
break;
|
||||||
unsigned long sumbit_id = 0;
|
unsigned long sumbit_id = 0;
|
||||||
tx_mining_submit(client, mWorker, mJob, res->nonce, sumbit_id);
|
tx_mining_submit(client, mWorker, mJob, res->nonce, sumbit_id);
|
||||||
Serial.print(" - Current diff share: "); Serial.println(res->difficulty,12);
|
Serial.print(" - Current diff share: "); Serial.println(res->difficulty,12);
|
||||||
@@ -589,7 +591,8 @@ static inline void nerd_sha_ll_fill_text_block_sha256(const void *input_text, ui
|
|||||||
REG_WRITE(®_addr_buf[1], data_words[1]);
|
REG_WRITE(®_addr_buf[1], data_words[1]);
|
||||||
REG_WRITE(®_addr_buf[2], data_words[2]);
|
REG_WRITE(®_addr_buf[2], data_words[2]);
|
||||||
#if 0
|
#if 0
|
||||||
REG_WRITE(®_addr_buf[3], data_words[3]);
|
REG_WRITE(®_addr_buf[3], nonce);
|
||||||
|
//REG_WRITE(®_addr_buf[3], data_words[3]);
|
||||||
REG_WRITE(®_addr_buf[4], data_words[4]);
|
REG_WRITE(®_addr_buf[4], data_words[4]);
|
||||||
REG_WRITE(®_addr_buf[5], data_words[5]);
|
REG_WRITE(®_addr_buf[5], data_words[5]);
|
||||||
REG_WRITE(®_addr_buf[6], data_words[6]);
|
REG_WRITE(®_addr_buf[6], data_words[6]);
|
||||||
@@ -662,7 +665,7 @@ static inline bool nerd_sha_ll_read_digest_if(void* ptr)
|
|||||||
{
|
{
|
||||||
DPORT_INTERRUPT_DISABLE();
|
DPORT_INTERRUPT_DISABLE();
|
||||||
uint32_t last = DPORT_SEQUENCE_REG_READ(SHA_H_BASE + 7 * 4);
|
uint32_t last = DPORT_SEQUENCE_REG_READ(SHA_H_BASE + 7 * 4);
|
||||||
if ( last >> 16 != 0)
|
if ( (uint16_t)(last >> 16) != 0)
|
||||||
{
|
{
|
||||||
DPORT_INTERRUPT_RESTORE();
|
DPORT_INTERRUPT_RESTORE();
|
||||||
return false;
|
return false;
|
||||||
@@ -745,41 +748,39 @@ void minerWorkerHw(void * task_id)
|
|||||||
esp_sha_acquire_hardware();
|
esp_sha_acquire_hardware();
|
||||||
for (uint32_t n = 0; n < job->nonce_count; ++n)
|
for (uint32_t n = 0; n < job->nonce_count; ++n)
|
||||||
{
|
{
|
||||||
//((uint32_t*)(sha_buffer+12))[0] = job->nonce_start+n;
|
//nerd_sha_hal_wait_idle();
|
||||||
|
|
||||||
//sha_hal_write_digest(SHA2_256, midstate);
|
|
||||||
nerd_sha_ll_write_digest(digest_mid);
|
nerd_sha_ll_write_digest(digest_mid);
|
||||||
//nerd_sha_ll_write_digest_sha256(midstate);
|
|
||||||
|
|
||||||
//sha_hal_hash_block(SHA2_256, s_test_buffer+64, 64/4, false);
|
|
||||||
//sha_hal_wait_idle();
|
|
||||||
nerd_sha_hal_wait_idle();
|
nerd_sha_hal_wait_idle();
|
||||||
//sha_ll_fill_text_block(s_test_buffer+64, 64/4);
|
|
||||||
nerd_sha_ll_fill_text_block_sha256(sha_buffer, job->nonce_start+n);
|
nerd_sha_ll_fill_text_block_sha256(sha_buffer, job->nonce_start+n);
|
||||||
sha_ll_continue_block(SHA2_256);
|
sha_ll_continue_block(SHA2_256);
|
||||||
|
|
||||||
//sha_hal_read_digest(SHA2_256, interResult);
|
|
||||||
sha_ll_load(SHA2_256);
|
sha_ll_load(SHA2_256);
|
||||||
//sha_hal_wait_idle();
|
|
||||||
nerd_sha_hal_wait_idle();
|
nerd_sha_hal_wait_idle();
|
||||||
//sha_ll_read_digest(SHA2_256, interResult, 256 / 32);
|
|
||||||
//nerd_sha_ll_read_digest(interResult);
|
|
||||||
|
|
||||||
//sha_hal_hash_block(SHA2_256, interResult, 64/4, true);
|
|
||||||
//sha_hal_wait_idle();
|
|
||||||
//nerd_sha_hal_wait_idle();
|
|
||||||
//sha_ll_fill_text_block(interResult, 64/4);
|
|
||||||
//nerd_sha_ll_fill_text_block_sha256(interResult);
|
|
||||||
nerd_sha_ll_fill_text_block_sha256_inter();
|
nerd_sha_ll_fill_text_block_sha256_inter();
|
||||||
sha_ll_start_block(SHA2_256);
|
sha_ll_start_block(SHA2_256);
|
||||||
|
|
||||||
//sha_hal_read_digest(SHA2_256, hash);
|
|
||||||
sha_ll_load(SHA2_256);
|
sha_ll_load(SHA2_256);
|
||||||
//sha_hal_wait_idle();
|
|
||||||
nerd_sha_hal_wait_idle();
|
nerd_sha_hal_wait_idle();
|
||||||
//sha_ll_read_digest(SHA2_256, hash, 256 / 32);
|
|
||||||
if (nerd_sha_ll_read_digest_if(hash))
|
if (nerd_sha_ll_read_digest_if(hash))
|
||||||
{
|
{
|
||||||
|
//Serial.printf("Hw 16bit Share, nonce=0x%X\n", job->nonce_start+n);
|
||||||
|
#if 0
|
||||||
|
//Validation
|
||||||
|
((uint32_t*)(job->sha_buffer+64+12))[0] = job->nonce_start+n;
|
||||||
|
uint8_t doubleHash[32];
|
||||||
|
uint32_t diget_mid[8];
|
||||||
|
uint32_t bake[16];
|
||||||
|
nerd_mids(diget_mid, job->sha_buffer);
|
||||||
|
nerd_sha256_bake(diget_mid, job->sha_buffer+64, bake);
|
||||||
|
nerd_sha256d_baked(diget_mid, job->sha_buffer+64, bake, doubleHash);
|
||||||
|
for (int i = 0; i < 32; ++i)
|
||||||
|
{
|
||||||
|
if (hash[i] != doubleHash[i])
|
||||||
|
{
|
||||||
|
Serial.println("***HW sha256 esp32s3 bug detected***");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
//~5 per second
|
//~5 per second
|
||||||
double diff_hash = diff_from_target(hash);
|
double diff_hash = diff_from_target(hash);
|
||||||
if (diff_hash > result->difficulty)
|
if (diff_hash > result->difficulty)
|
||||||
|
@@ -212,7 +212,7 @@ bool tx_mining_submit(WiFiClient& client, mining_subscribe mWorker, mining_job m
|
|||||||
// Submit
|
// Submit
|
||||||
id = getNextId(id);
|
id = getNextId(id);
|
||||||
submit_id = id;
|
submit_id = id;
|
||||||
sprintf(payload, "{\"id\": %u, \"method\": \"mining.submit\", \"params\": [\"%s\",\"%s\",\"%s\",\"%s\",\"%s\"]}\n",
|
sprintf(payload, "{\"id\":%u,\"method\":\"mining.submit\",\"params\":[\"%s\",\"%s\",\"%s\",\"%s\",\"%s\"]}\n",
|
||||||
id,
|
id,
|
||||||
mWorker.wName,//"bc1qvv469gmw4zz6qa4u4dsezvrlmqcqszwyfzhgwj", //mWorker.name,
|
mWorker.wName,//"bc1qvv469gmw4zz6qa4u4dsezvrlmqcqszwyfzhgwj", //mWorker.name,
|
||||||
mJob.job_id.c_str(),
|
mJob.job_id.c_str(),
|
||||||
@@ -248,7 +248,7 @@ bool tx_suggest_difficulty(WiFiClient& client, double difficulty)
|
|||||||
char payload[BUFFER] = {0};
|
char payload[BUFFER] = {0};
|
||||||
|
|
||||||
id = getNextId(id);
|
id = getNextId(id);
|
||||||
sprintf(payload, "{\"id\": %d, \"method\": \"mining.suggest_difficulty\", \"params\": [%.10g]}\n", id, difficulty);
|
sprintf(payload, "{\"id\":%d,\"method\":\"mining.suggest_difficulty\",\"params\":[%.10g]}\n", id, difficulty);
|
||||||
|
|
||||||
Serial.print(" Sending : "); Serial.print(payload);
|
Serial.print(" Sending : "); Serial.print(payload);
|
||||||
return client.print(payload);
|
return client.print(payload);
|
||||||
|
Reference in New Issue
Block a user