From 23d0284c7c1792242e702039cc050dc937b11dae Mon Sep 17 00:00:00 2001 From: Tuna Date: Tue, 12 Feb 2019 16:22:39 +0700 Subject: [PATCH] testnet: add hard-fork block, allow nodes to sign block --- common/constants.go | 1 + consensus/posv/posv.go | 4 ++-- eth/backend.go | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/common/constants.go b/common/constants.go index 6b483d9b2c..b9655826fa 100644 --- a/common/constants.go +++ b/common/constants.go @@ -21,6 +21,7 @@ const ( ) var TIP2019Block = big.NewInt(1050000) +var TestnetHF1 = uint64(909000) var IsTestnet = false var StoreRewardFolder string var RollbackHash Hash diff --git a/consensus/posv/posv.go b/consensus/posv/posv.go index 0e2288ec1d..fc24a8e425 100644 --- a/consensus/posv/posv.go +++ b/consensus/posv/posv.go @@ -307,7 +307,7 @@ func (c *Posv) verifyHeaderWithCache(chain consensus.ChainReader, header *types. // looking those up from the database. This is useful for concurrently verifying // a batch of new headers. func (c *Posv) verifyHeader(chain consensus.ChainReader, header *types.Header, parents []*types.Header, fullVerify bool) error { - if common.IsTestnet { + if common.IsTestnet && header.Number.Uint64() >= common.TestnetHF1 { fullVerify = false } if header.Number == nil { @@ -490,7 +490,7 @@ func (c *Posv) YourTurn(chain consensus.ChainReader, parent *types.Header, signe if common.IsTestnet { // Only three mns hard code for tomo testnet. masternodes = masternodes[:3] - if parent.Number.Uint64() >= 909000 { + if parent.Number.Uint64() >= common.TestnetHF1 { masternodes = []common.Address{ common.HexToAddress("0xfFC679Dcdf444D2eEb0491A998E7902B411CcF20"), common.HexToAddress("0xd76fd76F7101811726DCE9E43C2617706a4c45c8"), diff --git a/eth/backend.go b/eth/backend.go index 99074c8ac0..bf3b7eea5f 100644 --- a/eth/backend.go +++ b/eth/backend.go @@ -212,7 +212,7 @@ func New(ctx *node.ServiceContext, config *Config) (*Ethereum, error) { if err != nil { return fmt.Errorf("Can't verify masternode permission: %v", err) } - if !ok { + if !ok && !common.IsTestnet { // silently return as this node doesn't have masternode permission to sign block return nil } @@ -580,7 +580,7 @@ func (s *Ethereum) ValidateMasternode() (bool, error) { } else { return false, fmt.Errorf("Only verify masternode permission in PoSV protocol") } - if common.IsTestnet { + if common.IsTestnet && s.blockchain.CurrentHeader().Number.Uint64() >= common.TestnetHF1 { masternodes := []common.Address{ common.HexToAddress("0xfFC679Dcdf444D2eEb0491A998E7902B411CcF20"), common.HexToAddress("0xd76fd76F7101811726DCE9E43C2617706a4c45c8"),