OSDN Git Service

add log (#373)
[bytom/vapor.git] / config / genesis.go
index 8cd5325..a3b2f7e 100644 (file)
@@ -13,9 +13,19 @@ import (
        "github.com/vapor/protocol/vm/vmutil"
 )
 
+// FedAddressPath is used to derive federation root xpubs for signing cross-chain txs
+var FedAddressPath = [][]byte{
+       []byte{0x2C, 0x00, 0x00, 0x00},
+       []byte{0x99, 0x00, 0x00, 0x00},
+       []byte{0x01, 0x00, 0x00, 0x00},
+       []byte{0x00, 0x00, 0x00, 0x00},
+       []byte{0x01, 0x00, 0x00, 0x00},
+}
+
 func FederationPMultiSigScript(c *Config) []byte {
        xpubs := c.Federation.Xpubs
-       program, err := vmutil.P2SPMultiSigProgram(chainkd.XPubKeys(xpubs), c.Federation.Quorum)
+       derivedXPubs := chainkd.DeriveXPubs(xpubs, FedAddressPath)
+       program, err := vmutil.P2SPMultiSigProgram(chainkd.XPubKeys(derivedXPubs), c.Federation.Quorum)
        if err != nil {
                log.Panicf("fail to generate federation scirpt for federation: %v", err)
        }
@@ -74,7 +84,7 @@ func mainNetGenesisBlock() *types.Block {
                BlockHeader: types.BlockHeader{
                        Version:   1,
                        Height:    0,
-                       Timestamp: 1561600800002,
+                       Timestamp: 1563344560002,
                        BlockCommitment: types.BlockCommitment{
                                TransactionsMerkleRoot: merkleRoot,
                                TransactionStatusHash:  txStatusHash,
@@ -105,7 +115,7 @@ func testNetGenesisBlock() *types.Block {
                BlockHeader: types.BlockHeader{
                        Version:   1,
                        Height:    0,
-                       Timestamp: 1561600800001,
+                       Timestamp: 1563344560001,
                        BlockCommitment: types.BlockCommitment{
                                TransactionsMerkleRoot: merkleRoot,
                                TransactionStatusHash:  txStatusHash,
@@ -136,7 +146,7 @@ func soloNetGenesisBlock() *types.Block {
                BlockHeader: types.BlockHeader{
                        Version:   1,
                        Height:    0,
-                       Timestamp: 1561600800000,
+                       Timestamp: 1563344560000,
                        BlockCommitment: types.BlockCommitment{
                                TransactionsMerkleRoot: merkleRoot,
                                TransactionStatusHash:  txStatusHash,
@@ -150,9 +160,8 @@ func soloNetGenesisBlock() *types.Block {
 // GenesisBlock will return genesis block
 func GenesisBlock() *types.Block {
        return map[string]func() *types.Block{
-               "main":  mainNetGenesisBlock,
-               "test":  testNetGenesisBlock,
-               "solo":  soloNetGenesisBlock,
-               "vapor": soloNetGenesisBlock,
+               "main": mainNetGenesisBlock,
+               "test": testNetGenesisBlock,
+               "solo": soloNetGenesisBlock,
        }[consensus.ActiveNetParams.Name]()
 }