فهرست منبع

cmd: add a `--fakepow` flag to help benchmarking database changes

Péter Szilágyi 9 سال پیش
والد
کامیت
b06f44ecc2
3فایلهای تغییر یافته به همراه16 افزوده شده و 5 حذف شده
  1. 1 0
      cmd/geth/main.go
  2. 5 2
      cmd/geth/usage.go
  3. 10 3
      cmd/utils/flags.go

+ 1 - 0
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,

+ 5 - 2
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",

+ 10 - 3
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)
 	}