X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=config%2Fgenesis.go;h=431cf8eb924598a7cbc99cdf22be02b002db02ab;hb=c84ab6920d263b10014ff44cea88a33f90c87f99;hp=f588962f29be8ba34ffc107322c010679b6fe73f;hpb=2ffd5b239ec0ed7c96f789362d8b986834ae227f;p=bytom%2Fvapor.git diff --git a/config/genesis.go b/config/genesis.go index f588962f..431cf8eb 100644 --- a/config/genesis.go +++ b/config/genesis.go @@ -6,23 +6,37 @@ import ( log "github.com/sirupsen/logrus" "github.com/vapor/consensus" + "github.com/vapor/crypto/ed25519/chainkd" "github.com/vapor/protocol/bc" "github.com/vapor/protocol/bc/types" + "github.com/vapor/protocol/vm/vmutil" ) +func FederationProgrom(c *Config) []byte { + xpubs := c.Federation.Xpubs + fedpegScript, err := vmutil.P2SPMultiSigProgram(chainkd.XPubKeys(xpubs), c.Federation.Quorum) + if err != nil { + log.Panicf("fail to generate federation scirpt for federation: %v", err) + } + + return fedpegScript +} + func GenesisTx() *types.Tx { contract, err := hex.DecodeString("00148c9d063ff74ee6d9ffa88d83aeb038068366c4c4") if err != nil { log.Panicf("fail on decode genesis tx output control program") } + coinbaseInput := FederationProgrom(CommonConfig) + txData := types.TxData{ Version: 1, Inputs: []*types.TxInput{ - types.NewCoinbaseInput([]byte("Information is power. -- Jan/11/2013. Computing is power. -- Apr/24/2018.")), + types.NewCoinbaseInput(coinbaseInput[:]), }, Outputs: []*types.TxOutput{ - types.NewTxOutput(*consensus.BTMAssetID, consensus.InitialBlockSubsidy, contract), + types.NewIntraChainOutput(*consensus.BTMAssetID, consensus.BlockSubsidy(0), contract), }, } return types.NewTx(txData) @@ -48,7 +62,7 @@ func mainNetGenesisBlock() *types.Block { BlockHeader: types.BlockHeader{ Version: 1, Height: 0, - Timestamp: 1524549600, + Timestamp: 1561600800002, BlockCommitment: types.BlockCommitment{ TransactionsMerkleRoot: merkleRoot, TransactionStatusHash: txStatusHash, @@ -79,7 +93,7 @@ func testNetGenesisBlock() *types.Block { BlockHeader: types.BlockHeader{ Version: 1, Height: 0, - Timestamp: 1528945000, + Timestamp: 1561600800001, BlockCommitment: types.BlockCommitment{ TransactionsMerkleRoot: merkleRoot, TransactionStatusHash: txStatusHash, @@ -110,7 +124,7 @@ func soloNetGenesisBlock() *types.Block { BlockHeader: types.BlockHeader{ Version: 1, Height: 0, - Timestamp: 1528945000, + Timestamp: 1561600800000, BlockCommitment: types.BlockCommitment{ TransactionsMerkleRoot: merkleRoot, TransactionStatusHash: txStatusHash,