From 64f26af59d24881bcdd49bbdd291c1a21a12b82d Mon Sep 17 00:00:00 2001
From: Wei-Ning Huang <w@dexon.org>
Date: Sun, 17 Mar 2019 10:43:10 +0800
Subject: core: fill in genesis timstamp and remove dMoment from protocol
 handshake (#263)

Fill in dmoment as genesis block timestamp. This allow us to remove
dMoment check from protocol handshake since genesis block hash itself
will protect us against different dMoment.
---
 core/genesis.go      |  5 ++++-
 core/genesis_test.go | 10 ++++++++++
 2 files changed, 14 insertions(+), 1 deletion(-)

(limited to 'core')

diff --git a/core/genesis.go b/core/genesis.go
index f2df4f62f..10585bab4 100644
--- a/core/genesis.go
+++ b/core/genesis.go
@@ -384,7 +384,7 @@ func GenesisBlockForTesting(db ethdb.Database, addr common.Address, balance *big
 func DefaultGenesisBlock() *Genesis {
 	return &Genesis{
 		Config:     params.MainnetChainConfig,
-		Timestamp:  1540024964,
+		Timestamp:  params.MainnetChainConfig.DMoment,
 		Nonce:      0x42,
 		ExtraData:  hexutil.MustDecode("0x5765692d4e696e6720536f6e696320426f6a696520323031382d31302d32302e"),
 		GasLimit:   40000000,
@@ -397,6 +397,7 @@ func DefaultGenesisBlock() *Genesis {
 func DefaultTestnetGenesisBlock() *Genesis {
 	return &Genesis{
 		Config:     params.TestnetChainConfig,
+		Timestamp:  params.TestnetChainConfig.DMoment,
 		Nonce:      0x42,
 		ExtraData:  hexutil.MustDecode("0x3535353535353535353535353535353535353535353535353535353535353535"),
 		GasLimit:   40000000,
@@ -409,6 +410,7 @@ func DefaultTestnetGenesisBlock() *Genesis {
 func DefaultTaipeiGenesisBlock() *Genesis {
 	return &Genesis{
 		Config:     params.TaipeiChainConfig,
+		Timestamp:  params.TaipeiChainConfig.DMoment,
 		Nonce:      0x42,
 		ExtraData:  hexutil.MustDecode("0x3535353535353535353535353535353535353535353535353535353535353535"),
 		GasLimit:   40000000,
@@ -421,6 +423,7 @@ func DefaultTaipeiGenesisBlock() *Genesis {
 func DefaultYilanGenesisBlock() *Genesis {
 	return &Genesis{
 		Config:     params.YilanChainConfig,
+		Timestamp:  params.YilanChainConfig.DMoment,
 		Nonce:      0x42,
 		ExtraData:  hexutil.MustDecode("0x3535353535353535353535353535353535353535353535353535353535353535"),
 		GasLimit:   40000000,
diff --git a/core/genesis_test.go b/core/genesis_test.go
index de843e05a..16958eac3 100644
--- a/core/genesis_test.go
+++ b/core/genesis_test.go
@@ -104,6 +104,16 @@ func TestSetupGenesis(t *testing.T) {
 			wantHash:   params.TestnetGenesisHash,
 			wantConfig: params.TestnetChainConfig,
 		},
+		{
+			name: "custom block in DB, genesis == taipei",
+			fn: func(db ethdb.Database) (*params.ChainConfig, common.Hash, error) {
+				customg.MustCommit(db)
+				return SetupGenesisBlock(db, DefaultTaipeiGenesisBlock())
+			},
+			wantErr:    &GenesisMismatchError{Stored: customghash, New: params.TaipeiGenesisHash},
+			wantHash:   params.TaipeiGenesisHash,
+			wantConfig: params.TaipeiChainConfig,
+		},
 		{
 			name: "custom block in DB, genesis == yilan",
 			fn: func(db ethdb.Database) (*params.ChainConfig, common.Hash, error) {
-- 
cgit v1.2.3