From 445feaeef58bd89a113743dccf6fd5df55cde6fa Mon Sep 17 00:00:00 2001 From: Jeffrey Wilcke Date: Thu, 20 Oct 2016 13:36:29 +0200 Subject: core, core/state, trie: EIP158, reprice & skip empty account write This commit implements EIP158 part 1, 2, 3 & 4 1. If an account is empty it's no longer written to the trie. An empty account is defined as (balance=0, nonce=0, storage=0, code=0). 2. Delete an empty account if it's touched 3. An empty account is redefined as either non-existent or empty. 4. Zero value calls and zero value suicides no longer consume the 25k reation costs. params: moved core/config to params Signed-off-by: Jeffrey Wilcke --- cmd/utils/flags.go | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) (limited to 'cmd/utils/flags.go') diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go index 626c2615d..641ff6d40 100644 --- a/cmd/utils/flags.go +++ b/cmd/utils/flags.go @@ -801,7 +801,7 @@ func SetupNetwork(ctx *cli.Context) { } // MakeChainConfig reads the chain configuration from the database in ctx.Datadir. -func MakeChainConfig(ctx *cli.Context, stack *node.Node) *core.ChainConfig { +func MakeChainConfig(ctx *cli.Context, stack *node.Node) *params.ChainConfig { db := MakeChainDatabase(ctx, stack) defer db.Close() @@ -809,9 +809,9 @@ func MakeChainConfig(ctx *cli.Context, stack *node.Node) *core.ChainConfig { } // MakeChainConfigFromDb reads the chain configuration from the given database. -func MakeChainConfigFromDb(ctx *cli.Context, db ethdb.Database) *core.ChainConfig { +func MakeChainConfigFromDb(ctx *cli.Context, db ethdb.Database) *params.ChainConfig { // If the chain is already initialized, use any existing chain configs - config := new(core.ChainConfig) + config := new(params.ChainConfig) genesis := core.GetBlock(db, core.GetCanonicalHash(db, 0), 0) if genesis != nil { @@ -849,19 +849,20 @@ func MakeChainConfigFromDb(ctx *cli.Context, db ethdb.Database) *core.ChainConfi } config.DAOForkSupport = true } - if config.HomesteadGasRepriceBlock == nil { - if ctx.GlobalBool(TestNetFlag.Name) { - config.HomesteadGasRepriceBlock = params.TestNetHomesteadGasRepriceBlock - } else { - config.HomesteadGasRepriceBlock = params.MainNetHomesteadGasRepriceBlock - } + config.DAOForkSupport = true + } + if config.EIP150Block == nil { + if ctx.GlobalBool(TestNetFlag.Name) { + config.EIP150Block = params.TestNetHomesteadGasRepriceBlock + } else { + config.EIP150Block = params.MainNetHomesteadGasRepriceBlock } - if config.HomesteadGasRepriceHash == (common.Hash{}) { - if ctx.GlobalBool(TestNetFlag.Name) { - config.HomesteadGasRepriceHash = params.TestNetHomesteadGasRepriceHash - } else { - config.HomesteadGasRepriceHash = params.MainNetHomesteadGasRepriceHash - } + } + if config.EIP150Hash == (common.Hash{}) { + if ctx.GlobalBool(TestNetFlag.Name) { + config.EIP150Hash = params.TestNetHomesteadGasRepriceHash + } else { + config.EIP150Hash = params.MainNetHomesteadGasRepriceHash } } // Force override any existing configs if explicitly requested -- cgit v1.2.3