pool: disable bip37 by default.
This commit is contained in:
parent
c6b439f21c
commit
2a6ee729a0
@ -53,6 +53,7 @@ replace-by-fee: false
|
|||||||
|
|
||||||
selfish: false
|
selfish: false
|
||||||
compact: true
|
compact: true
|
||||||
|
bip37: false
|
||||||
bip151: true
|
bip151: true
|
||||||
listen: true
|
listen: true
|
||||||
max-outbound: 8
|
max-outbound: 8
|
||||||
|
|||||||
@ -105,7 +105,6 @@ exports.services = {
|
|||||||
|
|
||||||
exports.LOCAL_SERVICES = 0
|
exports.LOCAL_SERVICES = 0
|
||||||
| exports.services.NETWORK
|
| exports.services.NETWORK
|
||||||
| exports.services.BLOOM
|
|
||||||
| exports.services.WITNESS;
|
| exports.services.WITNESS;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -1527,6 +1527,14 @@ Pool.prototype.handleGetData = co(function* handleGetData(peer, packet) {
|
|||||||
break;
|
break;
|
||||||
case invTypes.FILTERED_BLOCK:
|
case invTypes.FILTERED_BLOCK:
|
||||||
case invTypes.WITNESS_FILTERED_BLOCK:
|
case invTypes.WITNESS_FILTERED_BLOCK:
|
||||||
|
if (!this.options.bip37) {
|
||||||
|
this.logger.debug(
|
||||||
|
'Peer requested a merkleblock without bip37 enabled (%s).',
|
||||||
|
peer.hostname());
|
||||||
|
peer.destroy();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (!peer.spvFilter) {
|
if (!peer.spvFilter) {
|
||||||
notFound.push(item);
|
notFound.push(item);
|
||||||
continue;
|
continue;
|
||||||
@ -2188,6 +2196,14 @@ Pool.prototype.handleMempool = co(function* handleMempool(peer, packet) {
|
|||||||
if (this.options.selfish)
|
if (this.options.selfish)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (!this.options.bip37) {
|
||||||
|
this.logger.debug(
|
||||||
|
'Peer requested mempool without bip37 enabled (%s).',
|
||||||
|
peer.hostname());
|
||||||
|
peer.destroy();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
hashes = this.mempool.getSnapshot();
|
hashes = this.mempool.getSnapshot();
|
||||||
|
|
||||||
for (i = 0; i < hashes.length; i++) {
|
for (i = 0; i < hashes.length; i++) {
|
||||||
@ -3194,8 +3210,9 @@ function PoolOptions(options) {
|
|||||||
|
|
||||||
this.checkpoints = true;
|
this.checkpoints = true;
|
||||||
this.spv = false;
|
this.spv = false;
|
||||||
|
this.bip37 = false;
|
||||||
this.listen = false;
|
this.listen = false;
|
||||||
this.compact = false;
|
this.compact = true;
|
||||||
this.noRelay = false;
|
this.noRelay = false;
|
||||||
this.host = '0.0.0.0';
|
this.host = '0.0.0.0';
|
||||||
this.port = this.network.port;
|
this.port = this.network.port;
|
||||||
@ -3272,6 +3289,11 @@ PoolOptions.prototype.fromOptions = function fromOptions(options) {
|
|||||||
this.spv = this.chain.options.spv;
|
this.spv = this.chain.options.spv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (options.bip37 != null) {
|
||||||
|
assert(typeof options.bip37 === 'boolean');
|
||||||
|
this.bip37 = options.bip37;
|
||||||
|
}
|
||||||
|
|
||||||
if (options.listen != null) {
|
if (options.listen != null) {
|
||||||
assert(typeof options.listen === 'boolean');
|
assert(typeof options.listen === 'boolean');
|
||||||
this.listen = options.listen;
|
this.listen = options.listen;
|
||||||
@ -3426,10 +3448,17 @@ PoolOptions.prototype.fromOptions = function fromOptions(options) {
|
|||||||
this.services &= ~common.services.NETWORK;
|
this.services &= ~common.services.NETWORK;
|
||||||
this.noRelay = true;
|
this.noRelay = true;
|
||||||
this.checkpoints = true;
|
this.checkpoints = true;
|
||||||
|
this.compact = false;
|
||||||
|
this.bip37 = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.selfish)
|
if (this.selfish) {
|
||||||
this.services &= ~common.services.NETWORK;
|
this.services &= ~common.services.NETWORK;
|
||||||
|
this.bip37 = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.bip37)
|
||||||
|
this.services |= common.services.BLOOM;
|
||||||
|
|
||||||
if (options.services != null) {
|
if (options.services != null) {
|
||||||
assert(util.isUInt32(options.services));
|
assert(util.isUInt32(options.services));
|
||||||
@ -3484,7 +3513,7 @@ PoolOptions.prototype.isFull = function isFull() {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
PoolOptions.prototype.getRequiredServices = function getRequiredServices() {
|
PoolOptions.prototype.getRequiredServices = function getRequiredServices() {
|
||||||
var services = this.options.requiredServices;
|
var services = this.requiredServices;
|
||||||
if (this.hasWitness())
|
if (this.hasWitness())
|
||||||
services |= common.services.WITNESS;
|
services |= common.services.WITNESS;
|
||||||
return services;
|
return services;
|
||||||
|
|||||||
@ -188,6 +188,7 @@ config.parseData = function parseData(data, prefix, dirname) {
|
|||||||
// Pool
|
// Pool
|
||||||
options.selfish = bool(data.selfish);
|
options.selfish = bool(data.selfish);
|
||||||
options.compact = bool(data.compact);
|
options.compact = bool(data.compact);
|
||||||
|
options.bip37 = bool(data.bip37);
|
||||||
options.bip151 = bool(data.bip151);
|
options.bip151 = bool(data.bip151);
|
||||||
options.bip150 = bool(data.bip150);
|
options.bip150 = bool(data.bip150);
|
||||||
options.identityKey = key(data.identitykey);
|
options.identityKey = key(data.identitykey);
|
||||||
|
|||||||
@ -102,6 +102,7 @@ function FullNode(options) {
|
|||||||
mempool: this.mempool,
|
mempool: this.mempool,
|
||||||
selfish: this.options.selfish,
|
selfish: this.options.selfish,
|
||||||
compact: this.options.compact,
|
compact: this.options.compact,
|
||||||
|
bip37: this.options.bip37,
|
||||||
bip151: this.options.bip151,
|
bip151: this.options.bip151,
|
||||||
bip150: this.options.bip150,
|
bip150: this.options.bip150,
|
||||||
authPeers: this.options.authPeers,
|
authPeers: this.options.authPeers,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user