- Change PoW to KMAC+BLAKE2b-256, remove Cuckoo Cycle.
- Change to a 10 minute block time (updates other constants,
including the halving interval).
- Add `filterRoot` to block header.
- Add a separate witnessRoot.
The last change fixes our original misdesigned segwit, which made syncing a
non-witness chain more difficult than it needed to be. The previous design
merkelized the transaction itself and there was only one merkle root, which was
essentially a witness root. This required "witness data hashes" to be requested
for each block in a non-witness sync. Using a separate tree is just a better
design in the end.
154 lines
4.2 KiB
JavaScript
154 lines
4.2 KiB
JavaScript
// Autogenerated, do not edit.
|
|
|
|
'use strict';
|
|
|
|
const data = require('./genesis-data.json');
|
|
const genesis = exports;
|
|
|
|
/*
|
|
* Main
|
|
*/
|
|
|
|
genesis.main = {
|
|
version: 0,
|
|
hash: Buffer.from(
|
|
'51a6ab888eda5a583c9426cb2d8f5aa663febaaf8be48b0a9a487fe703e9111b',
|
|
'hex'),
|
|
prevBlock: Buffer.from(
|
|
'0000000000000000000000000000000000000000000000000000000000000000',
|
|
'hex'),
|
|
merkleRoot: Buffer.from(
|
|
'1da0028b82ca41f1d3535cab17eb9f0853ba7b6d7fa73e4c9cb9f4d68a13fe3f',
|
|
'hex'),
|
|
witnessRoot: Buffer.from(
|
|
'5e20903103514e01d9707cddad0a31f3fa677daaf664c7bed9591d5c5e854b98',
|
|
'hex'),
|
|
treeRoot: Buffer.from(
|
|
'0000000000000000000000000000000000000000000000000000000000000000',
|
|
'hex'),
|
|
filterRoot: Buffer.from(
|
|
'0000000000000000000000000000000000000000000000000000000000000000',
|
|
'hex'),
|
|
reservedRoot: Buffer.from(
|
|
'0000000000000000000000000000000000000000000000000000000000000000',
|
|
'hex'),
|
|
time: 1546499150,
|
|
bits: 0x1d00ffff,
|
|
nonce: Buffer.from(
|
|
'0000000000000000000000000000000000000000000000000000000000000000',
|
|
'hex'),
|
|
height: 0
|
|
};
|
|
|
|
genesis.mainData = Buffer.from(data.main, 'base64');
|
|
|
|
/*
|
|
* Testnet
|
|
*/
|
|
|
|
genesis.testnet = {
|
|
version: 0,
|
|
hash: Buffer.from(
|
|
'555f542a0b7891d7b79d9cbd05f91c1f6148c3e4daa765cb9e48bee18e2329ef',
|
|
'hex'),
|
|
prevBlock: Buffer.from(
|
|
'0000000000000000000000000000000000000000000000000000000000000000',
|
|
'hex'),
|
|
merkleRoot: Buffer.from(
|
|
'1da0028b82ca41f1d3535cab17eb9f0853ba7b6d7fa73e4c9cb9f4d68a13fe3f',
|
|
'hex'),
|
|
witnessRoot: Buffer.from(
|
|
'5e20903103514e01d9707cddad0a31f3fa677daaf664c7bed9591d5c5e854b98',
|
|
'hex'),
|
|
treeRoot: Buffer.from(
|
|
'0000000000000000000000000000000000000000000000000000000000000000',
|
|
'hex'),
|
|
filterRoot: Buffer.from(
|
|
'0000000000000000000000000000000000000000000000000000000000000000',
|
|
'hex'),
|
|
reservedRoot: Buffer.from(
|
|
'0000000000000000000000000000000000000000000000000000000000000000',
|
|
'hex'),
|
|
time: 1546499151,
|
|
bits: 0x2007ffff,
|
|
nonce: Buffer.from(
|
|
'0000000000000000000000000000000000000000000000000000000000000000',
|
|
'hex'),
|
|
height: 0
|
|
};
|
|
|
|
genesis.testnetData = Buffer.from(data.testnet, 'base64');
|
|
|
|
/*
|
|
* Regtest
|
|
*/
|
|
|
|
genesis.regtest = {
|
|
version: 0,
|
|
hash: Buffer.from(
|
|
'a5ed2ebc878a1f965847ffd371fcd3cdc28a735a2645e792aa0980c654d58dae',
|
|
'hex'),
|
|
prevBlock: Buffer.from(
|
|
'0000000000000000000000000000000000000000000000000000000000000000',
|
|
'hex'),
|
|
merkleRoot: Buffer.from(
|
|
'1da0028b82ca41f1d3535cab17eb9f0853ba7b6d7fa73e4c9cb9f4d68a13fe3f',
|
|
'hex'),
|
|
witnessRoot: Buffer.from(
|
|
'5e20903103514e01d9707cddad0a31f3fa677daaf664c7bed9591d5c5e854b98',
|
|
'hex'),
|
|
treeRoot: Buffer.from(
|
|
'0000000000000000000000000000000000000000000000000000000000000000',
|
|
'hex'),
|
|
filterRoot: Buffer.from(
|
|
'0000000000000000000000000000000000000000000000000000000000000000',
|
|
'hex'),
|
|
reservedRoot: Buffer.from(
|
|
'0000000000000000000000000000000000000000000000000000000000000000',
|
|
'hex'),
|
|
time: 1546499152,
|
|
bits: 0x207fffff,
|
|
nonce: Buffer.from(
|
|
'0000000000000000000000000000000000000000000000000000000000000000',
|
|
'hex'),
|
|
height: 0
|
|
};
|
|
|
|
genesis.regtestData = Buffer.from(data.regtest, 'base64');
|
|
|
|
/*
|
|
* Simnet
|
|
*/
|
|
|
|
genesis.simnet = {
|
|
version: 0,
|
|
hash: Buffer.from(
|
|
'820b2e8b294d0c5013e9e4e07b3f31b5f458ea5c7664e94963b5481ec6295b96',
|
|
'hex'),
|
|
prevBlock: Buffer.from(
|
|
'0000000000000000000000000000000000000000000000000000000000000000',
|
|
'hex'),
|
|
merkleRoot: Buffer.from(
|
|
'1da0028b82ca41f1d3535cab17eb9f0853ba7b6d7fa73e4c9cb9f4d68a13fe3f',
|
|
'hex'),
|
|
witnessRoot: Buffer.from(
|
|
'5e20903103514e01d9707cddad0a31f3fa677daaf664c7bed9591d5c5e854b98',
|
|
'hex'),
|
|
treeRoot: Buffer.from(
|
|
'0000000000000000000000000000000000000000000000000000000000000000',
|
|
'hex'),
|
|
filterRoot: Buffer.from(
|
|
'0000000000000000000000000000000000000000000000000000000000000000',
|
|
'hex'),
|
|
reservedRoot: Buffer.from(
|
|
'0000000000000000000000000000000000000000000000000000000000000000',
|
|
'hex'),
|
|
time: 1546499153,
|
|
bits: 0x207fffff,
|
|
nonce: Buffer.from(
|
|
'0000000000000000000000000000000000000000000000000000000000000000',
|
|
'hex'),
|
|
height: 0
|
|
};
|
|
|
|
genesis.simnetData = Buffer.from(data.simnet, 'base64');
|