github.com/lbryio/lbcd@v0.22.119/chaincfg/genesis.go (about) 1 // Copyright (c) 2014-2016 The btcsuite developers 2 // Use of this source code is governed by an ISC 3 // license that can be found in the LICENSE file. 4 5 package chaincfg 6 7 import ( 8 "time" 9 10 "github.com/lbryio/lbcd/chaincfg/chainhash" 11 "github.com/lbryio/lbcd/wire" 12 ) 13 14 // genesisCoinbaseTx is the coinbase transaction for the genesis blocks for 15 // the main network, regression test network, and test network (version 3). 16 var genesisCoinbaseTx = wire.MsgTx{ 17 Version: 1, 18 TxIn: []*wire.TxIn{ 19 { 20 PreviousOutPoint: wire.OutPoint{ 21 Hash: chainhash.Hash{}, 22 Index: 0xffffffff, 23 }, 24 SignatureScript: []byte{ 25 0x04, 0xff, 0xff, 0x00, 0x1d, 0x01, 0x04, 0x17, 26 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x20, 0x74, 27 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 28 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 29 }, 30 Sequence: 0xffffffff, 31 }, 32 }, 33 TxOut: []*wire.TxOut{ 34 { 35 Value: 0x8e1bc9bf040000, // 400000000 * COIN 36 PkScript: []byte{ 37 0x76, 0xa9, 0x14, 0x34, 0x59, 0x91, 0xdb, 0xf5, 38 0x7b, 0xfb, 0x01, 0x4b, 0x87, 0x00, 0x6a, 0xcd, 39 0xfa, 0xfb, 0xfc, 0x5f, 0xe8, 0x29, 0x2f, 0x88, 40 0xac, 41 }, 42 }, 43 }, 44 LockTime: 0, 45 } 46 47 // genesisHash is the hash of the first block in the block chain for the main 48 // network (genesis block). 49 var genesisHash = chainhash.Hash([chainhash.HashSize]byte{ // Make go vet happy. 50 0x63, 0xf4, 0x34, 0x6a, 0x4d, 0xb3, 0x4f, 0xdf, 51 0xce, 0x29, 0xa7, 0x0f, 0x5e, 0x8d, 0x11, 0xf0, 52 0x65, 0xf6, 0xb9, 0x16, 0x02, 0xb7, 0x03, 0x6c, 53 0x7f, 0x22, 0xf3, 0xa0, 0x3b, 0x28, 0x89, 0x9c, 54 }) 55 56 // genesisMerkleRoot is the hash of the first transaction in the genesis block 57 // for the main network. 58 var genesisMerkleRoot = chainhash.Hash([chainhash.HashSize]byte{ // Make go vet happy. 59 0xcc, 0x59, 0xe5, 0x9f, 0xf9, 0x7a, 0xc0, 0x92, 60 0xb5, 0x5e, 0x42, 0x3a, 0xa5, 0x49, 0x51, 0x51, 61 0xed, 0x6f, 0xb8, 0x05, 0x70, 0xa5, 0xbb, 0x78, 62 0xcd, 0x5b, 0xd1, 0xc3, 0x82, 0x1c, 0x21, 0xb8, 63 }) 64 65 // genesisClaimTrie is the hash of the first transaction in the genesis block 66 // for the main network. 67 var genesisClaimTrie = chainhash.Hash([chainhash.HashSize]byte{ // Make go vet happy. 68 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 69 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 70 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 71 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 72 }) 73 74 // genesisBlock defines the genesis block of the block chain which serves as the 75 // public transaction ledger for the main network. 76 var genesisBlock = wire.MsgBlock{ 77 Header: wire.BlockHeader{ 78 Version: 1, 79 PrevBlock: chainhash.Hash{}, // 0000000000000000000000000000000000000000000000000000000000000000 80 MerkleRoot: genesisMerkleRoot, // b8211c82c3d15bcd78bba57005b86fed515149a53a425eb592c07af99fe559cc 81 ClaimTrie: genesisClaimTrie, // 0000000000000000000000000000000000000000000000000000000000000001 82 Timestamp: time.Unix(1446058291, 0), // 28 Oct 2015 18:51:31 +0000 UTC 83 Bits: 0x1f00ffff, // 486604799 [00000000ffff0000000000000000000000000000000000000000000000000000] 84 Nonce: 0x00000507, // 1287 85 }, 86 Transactions: []*wire.MsgTx{&genesisCoinbaseTx}, 87 } 88 89 // regTestGenesisMerkleRoot is the hash of the first transaction in the genesis 90 // block for the regression test network. It is the same as the merkle root for 91 // the main network. 92 var regTestGenesisMerkleRoot = genesisMerkleRoot 93 94 // regTestGenesisBlock defines the genesis block of the block chain which serves 95 // as the public transaction ledger for the regression test network. 96 var regTestGenesisBlock = wire.MsgBlock{ 97 Header: wire.BlockHeader{ 98 Version: 1, 99 PrevBlock: chainhash.Hash{}, // 0000000000000000000000000000000000000000000000000000000000000000 100 MerkleRoot: regTestGenesisMerkleRoot, // b8211c82c3d15bcd78bba57005b86fed515149a53a425eb592c07af99fe559cc 101 ClaimTrie: genesisClaimTrie, // 0000000000000000000000000000000000000000000000000000000000000001 102 Timestamp: time.Unix(1446058291, 0), // 28 Oct 2015 18:51:31 +0000 UTC 103 Bits: 0x207fffff, // 545259519 [7fffff0000000000000000000000000000000000000000000000000000000000] 104 Nonce: 1, 105 }, 106 Transactions: []*wire.MsgTx{&genesisCoinbaseTx}, 107 } 108 109 // regTestGenesisHash is the hash of the first block in the block chain for the 110 // regression test network (genesis block). 111 var regTestGenesisHash = regTestGenesisBlock.BlockHash() 112 113 // testNet3GenesisMerkleRoot is the hash of the first transaction in the genesis 114 // block for the test network (version 3). It is the same as the merkle root 115 // for the main network. 116 var testNet3GenesisMerkleRoot = genesisMerkleRoot 117 118 // testNet3GenesisBlock defines the genesis block of the block chain which 119 // serves as the public transaction ledger for the test network (version 3). 120 var testNet3GenesisBlock = wire.MsgBlock{ 121 Header: wire.BlockHeader{ 122 Version: 1, 123 PrevBlock: chainhash.Hash{}, // 0000000000000000000000000000000000000000000000000000000000000000 124 MerkleRoot: testNet3GenesisMerkleRoot, // b8211c82c3d15bcd78bba57005b86fed515149a53a425eb592c07af99fe559cc 125 ClaimTrie: genesisClaimTrie, // 0000000000000000000000000000000000000000000000000000000000000001 126 Timestamp: time.Unix(1446058291, 0), // 28 Oct 2015 18:51:31 +0000 UTC 127 Bits: 0x1f00ffff, // 486604799 [00000000ffff0000000000000000000000000000000000000000000000000000] 128 Nonce: 0x00000507, // 1287 129 }, 130 Transactions: []*wire.MsgTx{&genesisCoinbaseTx}, 131 } 132 133 // testNet3GenesisHash is the hash of the first block in the block chain for the 134 // test network (version 3). 135 var testNet3GenesisHash = testNet3GenesisBlock.BlockHash() 136 137 // simNetGenesisMerkleRoot is the hash of the first transaction in the genesis 138 // block for the simulation test network. It is the same as the merkle root for 139 // the main network. 140 var simNetGenesisMerkleRoot = genesisMerkleRoot 141 142 // simNetGenesisBlock defines the genesis block of the block chain which serves 143 // as the public transaction ledger for the simulation test network. 144 var simNetGenesisBlock = wire.MsgBlock{ 145 Header: wire.BlockHeader{ 146 Version: 1, 147 PrevBlock: chainhash.Hash{}, // 0000000000000000000000000000000000000000000000000000000000000000 148 MerkleRoot: simNetGenesisMerkleRoot, // 4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b 149 Timestamp: time.Unix(1401292357, 0), // 2014-05-28 15:52:37 +0000 UTC 150 Bits: 0x207fffff, // 545259519 [7fffff0000000000000000000000000000000000000000000000000000000000] 151 Nonce: 2, 152 }, 153 Transactions: []*wire.MsgTx{&genesisCoinbaseTx}, 154 } 155 156 // simNetGenesisHash is the hash of the first block in the block chain for the 157 // simulation test network. 158 var simNetGenesisHash = simNetGenesisBlock.BlockHash() 159 160 // sigNetGenesisMerkleRoot is the hash of the first transaction in the genesis 161 // block for the signet test network. It is the same as the merkle root for 162 // the main network. 163 var sigNetGenesisMerkleRoot = genesisMerkleRoot 164 165 // sigNetGenesisBlock defines the genesis block of the block chain which serves 166 // as the public transaction ledger for the signet test network. 167 var sigNetGenesisBlock = wire.MsgBlock{ 168 Header: wire.BlockHeader{ 169 Version: 1, 170 PrevBlock: chainhash.Hash{}, // 0000000000000000000000000000000000000000000000000000000000000000 171 MerkleRoot: sigNetGenesisMerkleRoot, // 4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b 172 Timestamp: time.Unix(1598918400, 0), // 2020-09-01 00:00:00 +0000 UTC 173 Bits: 0x1e0377ae, // 503543726 [00000377ae000000000000000000000000000000000000000000000000000000] 174 Nonce: 52613770, 175 }, 176 Transactions: []*wire.MsgTx{&genesisCoinbaseTx}, 177 } 178 179 // sigNetGenesisHash is the hash of the first block in the block chain for the 180 // signet test network. 181 var sigNetGenesisHash = sigNetGenesisBlock.BlockHash()