diff options
author | Péter Szilágyi <peterke@gmail.com> | 2016-10-29 22:21:26 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-10-29 22:21:26 +0800 |
commit | 63d293cdbe14cf00045b888522ef36d21c907c26 (patch) | |
tree | dc2251251b9bd72eac05ebdf17b146788c148ae7 /cmd/utils | |
parent | 79789af2e7fce8807d21a8eedbf42d41a7c55848 (diff) | |
parent | f0dbec0c93a772b0f3553399126d8c49bfcc85d4 (diff) | |
download | go-tangerine-63d293cdbe14cf00045b888522ef36d21c907c26.tar go-tangerine-63d293cdbe14cf00045b888522ef36d21c907c26.tar.gz go-tangerine-63d293cdbe14cf00045b888522ef36d21c907c26.tar.bz2 go-tangerine-63d293cdbe14cf00045b888522ef36d21c907c26.tar.lz go-tangerine-63d293cdbe14cf00045b888522ef36d21c907c26.tar.xz go-tangerine-63d293cdbe14cf00045b888522ef36d21c907c26.tar.zst go-tangerine-63d293cdbe14cf00045b888522ef36d21c907c26.zip |
Merge pull request #3195 from karalabe/fix-testnet-fastsync
cmd/utils, core, params: explicitly pick reprice fork for fast sync
Diffstat (limited to 'cmd/utils')
-rw-r--r-- | cmd/utils/flags.go | 54 |
1 files changed, 35 insertions, 19 deletions
diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go index abfb4d1e7..edb0873f6 100644 --- a/cmd/utils/flags.go +++ b/cmd/utils/flags.go @@ -781,27 +781,43 @@ func MakeChainConfigFromDb(ctx *cli.Context, db ethdb.Database) *core.ChainConfi Fatalf("Could not make chain configuration: %v", err) } } - // Set any missing fields due to them being unset or system upgrade - if config.HomesteadBlock == nil { - if ctx.GlobalBool(TestNetFlag.Name) { - config.HomesteadBlock = params.TestNetHomesteadBlock - } else { - config.HomesteadBlock = params.MainNetHomesteadBlock + // Check whether we are allowed to set default config params or not: + // - If no genesis is set, we're running either mainnet or testnet (private nets use `geth init`) + // - If a genesis is already set, ensure we have a configuration for it (mainnet or testnet) + defaults := genesis == nil || + (genesis.Hash() == params.MainNetGenesisHash && !ctx.GlobalBool(TestNetFlag.Name)) || + (genesis.Hash() == params.TestNetGenesisHash && ctx.GlobalBool(TestNetFlag.Name)) + + // Set any missing chainConfig fields due to them being unset or system upgrade + if defaults { + if config.HomesteadBlock == nil { + if ctx.GlobalBool(TestNetFlag.Name) { + config.HomesteadBlock = params.TestNetHomesteadBlock + } else { + config.HomesteadBlock = params.MainNetHomesteadBlock + } } - } - if config.DAOForkBlock == nil { - if ctx.GlobalBool(TestNetFlag.Name) { - config.DAOForkBlock = params.TestNetDAOForkBlock - } else { - config.DAOForkBlock = params.MainNetDAOForkBlock + if config.DAOForkBlock == nil { + if ctx.GlobalBool(TestNetFlag.Name) { + config.DAOForkBlock = params.TestNetDAOForkBlock + } else { + config.DAOForkBlock = params.MainNetDAOForkBlock + } + config.DAOForkSupport = true } - config.DAOForkSupport = true - } - if config.HomesteadGasRepriceBlock == nil { - if ctx.GlobalBool(TestNetFlag.Name) { - config.HomesteadGasRepriceBlock = params.TestNetHomesteadGasRepriceBlock - } else { - config.HomesteadGasRepriceBlock = params.MainNetHomesteadGasRepriceBlock + if config.HomesteadGasRepriceBlock == nil { + if ctx.GlobalBool(TestNetFlag.Name) { + config.HomesteadGasRepriceBlock = params.TestNetHomesteadGasRepriceBlock + } else { + config.HomesteadGasRepriceBlock = params.MainNetHomesteadGasRepriceBlock + } + } + if config.HomesteadGasRepriceHash == (common.Hash{}) { + if ctx.GlobalBool(TestNetFlag.Name) { + config.HomesteadGasRepriceHash = params.TestNetHomesteadGasRepriceHash + } else { + config.HomesteadGasRepriceHash = params.MainNetHomesteadGasRepriceHash + } } } // Force override any existing configs if explicitly requested |