diff --git a/cmd/geth/main.go b/cmd/geth/main.go
index 6ab4ed45bff3721b0f489629ed4d35ae0664af22..c33e04f069320128eb8a0c359fe5d808c699185d 100644
--- a/cmd/geth/main.go
+++ b/cmd/geth/main.go
@@ -205,6 +205,7 @@ JavaScript API. See https://github.com/ethereum/go-ethereum/wiki/Javascipt-Conso
utils.NetworkIdFlag,
utils.RPCCORSDomainFlag,
utils.MetricsEnabledFlag,
+ utils.FakePoWFlag,
utils.SolcPathFlag,
utils.GpoMinGasPriceFlag,
utils.GpoMaxGasPriceFlag,
diff --git a/cmd/geth/usage.go b/cmd/geth/usage.go
index 278a5598094f0c456673e0b7a402dc2fb99522ba..90019d7b976a8031a97c1d1dd35df266b69455e4 100644
--- a/cmd/geth/usage.go
+++ b/cmd/geth/usage.go
@@ -150,8 +150,11 @@ var AppHelpFlagGroups = []flagGroup{
},
},
{
- Name: "LOGGING AND DEBUGGING",
- Flags: append([]cli.Flag{utils.MetricsEnabledFlag}, debug.Flags...),
+ Name: "LOGGING AND DEBUGGING",
+ Flags: append([]cli.Flag{
+ utils.MetricsEnabledFlag,
+ utils.FakePoWFlag,
+ }, debug.Flags...),
},
{
Name: "EXPERIMENTAL",
diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go
index 52060c79516ac322d39365c9681ab94a8083bb5b..8d55ac8b943c662778e9a25876ec916dfd836d37 100644
--- a/cmd/utils/flags.go
+++ b/cmd/utils/flags.go
@@ -47,6 +47,7 @@ import (
"github.com/ethereum/go-ethereum/p2p/discover"
"github.com/ethereum/go-ethereum/p2p/nat"
"github.com/ethereum/go-ethereum/params"
+ "github.com/ethereum/go-ethereum/pow"
"github.com/ethereum/go-ethereum/rpc"
"github.com/ethereum/go-ethereum/whisper"
)
@@ -228,6 +229,10 @@ var (
Name: metrics.MetricsEnabledFlag,
Usage: "Enable metrics collection and reporting",
}
+ FakePoWFlag = cli.BoolFlag{
+ Name: "fakepow",
+ Usage: "Disables proof-of-work verification",
+ }
// RPC settings
RPCEnabledFlag = cli.BoolFlag{
@@ -842,11 +847,13 @@ func MakeChain(ctx *cli.Context) (chain *core.BlockChain, chainDb ethdb.Database
glog.Fatalln(err)
}
}
-
chainConfig := MustMakeChainConfigFromDb(ctx, chainDb)
- var eventMux event.TypeMux
- chain, err = core.NewBlockChain(chainDb, chainConfig, ethash.New(), &eventMux)
+ pow := pow.PoW(core.FakePow{})
+ if !ctx.GlobalBool(FakePoWFlag.Name) {
+ pow = ethash.New()
+ }
+ chain, err = core.NewBlockChain(chainDb, chainConfig, pow, new(event.TypeMux))
if err != nil {
Fatalf("Could not start chainmanager: %v", err)
}