Skip to content

Commit b06f44e

Browse files
committed
cmd: add a --fakepow flag to help benchmarking database changes
1 parent 18580e1 commit b06f44e

File tree

3 files changed

+16
-5
lines changed

3 files changed

+16
-5
lines changed

cmd/geth/main.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,7 @@ JavaScript API. See https://github.com/ethereum/go-ethereum/wiki/Javascipt-Conso
205205
utils.NetworkIdFlag,
206206
utils.RPCCORSDomainFlag,
207207
utils.MetricsEnabledFlag,
208+
utils.FakePoWFlag,
208209
utils.SolcPathFlag,
209210
utils.GpoMinGasPriceFlag,
210211
utils.GpoMaxGasPriceFlag,

cmd/geth/usage.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,8 +150,11 @@ var AppHelpFlagGroups = []flagGroup{
150150
},
151151
},
152152
{
153-
Name: "LOGGING AND DEBUGGING",
154-
Flags: append([]cli.Flag{utils.MetricsEnabledFlag}, debug.Flags...),
153+
Name: "LOGGING AND DEBUGGING",
154+
Flags: append([]cli.Flag{
155+
utils.MetricsEnabledFlag,
156+
utils.FakePoWFlag,
157+
}, debug.Flags...),
155158
},
156159
{
157160
Name: "EXPERIMENTAL",

cmd/utils/flags.go

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ import (
4747
"github.com/ethereum/go-ethereum/p2p/discover"
4848
"github.com/ethereum/go-ethereum/p2p/nat"
4949
"github.com/ethereum/go-ethereum/params"
50+
"github.com/ethereum/go-ethereum/pow"
5051
"github.com/ethereum/go-ethereum/rpc"
5152
"github.com/ethereum/go-ethereum/whisper"
5253
)
@@ -228,6 +229,10 @@ var (
228229
Name: metrics.MetricsEnabledFlag,
229230
Usage: "Enable metrics collection and reporting",
230231
}
232+
FakePoWFlag = cli.BoolFlag{
233+
Name: "fakepow",
234+
Usage: "Disables proof-of-work verification",
235+
}
231236

232237
// RPC settings
233238
RPCEnabledFlag = cli.BoolFlag{
@@ -842,11 +847,13 @@ func MakeChain(ctx *cli.Context) (chain *core.BlockChain, chainDb ethdb.Database
842847
glog.Fatalln(err)
843848
}
844849
}
845-
846850
chainConfig := MustMakeChainConfigFromDb(ctx, chainDb)
847851

848-
var eventMux event.TypeMux
849-
chain, err = core.NewBlockChain(chainDb, chainConfig, ethash.New(), &eventMux)
852+
pow := pow.PoW(core.FakePow{})
853+
if !ctx.GlobalBool(FakePoWFlag.Name) {
854+
pow = ethash.New()
855+
}
856+
chain, err = core.NewBlockChain(chainDb, chainConfig, pow, new(event.TypeMux))
850857
if err != nil {
851858
Fatalf("Could not start chainmanager: %v", err)
852859
}

0 commit comments

Comments
 (0)