aboutsummaryrefslogtreecommitdiffstats
path: root/cmd/utils
diff options
context:
space:
mode:
authorJeffrey Wilcke <jeffrey@ethereum.org>2016-10-20 19:36:29 +0800
committerJeffrey Wilcke <jeffrey@ethereum.org>2016-11-13 17:44:04 +0800
commit445feaeef58bd89a113743dccf6fd5df55cde6fa (patch)
tree6c692a0989800f005a94bde2d372fcbe1f7630a1 /cmd/utils
parent932d973e36ff0d41a6005b93d2d4ff1b4430fb04 (diff)
downloadgo-tangerine-445feaeef58bd89a113743dccf6fd5df55cde6fa.tar
go-tangerine-445feaeef58bd89a113743dccf6fd5df55cde6fa.tar.gz
go-tangerine-445feaeef58bd89a113743dccf6fd5df55cde6fa.tar.bz2
go-tangerine-445feaeef58bd89a113743dccf6fd5df55cde6fa.tar.lz
go-tangerine-445feaeef58bd89a113743dccf6fd5df55cde6fa.tar.xz
go-tangerine-445feaeef58bd89a113743dccf6fd5df55cde6fa.tar.zst
go-tangerine-445feaeef58bd89a113743dccf6fd5df55cde6fa.zip
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 <jeffrey@ethereum.org>
Diffstat (limited to 'cmd/utils')
-rw-r--r--cmd/utils/flags.go31
1 files changed, 16 insertions, 15 deletions
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