network: remove segnet3 support.
This commit is contained in:
parent
c7ce8c778b
commit
cd4a0cc964
@ -454,13 +454,6 @@ Chain.prototype.getDeployments = co(function* getDeployments(block, prev) {
|
|||||||
if (block.version < 4 && height >= this.network.block.bip65height)
|
if (block.version < 4 && height >= this.network.block.bip65height)
|
||||||
throw new VerifyError(block, 'obsolete', 'bad-version', 0);
|
throw new VerifyError(block, 'obsolete', 'bad-version', 0);
|
||||||
|
|
||||||
// Only allow version 5 blocks (bip141 - segnet3)
|
|
||||||
// once the majority of blocks are using it.
|
|
||||||
if (this.options.witness && this.network.oldWitness) {
|
|
||||||
if (block.version < 5 && height >= this.network.block.bip141height)
|
|
||||||
throw new VerifyError(block, 'obsolete', 'bad-version', 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
// For some reason bitcoind has p2sh in the
|
// For some reason bitcoind has p2sh in the
|
||||||
// mandatory flags by default, when in reality
|
// mandatory flags by default, when in reality
|
||||||
// it wasn't activated until march 30th 2012.
|
// it wasn't activated until march 30th 2012.
|
||||||
@ -484,15 +477,6 @@ Chain.prototype.getDeployments = co(function* getDeployments(block, prev) {
|
|||||||
if (height >= this.network.block.bip65height)
|
if (height >= this.network.block.bip65height)
|
||||||
state.flags |= Script.flags.VERIFY_CHECKLOCKTIMEVERIFY;
|
state.flags |= Script.flags.VERIFY_CHECKLOCKTIMEVERIFY;
|
||||||
|
|
||||||
// Segregrated witness is now usable (bip141 - segnet3)
|
|
||||||
if (this.options.witness && this.network.oldWitness) {
|
|
||||||
if (height >= this.network.block.bip141height)
|
|
||||||
state.flags |= Script.flags.VERIFY_WITNESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this.network.oldWitness)
|
|
||||||
return state;
|
|
||||||
|
|
||||||
// CHECKSEQUENCEVERIFY and median time
|
// CHECKSEQUENCEVERIFY and median time
|
||||||
// past locktimes are now usable (bip9 & bip113).
|
// past locktimes are now usable (bip9 & bip113).
|
||||||
active = yield this.isActive(prev, deployments.csv);
|
active = yield this.isActive(prev, deployments.csv);
|
||||||
|
|||||||
@ -614,14 +614,6 @@ Peer.prototype.finalize = co(function* finalize() {
|
|||||||
this.send(new packets.SendHeadersPacket());
|
this.send(new packets.SendHeadersPacket());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Let them know we support segwit (old
|
|
||||||
// segwit3 nodes require this instead
|
|
||||||
// of service bits).
|
|
||||||
if (this.options.witness && this.network.oldWitness) {
|
|
||||||
if (this.version.version >= 70012)
|
|
||||||
this.send(new packets.HaveWitnessPacket());
|
|
||||||
}
|
|
||||||
|
|
||||||
// We want compact blocks!
|
// We want compact blocks!
|
||||||
if (this.options.compact) {
|
if (this.options.compact) {
|
||||||
if (this.version.version >= 70014)
|
if (this.version.version >= 70014)
|
||||||
@ -1860,6 +1852,9 @@ Peer.prototype.handleVersion = co(function* handleVersion(packet) {
|
|||||||
this.version = packet;
|
this.version = packet;
|
||||||
this.noRelay = packet.noRelay;
|
this.noRelay = packet.noRelay;
|
||||||
|
|
||||||
|
if (this.options.witness)
|
||||||
|
this.haveWitness = packet.hasWitness();
|
||||||
|
|
||||||
if (!this.network.selfConnect) {
|
if (!this.network.selfConnect) {
|
||||||
if (util.equal(packet.nonce, this.pool.localNonce))
|
if (util.equal(packet.nonce, this.pool.localNonce))
|
||||||
throw new Error('We connected to ourself. Oops.');
|
throw new Error('We connected to ourself. Oops.');
|
||||||
@ -1868,17 +1863,6 @@ Peer.prototype.handleVersion = co(function* handleVersion(packet) {
|
|||||||
if (packet.version < common.MIN_VERSION)
|
if (packet.version < common.MIN_VERSION)
|
||||||
throw new Error('Peer does not support required protocol version.');
|
throw new Error('Peer does not support required protocol version.');
|
||||||
|
|
||||||
if (this.options.witness) {
|
|
||||||
this.haveWitness = packet.hasWitness();
|
|
||||||
if (!this.haveWitness && this.network.oldWitness) {
|
|
||||||
try {
|
|
||||||
yield this.wait(packetTypes.HAVEWITNESS, 10000);
|
|
||||||
} catch (err) {
|
|
||||||
;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this.outbound) {
|
if (this.outbound) {
|
||||||
if (!packet.hasNetwork())
|
if (!packet.hasNetwork())
|
||||||
throw new Error('Peer does not support network services.');
|
throw new Error('Peer does not support network services.');
|
||||||
|
|||||||
@ -39,7 +39,6 @@ function Network(options) {
|
|||||||
this.block = options.block;
|
this.block = options.block;
|
||||||
this.bip30 = options.bip30;
|
this.bip30 = options.bip30;
|
||||||
this.witness = options.witness;
|
this.witness = options.witness;
|
||||||
this.oldWitness = options.oldWitness;
|
|
||||||
this.activationThreshold = options.activationThreshold;
|
this.activationThreshold = options.activationThreshold;
|
||||||
this.minerWindow = options.minerWindow;
|
this.minerWindow = options.minerWindow;
|
||||||
this.deployments = options.deployments;
|
this.deployments = options.deployments;
|
||||||
|
|||||||
@ -14,7 +14,7 @@ var BN = require('bn.js');
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
var network = exports;
|
var network = exports;
|
||||||
var main, testnet, regtest, segnet3, segnet4, simnet;
|
var main, testnet, regtest, segnet4, simnet;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Network type list.
|
* Network type list.
|
||||||
@ -23,7 +23,7 @@ var main, testnet, regtest, segnet3, segnet4, simnet;
|
|||||||
* @default
|
* @default
|
||||||
*/
|
*/
|
||||||
|
|
||||||
network.types = ['main', 'testnet', 'regtest', 'segnet3', 'segnet4', 'simnet'];
|
network.types = ['main', 'testnet', 'regtest', 'segnet4', 'simnet'];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Main
|
* Main
|
||||||
@ -313,14 +313,6 @@ main.bip30 = {
|
|||||||
|
|
||||||
main.witness = true;
|
main.witness = true;
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether to use segnet3-style segwit.
|
|
||||||
* @const {Boolean}
|
|
||||||
* @default
|
|
||||||
*/
|
|
||||||
|
|
||||||
main.oldWitness = false;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* For versionbits.
|
* For versionbits.
|
||||||
* @const {Number}
|
* @const {Number}
|
||||||
@ -584,8 +576,6 @@ testnet.bip30 = {};
|
|||||||
|
|
||||||
testnet.witness = true;
|
testnet.witness = true;
|
||||||
|
|
||||||
testnet.oldWitness = false;
|
|
||||||
|
|
||||||
testnet.activationThreshold = 1512; // 75% for testchains
|
testnet.activationThreshold = 1512; // 75% for testchains
|
||||||
|
|
||||||
testnet.minerWindow = 2016; // nPowTargetTimespan / nPowTargetSpacing
|
testnet.minerWindow = 2016; // nPowTargetTimespan / nPowTargetSpacing
|
||||||
@ -744,8 +734,6 @@ regtest.bip30 = {};
|
|||||||
|
|
||||||
regtest.witness = false;
|
regtest.witness = false;
|
||||||
|
|
||||||
regtest.oldWitness = false;
|
|
||||||
|
|
||||||
regtest.activationThreshold = 108; // 75% for testchains
|
regtest.activationThreshold = 108; // 75% for testchains
|
||||||
|
|
||||||
regtest.minerWindow = 144; // Faster than normal for regtest (144 instead of 2016)
|
regtest.minerWindow = 144; // Faster than normal for regtest (144 instead of 2016)
|
||||||
@ -822,134 +810,6 @@ regtest.batchSize = [
|
|||||||
[500]
|
[500]
|
||||||
];
|
];
|
||||||
|
|
||||||
/*
|
|
||||||
* segnet3
|
|
||||||
*/
|
|
||||||
|
|
||||||
segnet3 = network.segnet3 = {};
|
|
||||||
|
|
||||||
segnet3.type = 'segnet3';
|
|
||||||
|
|
||||||
segnet3.seeds = [
|
|
||||||
'104.243.38.34',
|
|
||||||
'104.155.1.158',
|
|
||||||
'119.246.245.241',
|
|
||||||
'46.101.235.82'
|
|
||||||
];
|
|
||||||
|
|
||||||
segnet3.magic = 0xcaea962e;
|
|
||||||
|
|
||||||
segnet3.port = 28333;
|
|
||||||
|
|
||||||
segnet3.alertKey = new Buffer(
|
|
||||||
'0300000000000000000000003b78ce563f89a0ed9414f5aa28ad0d96d6795f9c63',
|
|
||||||
'hex');
|
|
||||||
|
|
||||||
segnet3.checkpoints = {};
|
|
||||||
segnet3.checkpoints.lastHeight = 0;
|
|
||||||
|
|
||||||
segnet3.halvingInterval = 210000;
|
|
||||||
|
|
||||||
segnet3.genesis = {
|
|
||||||
version: 1,
|
|
||||||
hash: 'aa022fd26404d3a1f6ac348fc049996a52f40d833017c7ca3f05df8d519c5b0d',
|
|
||||||
prevBlock: '0000000000000000000000000000000000000000000000000000000000000000',
|
|
||||||
merkleRoot: '3ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a',
|
|
||||||
ts: 1452831101,
|
|
||||||
bits: 486604799,
|
|
||||||
nonce: 0,
|
|
||||||
height: 0
|
|
||||||
};
|
|
||||||
|
|
||||||
segnet3.genesisBlock =
|
|
||||||
'0100000000000000000000000000000000000000000000000000000000000000000000'
|
|
||||||
+ '003ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4a7d71'
|
|
||||||
+ '9856ffff001d0000000001010000000100000000000000000000000000000000000000'
|
|
||||||
+ '00000000000000000000000000ffffffff4d04ffff001d0104455468652054696d6573'
|
|
||||||
+ '2030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66'
|
|
||||||
+ '207365636f6e64206261696c6f757420666f722062616e6b73ffffffff0100f2052a01'
|
|
||||||
+ '000000434104678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f'
|
|
||||||
+ '61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f'
|
|
||||||
+ 'ac00000000';
|
|
||||||
|
|
||||||
segnet3.pow = {
|
|
||||||
limit: new BN(
|
|
||||||
'00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff',
|
|
||||||
'hex'
|
|
||||||
),
|
|
||||||
bits: 486604799,
|
|
||||||
targetTimespan: 14 * 24 * 60 * 60, // two weeks
|
|
||||||
targetSpacing: 10 * 60,
|
|
||||||
retargetInterval: 2016,
|
|
||||||
difficultyReset: true,
|
|
||||||
noRetargeting: false
|
|
||||||
};
|
|
||||||
|
|
||||||
segnet3.block = {
|
|
||||||
bip34height: 8,
|
|
||||||
bip34hash: '1c2a2898cebca152f872fa71b756903711ad778c7d63ba6b73c140f800000000',
|
|
||||||
bip65height: 8,
|
|
||||||
bip65hash: '1c2a2898cebca152f872fa71b756903711ad778c7d63ba6b73c140f800000000',
|
|
||||||
bip66height: 8,
|
|
||||||
bip66hash: '1c2a2898cebca152f872fa71b756903711ad778c7d63ba6b73c140f800000000',
|
|
||||||
bip141height: 8,
|
|
||||||
bip141hash: '1c2a2898cebca152f872fa71b756903711ad778c7d63ba6b73c140f800000000',
|
|
||||||
pruneAfterHeight: 1000,
|
|
||||||
keepBlocks: 10000,
|
|
||||||
// maxTipAge: 0x7fffffff,
|
|
||||||
maxTipAge: 24 * 60 * 60,
|
|
||||||
slowHeight: 0x7fffffff
|
|
||||||
};
|
|
||||||
|
|
||||||
segnet3.bip30 = {};
|
|
||||||
|
|
||||||
segnet3.witness = true;
|
|
||||||
|
|
||||||
segnet3.oldWitness = true;
|
|
||||||
|
|
||||||
segnet3.activationThreshold = 108;
|
|
||||||
|
|
||||||
segnet3.minerWindow = 144;
|
|
||||||
|
|
||||||
segnet3.deployments = {};
|
|
||||||
|
|
||||||
segnet3.deploys = [];
|
|
||||||
|
|
||||||
segnet3.keyPrefix = {
|
|
||||||
privkey: 0x9e,
|
|
||||||
xpubkey: 0x053587cf,
|
|
||||||
xprivkey: 0x05358394,
|
|
||||||
xprivkey58: '2791',
|
|
||||||
xpubkey58: '2793',
|
|
||||||
coinType: 1
|
|
||||||
};
|
|
||||||
|
|
||||||
segnet3.addressPrefix = {
|
|
||||||
pubkeyhash: 0x1e,
|
|
||||||
scripthash: 0x32,
|
|
||||||
witnesspubkeyhash: 0x03,
|
|
||||||
witnessscripthash: 0x28
|
|
||||||
};
|
|
||||||
|
|
||||||
segnet3.requireStandard = false;
|
|
||||||
|
|
||||||
segnet3.rpcPort = 28332;
|
|
||||||
|
|
||||||
segnet3.minRelay = 1000;
|
|
||||||
|
|
||||||
segnet3.feeRate = 20000;
|
|
||||||
|
|
||||||
segnet3.maxFeeRate = 60000;
|
|
||||||
|
|
||||||
segnet3.selfConnect = false;
|
|
||||||
|
|
||||||
segnet3.requestMempool = true;
|
|
||||||
|
|
||||||
segnet3.batchSize = [
|
|
||||||
[20000, 500],
|
|
||||||
[250]
|
|
||||||
];
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* segnet4
|
* segnet4
|
||||||
*/
|
*/
|
||||||
@ -1030,8 +890,6 @@ segnet4.bip30 = {};
|
|||||||
|
|
||||||
segnet4.witness = true;
|
segnet4.witness = true;
|
||||||
|
|
||||||
segnet4.oldWitness = false;
|
|
||||||
|
|
||||||
segnet4.activationThreshold = 108;
|
segnet4.activationThreshold = 108;
|
||||||
|
|
||||||
segnet4.minerWindow = 144;
|
segnet4.minerWindow = 144;
|
||||||
@ -1183,8 +1041,6 @@ simnet.bip30 = {};
|
|||||||
|
|
||||||
simnet.witness = false;
|
simnet.witness = false;
|
||||||
|
|
||||||
simnet.oldWitness = false;
|
|
||||||
|
|
||||||
simnet.activationThreshold = 1512; // 75% for testchains
|
simnet.activationThreshold = 1512; // 75% for testchains
|
||||||
|
|
||||||
simnet.minerWindow = 2016; // nPowTargetTimespan / nPowTargetSpacing
|
simnet.minerWindow = 2016; // nPowTargetTimespan / nPowTargetSpacing
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user