miner: add "preverify" option.
This commit is contained in:
parent
871225bbe4
commit
d0628e990d
@ -91,6 +91,7 @@ known-peers: ./known-peers
|
|||||||
|
|
||||||
coinbase-flags: mined by bcoin
|
coinbase-flags: mined by bcoin
|
||||||
# payout-address: 1111111111111111111114oLvT2,1111111111111111111114oLvT2
|
# payout-address: 1111111111111111111114oLvT2,1111111111111111111114oLvT2
|
||||||
|
preverify: false
|
||||||
max-block-weight: 4000000
|
max-block-weight: 4000000
|
||||||
reserved-block-weight: 4000
|
reserved-block-weight: 4000
|
||||||
reserved-block-sigops: 400
|
reserved-block-sigops: 400
|
||||||
|
|||||||
@ -322,6 +322,23 @@ Miner.prototype._createBlock = co(function* createBlock(tip, address) {
|
|||||||
Amount.btc(attempt.fees),
|
Amount.btc(attempt.fees),
|
||||||
attempt.items.length + 1);
|
attempt.items.length + 1);
|
||||||
|
|
||||||
|
if (this.options.preverify) {
|
||||||
|
try {
|
||||||
|
yield this.chain._verifyBlock(attempt.block);
|
||||||
|
} catch (e) {
|
||||||
|
if (e.type === 'VerifyError') {
|
||||||
|
this.logger.warning('Miner created invalid block!');
|
||||||
|
this.logger.error(e);
|
||||||
|
throw new Error('BUG: Miner created invalid block.');
|
||||||
|
}
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.logger.debug(
|
||||||
|
'Preverified block %d successfully!',
|
||||||
|
attempt.height);
|
||||||
|
}
|
||||||
|
|
||||||
return attempt;
|
return attempt;
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -512,6 +529,7 @@ function MinerOptions(options) {
|
|||||||
this.version = -1;
|
this.version = -1;
|
||||||
this.addresses = [];
|
this.addresses = [];
|
||||||
this.coinbaseFlags = new Buffer('mined by bcoin', 'ascii');
|
this.coinbaseFlags = new Buffer('mined by bcoin', 'ascii');
|
||||||
|
this.preverify = false;
|
||||||
|
|
||||||
this.minWeight = policy.MIN_BLOCK_WEIGHT;
|
this.minWeight = policy.MIN_BLOCK_WEIGHT;
|
||||||
this.maxWeight = policy.MAX_BLOCK_WEIGHT;
|
this.maxWeight = policy.MAX_BLOCK_WEIGHT;
|
||||||
@ -581,6 +599,11 @@ MinerOptions.prototype.fromOptions = function fromOptions(options) {
|
|||||||
this.coinbaseFlags = flags;
|
this.coinbaseFlags = flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (options.preverify != null) {
|
||||||
|
assert(typeof options.preverify === 'boolean');
|
||||||
|
this.preverify = options.preverify;
|
||||||
|
}
|
||||||
|
|
||||||
if (options.minWeight != null) {
|
if (options.minWeight != null) {
|
||||||
assert(util.isNumber(options.minWeight));
|
assert(util.isNumber(options.minWeight));
|
||||||
this.minWeight = options.minWeight;
|
this.minWeight = options.minWeight;
|
||||||
|
|||||||
@ -283,6 +283,7 @@ config.toOptions = function toOptions(data) {
|
|||||||
// Miner
|
// Miner
|
||||||
options.payoutAddress = list(data.payoutaddress);
|
options.payoutAddress = list(data.payoutaddress);
|
||||||
options.coinbaseFlags = str(data.coinbaseflags);
|
options.coinbaseFlags = str(data.coinbaseflags);
|
||||||
|
options.preverify = bool(data.preverify);
|
||||||
options.maxBlockWeight = num(data.maxblockweight);
|
options.maxBlockWeight = num(data.maxblockweight);
|
||||||
options.reservedBlockWeight = num(data.reservedblockweight);
|
options.reservedBlockWeight = num(data.reservedblockweight);
|
||||||
options.reservedBlockSigops = num(data.reservedblocksigops);
|
options.reservedBlockSigops = num(data.reservedblocksigops);
|
||||||
|
|||||||
@ -121,6 +121,7 @@ function FullNode(options) {
|
|||||||
fees: this.fees,
|
fees: this.fees,
|
||||||
address: this.options.payoutAddress,
|
address: this.options.payoutAddress,
|
||||||
coinbaseFlags: this.options.coinbaseFlags,
|
coinbaseFlags: this.options.coinbaseFlags,
|
||||||
|
preverify: this.options.preverify,
|
||||||
maxWeight: this.options.maxBlockWeight,
|
maxWeight: this.options.maxBlockWeight,
|
||||||
reservedWeight: this.options.reservedBlockWeight,
|
reservedWeight: this.options.reservedBlockWeight,
|
||||||
reservedSigops: this.options.reservedBlockSigops
|
reservedSigops: this.options.reservedBlockSigops
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user