[lbry] chaincfg: update chainparams for LBRY chain
Co-authored-by: Brannon King <countprimes@gmail.com> Co-authored-by: Alex Grintsvayg <grin@lbry.com>
This commit is contained in:
parent
ba3ca3b77e
commit
cbac056756
1 changed files with 121 additions and 142 deletions
|
@ -25,8 +25,8 @@ var (
|
||||||
bigOne = big.NewInt(1)
|
bigOne = big.NewInt(1)
|
||||||
|
|
||||||
// mainPowLimit is the highest proof of work value a Bitcoin block can
|
// mainPowLimit is the highest proof of work value a Bitcoin block can
|
||||||
// have for the main network. It is the value 2^224 - 1.
|
// have for the main network. It is the value 2^240 - 1.
|
||||||
mainPowLimit = new(big.Int).Sub(new(big.Int).Lsh(bigOne, 224), bigOne)
|
mainPowLimit = new(big.Int).Sub(new(big.Int).Lsh(bigOne, 240), bigOne)
|
||||||
|
|
||||||
// regressionPowLimit is the highest proof of work value a Bitcoin block
|
// regressionPowLimit is the highest proof of work value a Bitcoin block
|
||||||
// can have for the regression test network. It is the value 2^255 - 1.
|
// can have for the regression test network. It is the value 2^255 - 1.
|
||||||
|
@ -34,8 +34,8 @@ var (
|
||||||
|
|
||||||
// testNet3PowLimit is the highest proof of work value a Bitcoin block
|
// testNet3PowLimit is the highest proof of work value a Bitcoin block
|
||||||
// can have for the test network (version 3). It is the value
|
// can have for the test network (version 3). It is the value
|
||||||
// 2^224 - 1.
|
// 2^240 - 1.
|
||||||
testNet3PowLimit = new(big.Int).Sub(new(big.Int).Lsh(bigOne, 224), bigOne)
|
testNet3PowLimit = new(big.Int).Sub(new(big.Int).Lsh(bigOne, 240), bigOne)
|
||||||
|
|
||||||
// simNetPowLimit is the highest proof of work value a Bitcoin block
|
// simNetPowLimit is the highest proof of work value a Bitcoin block
|
||||||
// can have for the simulation test network. It is the value 2^255 - 1.
|
// can have for the simulation test network. It is the value 2^255 - 1.
|
||||||
|
@ -102,6 +102,9 @@ type ConsensusDeployment struct {
|
||||||
// ExpireTime is the median block time after which the attempted
|
// ExpireTime is the median block time after which the attempted
|
||||||
// deployment expires.
|
// deployment expires.
|
||||||
ExpireTime uint64
|
ExpireTime uint64
|
||||||
|
|
||||||
|
// ForceActiveAt is added by LBRY to bypass consensus. Features are activated via hard-fork instead.
|
||||||
|
ForceActiveAt int32
|
||||||
}
|
}
|
||||||
|
|
||||||
// Constants that define the deployment offset in the deployments field of the
|
// Constants that define the deployment offset in the deployments field of the
|
||||||
|
@ -237,11 +240,9 @@ type Params struct {
|
||||||
Bech32HRPSegwit string
|
Bech32HRPSegwit string
|
||||||
|
|
||||||
// Address encoding magics
|
// Address encoding magics
|
||||||
PubKeyHashAddrID byte // First byte of a P2PKH address
|
PubKeyHashAddrID byte // First byte of a P2PKH address
|
||||||
ScriptHashAddrID byte // First byte of a P2SH address
|
ScriptHashAddrID byte // First byte of a P2SH address
|
||||||
PrivateKeyID byte // First byte of a WIF private key
|
PrivateKeyID byte // First byte of a WIF private key
|
||||||
WitnessPubKeyHashAddrID byte // First byte of a P2WPKH address
|
|
||||||
WitnessScriptHashAddrID byte // First byte of a P2WSH address
|
|
||||||
|
|
||||||
// BIP32 hierarchical deterministic extended key magics
|
// BIP32 hierarchical deterministic extended key magics
|
||||||
HDPrivateKeyID [4]byte
|
HDPrivateKeyID [4]byte
|
||||||
|
@ -256,60 +257,58 @@ type Params struct {
|
||||||
var MainNetParams = Params{
|
var MainNetParams = Params{
|
||||||
Name: "mainnet",
|
Name: "mainnet",
|
||||||
Net: wire.MainNet,
|
Net: wire.MainNet,
|
||||||
DefaultPort: "8333",
|
DefaultPort: "9246",
|
||||||
DNSSeeds: []DNSSeed{
|
DNSSeeds: []DNSSeed{
|
||||||
{"seed.bitcoin.sipa.be", true},
|
{"dnsseed1.lbry.com", true},
|
||||||
{"dnsseed.bluematt.me", true},
|
{"dnsseed2.lbry.com", true},
|
||||||
{"dnsseed.bitcoin.dashjr.org", false},
|
{"dnsseed3.lbry.com", true},
|
||||||
{"seed.bitcoinstats.com", true},
|
{"seed.lbry.grin.io", true},
|
||||||
{"seed.bitnodes.io", false},
|
{"seed.allaboutlbc.com", true},
|
||||||
{"seed.bitcoin.jonasschnelli.ch", true},
|
|
||||||
},
|
},
|
||||||
|
|
||||||
// Chain parameters
|
// Chain parameters
|
||||||
GenesisBlock: &genesisBlock,
|
GenesisBlock: &genesisBlock,
|
||||||
GenesisHash: &genesisHash,
|
GenesisHash: &genesisHash,
|
||||||
PowLimit: mainPowLimit,
|
PowLimit: mainPowLimit,
|
||||||
PowLimitBits: 0x1d00ffff,
|
PowLimitBits: 0x1f00ffff,
|
||||||
BIP0034Height: 227931, // 000000000000024b89b42a942fe0d9fea3bb44ab7bd1b19115dd6a759c0808b8
|
BIP0034Height: 1,
|
||||||
BIP0065Height: 388381, // 000000000000000004c2b624ed5d7756c508d90fd0da2c7c679febfa6c4735f0
|
BIP0065Height: 200000,
|
||||||
BIP0066Height: 363725, // 00000000000000000379eaa19dce8c9b722d46ae6a57c2f1a988119488b50931
|
BIP0066Height: 200000,
|
||||||
CoinbaseMaturity: 100,
|
CoinbaseMaturity: 100,
|
||||||
SubsidyReductionInterval: 210000,
|
SubsidyReductionInterval: 1 << 5,
|
||||||
TargetTimespan: time.Hour * 24 * 14, // 14 days
|
TargetTimespan: time.Second * 150, // retarget every block
|
||||||
TargetTimePerBlock: time.Minute * 10, // 10 minutes
|
TargetTimePerBlock: time.Second * 150, // 150 seconds
|
||||||
RetargetAdjustmentFactor: 4, // 25% less, 400% more
|
RetargetAdjustmentFactor: 4, // 25% less, 400% more
|
||||||
ReduceMinDifficulty: false,
|
ReduceMinDifficulty: false,
|
||||||
MinDiffReductionTime: 0,
|
MinDiffReductionTime: 0,
|
||||||
GenerateSupported: false,
|
GenerateSupported: false,
|
||||||
|
|
||||||
// Checkpoints ordered from oldest to newest.
|
// Checkpoints ordered from oldest to newest.
|
||||||
Checkpoints: []Checkpoint{
|
Checkpoints: []Checkpoint{
|
||||||
{11111, newHashFromStr("0000000069e244f73d78e8fd29ba2fd2ed618bd6fa2ee92559f542fdb26e7c1d")},
|
{40000, newHashFromStr("4c55584b068108b15c0066a010d11971aa92f46b0a73d479f1b7fa57df8b05f4")},
|
||||||
{33333, newHashFromStr("000000002dd5588a74784eaa7ab0507a18ad16a236e7b1ce69f00d7ddfb5d0a6")},
|
{80000, newHashFromStr("6e9facdfb87ba8394a46c61a7c093f7f00b1397a2dabc6a04f2911e0efdcf50a")},
|
||||||
{74000, newHashFromStr("0000000000573993a3c9e41ce34471c079dcf5f52a0e824a81e7f953b8661a20")},
|
{120000, newHashFromStr("6a9dba420ec544b927769765dccec8b29e214e6ca9f82b54a52bf20ca517b75a")},
|
||||||
{105000, newHashFromStr("00000000000291ce28027faea320c8d2b054b2e0fe44a773f3eefb151d6bdc97")},
|
{160000, newHashFromStr("87b2913a509d857401f7587903c90214db7847af1a1ad63a3b6f245936e3ae9d")},
|
||||||
{134444, newHashFromStr("00000000000005b12ffd4cd315cd34ffd4a594f430ac814c91184a0d42d2b0fe")},
|
{200000, newHashFromStr("0fe8ed6019a83028006435e47be4e37a0d3ed48019cde1dc7ede6562e5829839")},
|
||||||
{168000, newHashFromStr("000000000000099e61ea72015e79632f216fe6cb33d7899acb35b75c8303b763")},
|
{240000, newHashFromStr("cb3c2342afbe7291012f2288403a9d105f46987f78b279d516db2deb4d35b0b7")},
|
||||||
{193000, newHashFromStr("000000000000059f452a5f7340de6682a977387c17010ff6e6c3bd83ca8b1317")},
|
{280000, newHashFromStr("9835d03eb527ea4ce45c217350c68042926d497c21fb31413b2f7824ff6fc6c3")},
|
||||||
{210000, newHashFromStr("000000000000048b95347e83192f69cf0366076336c639f9b7228e9ba171342e")},
|
{320000, newHashFromStr("ad80c7cb91ca1d9c9b7bf68ca1b6d4ba217fe25ca5ded6a7e8acbaba663b143f")},
|
||||||
{216116, newHashFromStr("00000000000001b4f4b433e81ee46494af945cf96014816a4e2370f11b23df4e")},
|
{360000, newHashFromStr("f9fd013252439663c1e729a8afb27187a8b9cc63a253336060f867e3cfbe4dcb")},
|
||||||
{225430, newHashFromStr("00000000000001c108384350f74090433e7fcf79a606b8e797f065b130575932")},
|
{400000, newHashFromStr("f0e56e70782af63ccb49c76e852540688755869ba59ec68cac9c04a6b4d9f5ca")},
|
||||||
{250000, newHashFromStr("000000000000003887df1f29024b06fc2200b55f8af8f35453d7be294df2d214")},
|
{440000, newHashFromStr("52760e00c369b40781a2ced32836711fab82a720fafb121118c815bb46afd996")},
|
||||||
{267300, newHashFromStr("000000000000000a83fbd660e918f218bf37edd92b748ad940483c7c116179ac")},
|
{480000, newHashFromStr("cecacaf4d1a8d1ef60da39343540781115abb91f5f0c976bb08afc4d4e3218ac")},
|
||||||
{279000, newHashFromStr("0000000000000001ae8c72a0b0c301f67e3afca10e819efa9041e458e9bd7e40")},
|
{520000, newHashFromStr("fa5e9d6dcf9ad57ba60d8ba26fb05585741098d10f42ed9d5e6b5e90ebc278d6")},
|
||||||
{300255, newHashFromStr("0000000000000000162804527c6e9b9f0563a280525f9d08c12041def0a0f3b2")},
|
{560000, newHashFromStr("95c6229bd9b40f03a8426b2fec740026b3f06b1628cfb87527b0cbd0da328c0c")},
|
||||||
{319400, newHashFromStr("000000000000000021c6052e9becade189495d1c539aa37c58917305fd15f13b")},
|
{600000, newHashFromStr("532657a97d480feb2d0423bb736cbfd7400b3ac8311e81ac749a2f29103a6c6b")},
|
||||||
{343185, newHashFromStr("0000000000000000072b8bf361d01a6ba7d445dd024203fafc78768ed4368554")},
|
{640000, newHashFromStr("68b69e3e8765e1ddbac63cbfbbf12e1a920da994d242a26fd07624f067743080")},
|
||||||
{352940, newHashFromStr("000000000000000010755df42dba556bb72be6a32f3ce0b6941ce4430152c9ff")},
|
{680000, newHashFromStr("7b9f30c959405b5b96d0b0c2ba8fc7c5586cd0ce40df51427de4b8a217859c45")},
|
||||||
{382320, newHashFromStr("00000000000000000a8dc6ed5b133d0eb2fd6af56203e4159789b092defd8ab2")},
|
{720000, newHashFromStr("42084d5f88c71c0ae09b8677070969df9c3ef875c5f434133f552d863204f0cb")},
|
||||||
{400000, newHashFromStr("000000000000000004ec466ce4732fe6f1ed1cddc2ed4b328fff5224276e3f6f")},
|
{760000, newHashFromStr("1887cd8b50375a9ac0dc9686c98fa8ac69bca618eab6254310647057f6fe4fc9")},
|
||||||
{430000, newHashFromStr("000000000000000001868b2bb3a285f3cc6b33ea234eb70facf4dcdf22186b87")},
|
{800000, newHashFromStr("d34bb871b21e6fda4bd9d9e530ebf12e044814004007f088415035c651ecf322")},
|
||||||
{460000, newHashFromStr("000000000000000000ef751bbce8e744ad303c47ece06c8d863e4d417efc258c")},
|
{840000, newHashFromStr("d0e73c5ce3ad5d6fdb4483aa450f0b1cf7e4570987ee3a3806ace4ad2f7cc9af")},
|
||||||
{490000, newHashFromStr("000000000000000000de069137b17b8d5a3dfbd5b145b2dcfb203f15d0c4de90")},
|
{880000, newHashFromStr("806a95f26bab603f1d9132b5d4ea72aab9d1198ad55ae18dac1e149f6cb70ce4")},
|
||||||
{520000, newHashFromStr("0000000000000000000d26984c0229c9f6962dc74db0a6d525f2f1640396f69c")},
|
{920000, newHashFromStr("83bc84555105436c51728ab200e8da4d9b3a365fd3d1d47a60048ad0f977c55b")},
|
||||||
{550000, newHashFromStr("000000000000000000223b7a2298fb1c6c75fb0efc28a4c56853ff4112ec6bc9")},
|
{960000, newHashFromStr("60e37b1c2d1f8771290b7f84865cbadf22b5b89d3ce1201d454b09f0775b42c2")},
|
||||||
{560000, newHashFromStr("0000000000000000002c7b276daf6efb2b6aa68e2ce3be67ef925b3264ae7122")},
|
|
||||||
},
|
},
|
||||||
|
|
||||||
// Consensus rule change deployments.
|
// Consensus rule change deployments.
|
||||||
|
@ -325,14 +324,16 @@ var MainNetParams = Params{
|
||||||
ExpireTime: 1230767999, // December 31, 2008 UTC
|
ExpireTime: 1230767999, // December 31, 2008 UTC
|
||||||
},
|
},
|
||||||
DeploymentCSV: {
|
DeploymentCSV: {
|
||||||
BitNumber: 0,
|
BitNumber: 0,
|
||||||
StartTime: 1462060800, // May 1st, 2016
|
StartTime: 1462060800, // May 1st, 2016
|
||||||
ExpireTime: 1493596800, // May 1st, 2017
|
ExpireTime: 1493596800, // May 1st, 2017
|
||||||
|
ForceActiveAt: 200000,
|
||||||
},
|
},
|
||||||
DeploymentSegwit: {
|
DeploymentSegwit: {
|
||||||
BitNumber: 1,
|
BitNumber: 1,
|
||||||
StartTime: 1479168000, // November 15, 2016 UTC
|
StartTime: 1547942400, // Jan 20, 2019
|
||||||
ExpireTime: 1510704000, // November 15, 2017 UTC.
|
ExpireTime: 1548288000, // Jan 24, 2019
|
||||||
|
ForceActiveAt: 680770,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -341,18 +342,16 @@ var MainNetParams = Params{
|
||||||
|
|
||||||
// Human-readable part for Bech32 encoded segwit addresses, as defined in
|
// Human-readable part for Bech32 encoded segwit addresses, as defined in
|
||||||
// BIP 173.
|
// BIP 173.
|
||||||
Bech32HRPSegwit: "bc", // always bc for main net
|
Bech32HRPSegwit: "lbc",
|
||||||
|
|
||||||
// Address encoding magics
|
// Address encoding magics
|
||||||
PubKeyHashAddrID: 0x00, // starts with 1
|
PubKeyHashAddrID: 0x55,
|
||||||
ScriptHashAddrID: 0x05, // starts with 3
|
ScriptHashAddrID: 0x7a,
|
||||||
PrivateKeyID: 0x80, // starts with 5 (uncompressed) or K (compressed)
|
PrivateKeyID: 0x1c,
|
||||||
WitnessPubKeyHashAddrID: 0x06, // starts with p2
|
|
||||||
WitnessScriptHashAddrID: 0x0A, // starts with 7Xh
|
|
||||||
|
|
||||||
// BIP32 hierarchical deterministic extended key magics
|
// BIP32 hierarchical deterministic extended key magics
|
||||||
HDPrivateKeyID: [4]byte{0x04, 0x88, 0xad, 0xe4}, // starts with xprv
|
HDPrivateKeyID: [4]byte{0x04, 0x88, 0xad, 0xe4},
|
||||||
HDPublicKeyID: [4]byte{0x04, 0x88, 0xb2, 0x1e}, // starts with xpub
|
HDPublicKeyID: [4]byte{0x04, 0x88, 0xb2, 0x1e},
|
||||||
|
|
||||||
// BIP44 coin type used in the hierarchical deterministic path for
|
// BIP44 coin type used in the hierarchical deterministic path for
|
||||||
// address generation.
|
// address generation.
|
||||||
|
@ -365,7 +364,7 @@ var MainNetParams = Params{
|
||||||
var RegressionNetParams = Params{
|
var RegressionNetParams = Params{
|
||||||
Name: "regtest",
|
Name: "regtest",
|
||||||
Net: wire.TestNet,
|
Net: wire.TestNet,
|
||||||
DefaultPort: "18444",
|
DefaultPort: "29246",
|
||||||
DNSSeeds: []DNSSeed{},
|
DNSSeeds: []DNSSeed{},
|
||||||
|
|
||||||
// Chain parameters
|
// Chain parameters
|
||||||
|
@ -374,15 +373,15 @@ var RegressionNetParams = Params{
|
||||||
PowLimit: regressionPowLimit,
|
PowLimit: regressionPowLimit,
|
||||||
PowLimitBits: 0x207fffff,
|
PowLimitBits: 0x207fffff,
|
||||||
CoinbaseMaturity: 100,
|
CoinbaseMaturity: 100,
|
||||||
BIP0034Height: 100000000, // Not active - Permit ver 1 blocks
|
BIP0034Height: 1000,
|
||||||
BIP0065Height: 1351, // Used by regression tests
|
BIP0065Height: 1351, // Used by regression tests
|
||||||
BIP0066Height: 1251, // Used by regression tests
|
BIP0066Height: 1251, // Used by regression tests
|
||||||
SubsidyReductionInterval: 150,
|
SubsidyReductionInterval: 1 << 5,
|
||||||
TargetTimespan: time.Hour * 24 * 14, // 14 days
|
TargetTimespan: time.Second,
|
||||||
TargetTimePerBlock: time.Minute * 10, // 10 minutes
|
TargetTimePerBlock: time.Second,
|
||||||
RetargetAdjustmentFactor: 4, // 25% less, 400% more
|
RetargetAdjustmentFactor: 4, // 25% less, 400% more
|
||||||
ReduceMinDifficulty: true,
|
ReduceMinDifficulty: false,
|
||||||
MinDiffReductionTime: time.Minute * 20, // TargetTimePerBlock * 2
|
MinDiffReductionTime: 0,
|
||||||
GenerateSupported: true,
|
GenerateSupported: true,
|
||||||
|
|
||||||
// Checkpoints ordered from oldest to newest.
|
// Checkpoints ordered from oldest to newest.
|
||||||
|
@ -401,14 +400,16 @@ var RegressionNetParams = Params{
|
||||||
ExpireTime: math.MaxInt64, // Never expires
|
ExpireTime: math.MaxInt64, // Never expires
|
||||||
},
|
},
|
||||||
DeploymentCSV: {
|
DeploymentCSV: {
|
||||||
BitNumber: 0,
|
BitNumber: 0,
|
||||||
StartTime: 0, // Always available for vote
|
StartTime: 0, // Always available for vote
|
||||||
ExpireTime: math.MaxInt64, // Never expires
|
ExpireTime: math.MaxInt64, // Never expires
|
||||||
|
ForceActiveAt: 1,
|
||||||
},
|
},
|
||||||
DeploymentSegwit: {
|
DeploymentSegwit: {
|
||||||
BitNumber: 1,
|
BitNumber: 1,
|
||||||
StartTime: 0, // Always available for vote
|
StartTime: 0,
|
||||||
ExpireTime: math.MaxInt64, // Never expires.
|
ExpireTime: math.MaxInt64,
|
||||||
|
ForceActiveAt: 150,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -417,12 +418,12 @@ var RegressionNetParams = Params{
|
||||||
|
|
||||||
// Human-readable part for Bech32 encoded segwit addresses, as defined in
|
// Human-readable part for Bech32 encoded segwit addresses, as defined in
|
||||||
// BIP 173.
|
// BIP 173.
|
||||||
Bech32HRPSegwit: "bcrt", // always bcrt for reg test net
|
Bech32HRPSegwit: "rlbc",
|
||||||
|
|
||||||
// Address encoding magics
|
// Address encoding magics
|
||||||
PubKeyHashAddrID: 0x6f, // starts with m or n
|
PubKeyHashAddrID: 111, // starts with m or n
|
||||||
ScriptHashAddrID: 0xc4, // starts with 2
|
ScriptHashAddrID: 196, // starts with 2
|
||||||
PrivateKeyID: 0xef, // starts with 9 (uncompressed) or c (compressed)
|
PrivateKeyID: 239, // starts with 9 (uncompressed) or c (compressed)
|
||||||
|
|
||||||
// BIP32 hierarchical deterministic extended key magics
|
// BIP32 hierarchical deterministic extended key magics
|
||||||
HDPrivateKeyID: [4]byte{0x04, 0x35, 0x83, 0x94}, // starts with tprv
|
HDPrivateKeyID: [4]byte{0x04, 0x35, 0x83, 0x94}, // starts with tprv
|
||||||
|
@ -439,48 +440,31 @@ var RegressionNetParams = Params{
|
||||||
var TestNet3Params = Params{
|
var TestNet3Params = Params{
|
||||||
Name: "testnet3",
|
Name: "testnet3",
|
||||||
Net: wire.TestNet3,
|
Net: wire.TestNet3,
|
||||||
DefaultPort: "18333",
|
DefaultPort: "19246",
|
||||||
DNSSeeds: []DNSSeed{
|
DNSSeeds: []DNSSeed{
|
||||||
{"testnet-seed.bitcoin.jonasschnelli.ch", true},
|
{"testdnsseed1.lbry.com", true},
|
||||||
{"testnet-seed.bitcoin.schildbach.de", false},
|
{"testdnsseed2.lbry.com", true},
|
||||||
{"seed.tbtc.petertodd.org", true},
|
|
||||||
{"testnet-seed.bluematt.me", false},
|
|
||||||
},
|
},
|
||||||
|
|
||||||
// Chain parameters
|
// Chain parameters
|
||||||
GenesisBlock: &testNet3GenesisBlock,
|
GenesisBlock: &testNet3GenesisBlock,
|
||||||
GenesisHash: &testNet3GenesisHash,
|
GenesisHash: &testNet3GenesisHash,
|
||||||
PowLimit: testNet3PowLimit,
|
PowLimit: testNet3PowLimit,
|
||||||
PowLimitBits: 0x1d00ffff,
|
PowLimitBits: 0x1f00ffff,
|
||||||
BIP0034Height: 21111, // 0000000023b3a96d3484e5abb3755c413e7d41500f8e2a5c3f0dd01299cd8ef8
|
BIP0034Height: 21111, // 0x0000000023b3a96d3484e5abb3755c413e7d41500f8e2a5c3f0dd01299cd8ef8
|
||||||
BIP0065Height: 581885, // 00000000007f6655f22f98e72ed80d8b06dc761d5da09df0fa1dc4be4f861eb6
|
BIP0065Height: 1200000,
|
||||||
BIP0066Height: 330776, // 000000002104c8c45e99a8853285a3b592602a3ccde2b832481da85e9e4ba182
|
BIP0066Height: 1200000,
|
||||||
CoinbaseMaturity: 100,
|
CoinbaseMaturity: 100,
|
||||||
SubsidyReductionInterval: 210000,
|
SubsidyReductionInterval: 1 << 5,
|
||||||
TargetTimespan: time.Hour * 24 * 14, // 14 days
|
TargetTimespan: time.Second * 150, // retarget every block
|
||||||
TargetTimePerBlock: time.Minute * 10, // 10 minutes
|
TargetTimePerBlock: time.Second * 150, // 150 seconds
|
||||||
RetargetAdjustmentFactor: 4, // 25% less, 400% more
|
RetargetAdjustmentFactor: 4, // 25% less, 400% more
|
||||||
ReduceMinDifficulty: true,
|
ReduceMinDifficulty: false,
|
||||||
MinDiffReductionTime: time.Minute * 20, // TargetTimePerBlock * 2
|
MinDiffReductionTime: 0,
|
||||||
GenerateSupported: false,
|
GenerateSupported: true,
|
||||||
|
|
||||||
// Checkpoints ordered from oldest to newest.
|
// Checkpoints ordered from oldest to newest.
|
||||||
Checkpoints: []Checkpoint{
|
Checkpoints: []Checkpoint{},
|
||||||
{546, newHashFromStr("000000002a936ca763904c3c35fce2f3556c559c0214345d31b1bcebf76acb70")},
|
|
||||||
{100000, newHashFromStr("00000000009e2958c15ff9290d571bf9459e93b19765c6801ddeccadbb160a1e")},
|
|
||||||
{200000, newHashFromStr("0000000000287bffd321963ef05feab753ebe274e1d78b2fd4e2bfe9ad3aa6f2")},
|
|
||||||
{300001, newHashFromStr("0000000000004829474748f3d1bc8fcf893c88be255e6d7f571c548aff57abf4")},
|
|
||||||
{400002, newHashFromStr("0000000005e2c73b8ecb82ae2dbc2e8274614ebad7172b53528aba7501f5a089")},
|
|
||||||
{500011, newHashFromStr("00000000000929f63977fbac92ff570a9bd9e7715401ee96f2848f7b07750b02")},
|
|
||||||
{600002, newHashFromStr("000000000001f471389afd6ee94dcace5ccc44adc18e8bff402443f034b07240")},
|
|
||||||
{700000, newHashFromStr("000000000000406178b12a4dea3b27e13b3c4fe4510994fd667d7c1e6a3f4dc1")},
|
|
||||||
{800010, newHashFromStr("000000000017ed35296433190b6829db01e657d80631d43f5983fa403bfdb4c1")},
|
|
||||||
{900000, newHashFromStr("0000000000356f8d8924556e765b7a94aaebc6b5c8685dcfa2b1ee8b41acd89b")},
|
|
||||||
{1000007, newHashFromStr("00000000001ccb893d8a1f25b70ad173ce955e5f50124261bbbc50379a612ddf")},
|
|
||||||
{1100007, newHashFromStr("00000000000abc7b2cd18768ab3dee20857326a818d1946ed6796f42d66dd1e8")},
|
|
||||||
{1200007, newHashFromStr("00000000000004f2dc41845771909db57e04191714ed8c963f7e56713a7b6cea")},
|
|
||||||
{1300007, newHashFromStr("0000000072eab69d54df75107c052b26b0395b44f77578184293bf1bb1dbd9fa")},
|
|
||||||
},
|
|
||||||
|
|
||||||
// Consensus rule change deployments.
|
// Consensus rule change deployments.
|
||||||
//
|
//
|
||||||
|
@ -500,9 +484,10 @@ var TestNet3Params = Params{
|
||||||
ExpireTime: 1493596800, // May 1st, 2017
|
ExpireTime: 1493596800, // May 1st, 2017
|
||||||
},
|
},
|
||||||
DeploymentSegwit: {
|
DeploymentSegwit: {
|
||||||
BitNumber: 1,
|
BitNumber: 1,
|
||||||
StartTime: 1462060800, // May 1, 2016 UTC
|
StartTime: 1462060800, // May 1st 2016
|
||||||
ExpireTime: 1493596800, // May 1, 2017 UTC.
|
ExpireTime: 1493596800, // May 1st 2017
|
||||||
|
ForceActiveAt: 1198600,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -511,14 +496,12 @@ var TestNet3Params = Params{
|
||||||
|
|
||||||
// Human-readable part for Bech32 encoded segwit addresses, as defined in
|
// Human-readable part for Bech32 encoded segwit addresses, as defined in
|
||||||
// BIP 173.
|
// BIP 173.
|
||||||
Bech32HRPSegwit: "tb", // always tb for test net
|
Bech32HRPSegwit: "tlbc",
|
||||||
|
|
||||||
// Address encoding magics
|
// Address encoding magics
|
||||||
PubKeyHashAddrID: 0x6f, // starts with m or n
|
PubKeyHashAddrID: 111,
|
||||||
ScriptHashAddrID: 0xc4, // starts with 2
|
ScriptHashAddrID: 196,
|
||||||
WitnessPubKeyHashAddrID: 0x03, // starts with QW
|
PrivateKeyID: 239,
|
||||||
WitnessScriptHashAddrID: 0x28, // starts with T7n
|
|
||||||
PrivateKeyID: 0xef, // starts with 9 (uncompressed) or c (compressed)
|
|
||||||
|
|
||||||
// BIP32 hierarchical deterministic extended key magics
|
// BIP32 hierarchical deterministic extended key magics
|
||||||
HDPrivateKeyID: [4]byte{0x04, 0x35, 0x83, 0x94}, // starts with tprv
|
HDPrivateKeyID: [4]byte{0x04, 0x35, 0x83, 0x94}, // starts with tprv
|
||||||
|
@ -552,11 +535,11 @@ var SimNetParams = Params{
|
||||||
BIP0066Height: 0, // Always active on simnet
|
BIP0066Height: 0, // Always active on simnet
|
||||||
CoinbaseMaturity: 100,
|
CoinbaseMaturity: 100,
|
||||||
SubsidyReductionInterval: 210000,
|
SubsidyReductionInterval: 210000,
|
||||||
TargetTimespan: time.Hour * 24 * 14, // 14 days
|
TargetTimespan: time.Second * 150,
|
||||||
TargetTimePerBlock: time.Minute * 10, // 10 minutes
|
TargetTimePerBlock: time.Second * 150,
|
||||||
RetargetAdjustmentFactor: 4, // 25% less, 400% more
|
RetargetAdjustmentFactor: 4, // 25% less, 400% more
|
||||||
ReduceMinDifficulty: true,
|
ReduceMinDifficulty: true,
|
||||||
MinDiffReductionTime: time.Minute * 20, // TargetTimePerBlock * 2
|
MinDiffReductionTime: 0,
|
||||||
GenerateSupported: true,
|
GenerateSupported: true,
|
||||||
|
|
||||||
// Checkpoints ordered from oldest to newest.
|
// Checkpoints ordered from oldest to newest.
|
||||||
|
@ -581,8 +564,8 @@ var SimNetParams = Params{
|
||||||
},
|
},
|
||||||
DeploymentSegwit: {
|
DeploymentSegwit: {
|
||||||
BitNumber: 1,
|
BitNumber: 1,
|
||||||
StartTime: 0, // Always available for vote
|
StartTime: 0,
|
||||||
ExpireTime: math.MaxInt64, // Never expires.
|
ExpireTime: math.MaxInt64,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -591,14 +574,12 @@ var SimNetParams = Params{
|
||||||
|
|
||||||
// Human-readable part for Bech32 encoded segwit addresses, as defined in
|
// Human-readable part for Bech32 encoded segwit addresses, as defined in
|
||||||
// BIP 173.
|
// BIP 173.
|
||||||
Bech32HRPSegwit: "sb", // always sb for sim net
|
Bech32HRPSegwit: "slbc",
|
||||||
|
|
||||||
// Address encoding magics
|
// Address encoding magics
|
||||||
PubKeyHashAddrID: 0x3f, // starts with S
|
PubKeyHashAddrID: 111,
|
||||||
ScriptHashAddrID: 0x7b, // starts with s
|
ScriptHashAddrID: 196,
|
||||||
PrivateKeyID: 0x64, // starts with 4 (uncompressed) or F (compressed)
|
PrivateKeyID: 239,
|
||||||
WitnessPubKeyHashAddrID: 0x19, // starts with Gg
|
|
||||||
WitnessScriptHashAddrID: 0x28, // starts with ?
|
|
||||||
|
|
||||||
// BIP32 hierarchical deterministic extended key magics
|
// BIP32 hierarchical deterministic extended key magics
|
||||||
HDPrivateKeyID: [4]byte{0x04, 0x20, 0xb9, 0x00}, // starts with sprv
|
HDPrivateKeyID: [4]byte{0x04, 0x20, 0xb9, 0x00}, // starts with sprv
|
||||||
|
@ -691,14 +672,12 @@ func CustomSignetParams(challenge []byte, dnsSeeds []DNSSeed) Params {
|
||||||
|
|
||||||
// Human-readable part for Bech32 encoded segwit addresses, as defined in
|
// Human-readable part for Bech32 encoded segwit addresses, as defined in
|
||||||
// BIP 173.
|
// BIP 173.
|
||||||
Bech32HRPSegwit: "tb", // always tb for test net
|
Bech32HRPSegwit: "slbc",
|
||||||
|
|
||||||
// Address encoding magics
|
// Address encoding magics
|
||||||
PubKeyHashAddrID: 0x6f, // starts with m or n
|
PubKeyHashAddrID: 0x6f, // starts with m or n
|
||||||
ScriptHashAddrID: 0xc4, // starts with 2
|
ScriptHashAddrID: 0xc4, // starts with 2
|
||||||
WitnessPubKeyHashAddrID: 0x03, // starts with QW
|
PrivateKeyID: 0xef, // starts with 9 (uncompressed) or c (compressed)
|
||||||
WitnessScriptHashAddrID: 0x28, // starts with T7n
|
|
||||||
PrivateKeyID: 0xef, // starts with 9 (uncompressed) or c (compressed)
|
|
||||||
|
|
||||||
// BIP32 hierarchical deterministic extended key magics
|
// BIP32 hierarchical deterministic extended key magics
|
||||||
HDPrivateKeyID: [4]byte{0x04, 0x35, 0x83, 0x94}, // starts with tprv
|
HDPrivateKeyID: [4]byte{0x04, 0x35, 0x83, 0x94}, // starts with tprv
|
||||||
|
|
Loading…
Reference in a new issue