OSDN Git Service

new repo
[bytom/vapor.git] / vendor / github.com / btcsuite / btcd / chaincfg / genesis.go
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 }