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()