aboutsummaryrefslogtreecommitdiffstats
path: root/cmd/utils
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/utils')
-rw-r--r--cmd/utils/flags.go22
1 files changed, 17 insertions, 5 deletions
diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go
index 52060c795..43dbc37f7 100644
--- a/cmd/utils/flags.go
+++ b/cmd/utils/flags.go
@@ -47,6 +47,8 @@ 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/release"
"github.com/ethereum/go-ethereum/rpc"
"github.com/ethereum/go-ethereum/whisper"
)
@@ -228,6 +230,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{
@@ -636,7 +642,7 @@ func MakePasswordList(ctx *cli.Context) []string {
// MakeSystemNode sets up a local node, configures the services to launch and
// assembles the P2P protocol stack.
-func MakeSystemNode(name, version string, extra []byte, ctx *cli.Context) *node.Node {
+func MakeSystemNode(name, version string, relconf release.Config, extra []byte, ctx *cli.Context) *node.Node {
// Avoid conflicting network flags
networks, netFlags := 0, []cli.BoolFlag{DevModeFlag, TestNetFlag, OlympicFlag}
for _, flag := range netFlags {
@@ -767,7 +773,11 @@ func MakeSystemNode(name, version string, extra []byte, ctx *cli.Context) *node.
Fatalf("Failed to register the Whisper service: %v", err)
}
}
-
+ if err := stack.Register(func(ctx *node.ServiceContext) (node.Service, error) {
+ return release.NewReleaseService(ctx, relconf)
+ }); err != nil {
+ Fatalf("Failed to register the Geth release oracle service: %v", err)
+ }
return stack
}
@@ -842,11 +852,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)
}