miner, chainblock, workers.
This commit is contained in:
parent
45e84ff168
commit
62bc8b077d
@ -385,8 +385,8 @@ ChainBlock.prototype.__defineGetter__('rhash', function() {
|
|||||||
* @returns {Buffer}
|
* @returns {Buffer}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
ChainBlock.prototype.toRaw = function toRaw() {
|
ChainBlock.prototype.toRaw = function toRaw(writer) {
|
||||||
var p = new BufferWriter();
|
var p = new BufferWriter(writer);
|
||||||
|
|
||||||
p.write32(this.version);
|
p.write32(this.version);
|
||||||
p.writeHash(this.prevBlock);
|
p.writeHash(this.prevBlock);
|
||||||
@ -397,7 +397,10 @@ ChainBlock.prototype.toRaw = function toRaw() {
|
|||||||
p.writeU32(this.height);
|
p.writeU32(this.height);
|
||||||
p.writeBytes(this.chainwork.toBuffer('le', 32));
|
p.writeBytes(this.chainwork.toBuffer('le', 32));
|
||||||
|
|
||||||
return p.render();
|
if (!writer)
|
||||||
|
p = p.render();
|
||||||
|
|
||||||
|
return p;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -408,8 +411,10 @@ ChainBlock.prototype.toRaw = function toRaw() {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
ChainBlock.fromRaw = function fromRaw(chain, buf) {
|
ChainBlock.fromRaw = function fromRaw(chain, buf) {
|
||||||
var p = new BufferReader(buf);
|
var p = new BufferReader(buf, true);
|
||||||
var hash = utils.dsha256(buf.slice(0, 80));
|
var hash = utils.dsha256(p.readBytes(80));
|
||||||
|
|
||||||
|
p.seek(-80);
|
||||||
|
|
||||||
return new ChainBlock(chain, {
|
return new ChainBlock(chain, {
|
||||||
hash: hash.toString('hex'),
|
hash: hash.toString('hex'),
|
||||||
@ -440,7 +445,7 @@ ChainBlock.prototype.toJSON = function toJSON() {
|
|||||||
bits: this.bits,
|
bits: this.bits,
|
||||||
nonce: this.nonce,
|
nonce: this.nonce,
|
||||||
height: this.height,
|
height: this.height,
|
||||||
chainwork: this.chainwork.toString('hex')
|
chainwork: this.chainwork.toString(10)
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -455,7 +460,7 @@ ChainBlock.fromJSON = function fromJSON(chain, json) {
|
|||||||
json.hash = utils.revHex(json.hash);
|
json.hash = utils.revHex(json.hash);
|
||||||
json.prevBlock = utils.revHex(json.prevBlock);
|
json.prevBlock = utils.revHex(json.prevBlock);
|
||||||
json.merkleRoot = utils.revHex(json.merkleRoot);
|
json.merkleRoot = utils.revHex(json.merkleRoot);
|
||||||
json.chainwork = new bn(json.chainwork, 'hex');
|
json.chainwork = new bn(json.chainwork, 10);
|
||||||
return new ChainBlock(chain, json);
|
return new ChainBlock(chain, json);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -555,7 +555,7 @@ MinerBlock.prototype.findNonce = function findNonce() {
|
|||||||
|
|
||||||
// Overflow the nonce and increment the extraNonce.
|
// Overflow the nonce and increment the extraNonce.
|
||||||
block.nonce = 0;
|
block.nonce = 0;
|
||||||
block.extraNonce.iaddn(1);
|
this.extraNonce.iaddn(1);
|
||||||
|
|
||||||
// We incremented the extraNonce, need to update coinbase.
|
// We incremented the extraNonce, need to update coinbase.
|
||||||
this.updateCoinbase();
|
this.updateCoinbase();
|
||||||
|
|||||||
@ -195,7 +195,7 @@ Workers.prototype.verify = function verify(tx, index, force, flags, callback) {
|
|||||||
|
|
||||||
Workers.prototype.mine = function mine(attempt, callback) {
|
Workers.prototype.mine = function mine(attempt, callback) {
|
||||||
var data = {
|
var data = {
|
||||||
tip: attempt.tip.toRaw(),
|
tip: attempt.tip,
|
||||||
version: attempt.block.version,
|
version: attempt.block.version,
|
||||||
target: attempt.block.bits,
|
target: attempt.block.bits,
|
||||||
address: attempt.options.address,
|
address: attempt.options.address,
|
||||||
@ -608,7 +608,7 @@ jobs.verify = function verify(tx, index, force, flags) {
|
|||||||
|
|
||||||
jobs.mine = function mine(data) {
|
jobs.mine = function mine(data) {
|
||||||
var attempt = new bcoin.miner.minerblock({
|
var attempt = new bcoin.miner.minerblock({
|
||||||
tip: bcoin.chainblock.fromRaw(null, data.tip),
|
tip: data.tip,
|
||||||
version: data.version,
|
version: data.version,
|
||||||
target: data.target,
|
target: data.target,
|
||||||
address: data.address,
|
address: data.address,
|
||||||
@ -697,8 +697,11 @@ Framer.item = function _item(item, p) {
|
|||||||
} else if (item instanceof bcoin.coin) {
|
} else if (item instanceof bcoin.coin) {
|
||||||
p.writeU8(42);
|
p.writeU8(42);
|
||||||
bcoin.protocol.framer.coin(item, true, p);
|
bcoin.protocol.framer.coin(item, true, p);
|
||||||
} else if (bn.isBN(item)) {
|
} else if (item instanceof bcoin.chainblock) {
|
||||||
p.writeU8(43);
|
p.writeU8(43);
|
||||||
|
item.toRaw(p);
|
||||||
|
} else if (bn.isBN(item)) {
|
||||||
|
p.writeU8(50);
|
||||||
p.writeVarBytes(item.toBuffer());
|
p.writeVarBytes(item.toBuffer());
|
||||||
} else if (Buffer.isBuffer(item)) {
|
} else if (Buffer.isBuffer(item)) {
|
||||||
p.writeU8(4);
|
p.writeU8(4);
|
||||||
@ -854,6 +857,8 @@ Parser.parseItem = function parseItem(p) {
|
|||||||
case 42:
|
case 42:
|
||||||
return bcoin.coin.fromExtended(p);
|
return bcoin.coin.fromExtended(p);
|
||||||
case 43:
|
case 43:
|
||||||
|
return bcoin.chainblock.fromRaw(null, p);
|
||||||
|
case 50:
|
||||||
return new bn(p.readVarBytes());
|
return new bn(p.readVarBytes());
|
||||||
default:
|
default:
|
||||||
assert(false, 'Bad type.');
|
assert(false, 'Bad type.');
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user