tweaking mining submission

This commit is contained in:
Ben Wilson
2023-06-25 16:35:11 -04:00
parent 9d4a1dda7f
commit 5ec2906f99
3 changed files with 11 additions and 12 deletions
+1
View File
@@ -70,6 +70,7 @@ export class BitcoinRpcService {
hexdata hexdata
}); });
console.log(`BLOCK SUBMISSION RESPONSE: ${res}`); console.log(`BLOCK SUBMISSION RESPONSE: ${res}`);
console.log(hexdata);
console.log(JSON.stringify(res)); console.log(JSON.stringify(res));
process.exit(); process.exit();
} catch (e) { } catch (e) {
+2 -6
View File
@@ -73,7 +73,7 @@ export class MiningJob {
} }
public tryBlock(versionMaskString: number, nonce: number, extraNonce: string, extraNonce2: string): bitcoinjs.Block { public copyAndUpdateBlock(versionMaskString: number, nonce: number, extraNonce: string, extraNonce2: string): bitcoinjs.Block {
const testBlock = bitcoinjs.Block.fromBuffer(this.block.toBuffer()); const testBlock = bitcoinjs.Block.fromBuffer(this.block.toBuffer());
@@ -91,12 +91,8 @@ export class MiningJob {
testBlock.transactions[0].ins[0].script = inputScript; testBlock.transactions[0].ins[0].script = inputScript;
//@ts-ignore //@ts-ignore
// const test = testBlock.transactions[0].__toBuffer();
// console.log(test.toString('hex'))
const newRoot = this.calculateMerkleRootHash(testBlock.transactions[0].__toBuffer(), this.merkle_branch);
//recompute the root //recompute the root
testBlock.merkleRoot = newRoot; testBlock.merkleRoot = this.calculateMerkleRootHash(testBlock.transactions[0].__toBuffer(), this.merkle_branch);;
return testBlock; return testBlock;
} }
+8 -6
View File
@@ -244,7 +244,7 @@ export class StratumV1Client extends EasyUnsubscribe {
if (job == null) { if (job == null) {
return; return;
} }
const updatedJobBlock = job.tryBlock( const updatedJobBlock = job.copyAndUpdateBlock(
parseInt(submission.versionMask, 16), parseInt(submission.versionMask, 16),
parseInt(submission.nonce, 16), parseInt(submission.nonce, 16),
this.extraNonce, this.extraNonce,
@@ -255,16 +255,18 @@ export class StratumV1Client extends EasyUnsubscribe {
if (diff >= this.clientDifficulty) { if (diff >= this.clientDifficulty) {
await this.statistics.addSubmission(this.entity, this.clientDifficulty);
if (diff > this.entity.bestDifficulty) {
await this.clientService.updateBestDifficulty(this.extraNonce, diff);
this.entity.bestDifficulty = diff;
}
if (diff >= (job.networkDifficulty / 2)) { if (diff >= (job.networkDifficulty / 2)) {
console.log('!!! BOCK FOUND !!!'); console.log('!!! BOCK FOUND !!!');
const blockHex = updatedJobBlock.toHex(false); const blockHex = updatedJobBlock.toHex(false);
this.bitcoinRpcService.SUBMIT_BLOCK(blockHex); this.bitcoinRpcService.SUBMIT_BLOCK(blockHex);
} }
await this.statistics.addSubmission(this.entity, this.clientDifficulty);
if (diff > this.entity.bestDifficulty) {
await this.clientService.updateBestDifficulty(this.extraNonce, diff);
this.entity.bestDifficulty = diff;
}
} else { } else {
console.log(`Difficulty too low`); console.log(`Difficulty too low`);
} }