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

View File

@ -70,6 +70,7 @@ export class BitcoinRpcService {
hexdata
});
console.log(`BLOCK SUBMISSION RESPONSE: ${res}`);
console.log(hexdata);
console.log(JSON.stringify(res));
process.exit();
} catch (e) {

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());
@ -91,12 +91,8 @@ export class MiningJob {
testBlock.transactions[0].ins[0].script = inputScript;
//@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
testBlock.merkleRoot = newRoot;
testBlock.merkleRoot = this.calculateMerkleRootHash(testBlock.transactions[0].__toBuffer(), this.merkle_branch);;
return testBlock;
}

View File

@ -244,7 +244,7 @@ export class StratumV1Client extends EasyUnsubscribe {
if (job == null) {
return;
}
const updatedJobBlock = job.tryBlock(
const updatedJobBlock = job.copyAndUpdateBlock(
parseInt(submission.versionMask, 16),
parseInt(submission.nonce, 16),
this.extraNonce,
@ -255,16 +255,18 @@ export class StratumV1Client extends EasyUnsubscribe {
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)) {
console.log('!!! BOCK FOUND !!!');
const blockHex = updatedJobBlock.toHex(false);
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 {
console.log(`Difficulty too low`);
}