github.com/btcsuite/btcd@v0.24.0/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/btcsuite/btcd/chaincfg/chainhash" 11 "github.com/btcsuite/btcd/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, 0x45, /* |.......E| */ 26 0x54, 0x68, 0x65, 0x20, 0x54, 0x69, 0x6d, 0x65, /* |The Time| */ 27 0x73, 0x20, 0x30, 0x33, 0x2f, 0x4a, 0x61, 0x6e, /* |s 03/Jan| */ 28 0x2f, 0x32, 0x30, 0x30, 0x39, 0x20, 0x43, 0x68, /* |/2009 Ch| */ 29 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x6f, 0x72, /* |ancellor| */ 30 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x72, 0x69, 0x6e, /* | on brin| */ 31 0x6b, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x65, 0x63, /* |k of sec|*/ 32 0x6f, 0x6e, 0x64, 0x20, 0x62, 0x61, 0x69, 0x6c, /* |ond bail| */ 33 0x6f, 0x75, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, /* |out for |*/ 34 0x62, 0x61, 0x6e, 0x6b, 0x73, /* |banks| */ 35 }, 36 Sequence: 0xffffffff, 37 }, 38 }, 39 TxOut: []*wire.TxOut{ 40 { 41 Value: 0x12a05f200, 42 PkScript: []byte{ 43 0x41, 0x04, 0x67, 0x8a, 0xfd, 0xb0, 0xfe, 0x55, /* |A.g....U| */ 44 0x48, 0x27, 0x19, 0x67, 0xf1, 0xa6, 0x71, 0x30, /* |H'.g..q0| */ 45 0xb7, 0x10, 0x5c, 0xd6, 0xa8, 0x28, 0xe0, 0x39, /* |..\..(.9| */ 46 0x09, 0xa6, 0x79, 0x62, 0xe0, 0xea, 0x1f, 0x61, /* |..yb...a| */ 47 0xde, 0xb6, 0x49, 0xf6, 0xbc, 0x3f, 0x4c, 0xef, /* |..I..?L.| */ 48 0x38, 0xc4, 0xf3, 0x55, 0x04, 0xe5, 0x1e, 0xc1, /* |8..U....| */ 49 0x12, 0xde, 0x5c, 0x38, 0x4d, 0xf7, 0xba, 0x0b, /* |..\8M...| */ 50 0x8d, 0x57, 0x8a, 0x4c, 0x70, 0x2b, 0x6b, 0xf1, /* |.W.Lp+k.| */ 51 0x1d, 0x5f, 0xac, /* |._.| */ 52 }, 53 }, 54 }, 55 LockTime: 0, 56 } 57 58 // genesisHash is the hash of the first block in the block chain for the main 59 // network (genesis block). 60 var genesisHash = chainhash.Hash([chainhash.HashSize]byte{ // Make go vet happy. 61 0x6f, 0xe2, 0x8c, 0x0a, 0xb6, 0xf1, 0xb3, 0x72, 62 0xc1, 0xa6, 0xa2, 0x46, 0xae, 0x63, 0xf7, 0x4f, 63 0x93, 0x1e, 0x83, 0x65, 0xe1, 0x5a, 0x08, 0x9c, 64 0x68, 0xd6, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 65 }) 66 67 // genesisMerkleRoot is the hash of the first transaction in the genesis block 68 // for the main network. 69 var genesisMerkleRoot = chainhash.Hash([chainhash.HashSize]byte{ // Make go vet happy. 70 0x3b, 0xa3, 0xed, 0xfd, 0x7a, 0x7b, 0x12, 0xb2, 71 0x7a, 0xc7, 0x2c, 0x3e, 0x67, 0x76, 0x8f, 0x61, 72 0x7f, 0xc8, 0x1b, 0xc3, 0x88, 0x8a, 0x51, 0x32, 73 0x3a, 0x9f, 0xb8, 0xaa, 0x4b, 0x1e, 0x5e, 0x4a, 74 }) 75 76 // genesisBlock defines the genesis block of the block chain which serves as the 77 // public transaction ledger for the main network. 78 var genesisBlock = wire.MsgBlock{ 79 Header: wire.BlockHeader{ 80 Version: 1, 81 PrevBlock: chainhash.Hash{}, // 0000000000000000000000000000000000000000000000000000000000000000 82 MerkleRoot: genesisMerkleRoot, // 4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b 83 Timestamp: time.Unix(0x495fab29, 0), // 2009-01-03 18:15:05 +0000 UTC 84 Bits: 0x1d00ffff, // 486604799 [00000000ffff0000000000000000000000000000000000000000000000000000] 85 Nonce: 0x7c2bac1d, // 2083236893 86 }, 87 Transactions: []*wire.MsgTx{&genesisCoinbaseTx}, 88 } 89 90 // regTestGenesisHash is the hash of the first block in the block chain for the 91 // regression test network (genesis block). 92 var regTestGenesisHash = chainhash.Hash([chainhash.HashSize]byte{ // Make go vet happy. 93 0x06, 0x22, 0x6e, 0x46, 0x11, 0x1a, 0x0b, 0x59, 94 0xca, 0xaf, 0x12, 0x60, 0x43, 0xeb, 0x5b, 0xbf, 95 0x28, 0xc3, 0x4f, 0x3a, 0x5e, 0x33, 0x2a, 0x1f, 96 0xc7, 0xb2, 0xb7, 0x3c, 0xf1, 0x88, 0x91, 0x0f, 97 }) 98 99 // regTestGenesisMerkleRoot is the hash of the first transaction in the genesis 100 // block for the regression test network. It is the same as the merkle root for 101 // the main network. 102 var regTestGenesisMerkleRoot = genesisMerkleRoot 103 104 // regTestGenesisBlock defines the genesis block of the block chain which serves 105 // as the public transaction ledger for the regression test network. 106 var regTestGenesisBlock = wire.MsgBlock{ 107 Header: wire.BlockHeader{ 108 Version: 1, 109 PrevBlock: chainhash.Hash{}, // 0000000000000000000000000000000000000000000000000000000000000000 110 MerkleRoot: regTestGenesisMerkleRoot, // 4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b 111 Timestamp: time.Unix(1296688602, 0), // 2011-02-02 23:16:42 +0000 UTC 112 Bits: 0x207fffff, // 545259519 [7fffff0000000000000000000000000000000000000000000000000000000000] 113 Nonce: 2, 114 }, 115 Transactions: []*wire.MsgTx{&genesisCoinbaseTx}, 116 } 117 118 // testNet3GenesisHash is the hash of the first block in the block chain for the 119 // test network (version 3). 120 var testNet3GenesisHash = chainhash.Hash([chainhash.HashSize]byte{ // Make go vet happy. 121 0x43, 0x49, 0x7f, 0xd7, 0xf8, 0x26, 0x95, 0x71, 122 0x08, 0xf4, 0xa3, 0x0f, 0xd9, 0xce, 0xc3, 0xae, 123 0xba, 0x79, 0x97, 0x20, 0x84, 0xe9, 0x0e, 0xad, 124 0x01, 0xea, 0x33, 0x09, 0x00, 0x00, 0x00, 0x00, 125 }) 126 127 // testNet3GenesisMerkleRoot is the hash of the first transaction in the genesis 128 // block for the test network (version 3). It is the same as the merkle root 129 // for the main network. 130 var testNet3GenesisMerkleRoot = genesisMerkleRoot 131 132 // testNet3GenesisBlock defines the genesis block of the block chain which 133 // serves as the public transaction ledger for the test network (version 3). 134 var testNet3GenesisBlock = wire.MsgBlock{ 135 Header: wire.BlockHeader{ 136 Version: 1, 137 PrevBlock: chainhash.Hash{}, // 0000000000000000000000000000000000000000000000000000000000000000 138 MerkleRoot: testNet3GenesisMerkleRoot, // 4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b 139 Timestamp: time.Unix(1296688602, 0), // 2011-02-02 23:16:42 +0000 UTC 140 Bits: 0x1d00ffff, // 486604799 [00000000ffff0000000000000000000000000000000000000000000000000000] 141 Nonce: 0x18aea41a, // 414098458 142 }, 143 Transactions: []*wire.MsgTx{&genesisCoinbaseTx}, 144 } 145 146 // simNetGenesisHash is the hash of the first block in the block chain for the 147 // simulation test network. 148 var simNetGenesisHash = chainhash.Hash([chainhash.HashSize]byte{ // Make go vet happy. 149 0xf6, 0x7a, 0xd7, 0x69, 0x5d, 0x9b, 0x66, 0x2a, 150 0x72, 0xff, 0x3d, 0x8e, 0xdb, 0xbb, 0x2d, 0xe0, 151 0xbf, 0xa6, 0x7b, 0x13, 0x97, 0x4b, 0xb9, 0x91, 152 0x0d, 0x11, 0x6d, 0x5c, 0xbd, 0x86, 0x3e, 0x68, 153 }) 154 155 // simNetGenesisMerkleRoot is the hash of the first transaction in the genesis 156 // block for the simulation test network. It is the same as the merkle root for 157 // the main network. 158 var simNetGenesisMerkleRoot = genesisMerkleRoot 159 160 // simNetGenesisBlock defines the genesis block of the block chain which serves 161 // as the public transaction ledger for the simulation test network. 162 var simNetGenesisBlock = wire.MsgBlock{ 163 Header: wire.BlockHeader{ 164 Version: 1, 165 PrevBlock: chainhash.Hash{}, // 0000000000000000000000000000000000000000000000000000000000000000 166 MerkleRoot: simNetGenesisMerkleRoot, // 4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b 167 Timestamp: time.Unix(1401292357, 0), // 2014-05-28 15:52:37 +0000 UTC 168 Bits: 0x207fffff, // 545259519 [7fffff0000000000000000000000000000000000000000000000000000000000] 169 Nonce: 2, 170 }, 171 Transactions: []*wire.MsgTx{&genesisCoinbaseTx}, 172 } 173 174 // sigNetGenesisHash is the hash of the first block in the block chain for the 175 // signet test network. 176 var sigNetGenesisHash = chainhash.Hash{ 177 0xf6, 0x1e, 0xee, 0x3b, 0x63, 0xa3, 0x80, 0xa4, 178 0x77, 0xa0, 0x63, 0xaf, 0x32, 0xb2, 0xbb, 0xc9, 179 0x7c, 0x9f, 0xf9, 0xf0, 0x1f, 0x2c, 0x42, 0x25, 180 0xe9, 0x73, 0x98, 0x81, 0x08, 0x00, 0x00, 0x00, 181 } 182 183 // sigNetGenesisMerkleRoot is the hash of the first transaction in the genesis 184 // block for the signet test network. It is the same as the merkle root for 185 // the main network. 186 var sigNetGenesisMerkleRoot = genesisMerkleRoot 187 188 // sigNetGenesisBlock defines the genesis block of the block chain which serves 189 // as the public transaction ledger for the signet test network. 190 var sigNetGenesisBlock = wire.MsgBlock{ 191 Header: wire.BlockHeader{ 192 Version: 1, 193 PrevBlock: chainhash.Hash{}, // 0000000000000000000000000000000000000000000000000000000000000000 194 MerkleRoot: sigNetGenesisMerkleRoot, // 4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b 195 Timestamp: time.Unix(1598918400, 0), // 2020-09-01 00:00:00 +0000 UTC 196 Bits: 0x1e0377ae, // 503543726 [00000377ae000000000000000000000000000000000000000000000000000000] 197 Nonce: 52613770, 198 }, 199 Transactions: []*wire.MsgTx{&genesisCoinbaseTx}, 200 }