diff options
Diffstat (limited to 'cmd/geth/main.go')
-rw-r--r-- | cmd/geth/main.go | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/cmd/geth/main.go b/cmd/geth/main.go index aacb588fe..b54d85c22 100644 --- a/cmd/geth/main.go +++ b/cmd/geth/main.go @@ -58,6 +58,11 @@ var ( gitCommit string // set via linker flagg nodeNameVersion string app *cli.App + + ExtraDataFlag = cli.StringFlag{ + Name: "extradata", + Usage: "Extra data for the miner", + } ) func init() { @@ -308,6 +313,7 @@ JavaScript API. See https://github.com/ethereum/go-ethereum/wiki/Javascipt-Conso utils.IPCPathFlag, utils.ExecFlag, utils.WhisperEnabledFlag, + utils.DevModeFlag, utils.VMDebugFlag, utils.VMForceJitFlag, utils.VMJitCacheFlag, @@ -330,6 +336,7 @@ JavaScript API. See https://github.com/ethereum/go-ethereum/wiki/Javascipt-Conso utils.GpobaseStepDownFlag, utils.GpobaseStepUpFlag, utils.GpobaseCorrectionFactorFlag, + ExtraDataFlag, } app.Before = func(ctx *cli.Context) error { utils.SetupLogger(ctx) @@ -353,6 +360,14 @@ func main() { } } +// makeExtra resolves extradata for the miner from a flag or returns a default. +func makeExtra(ctx *cli.Context) []byte { + if ctx.GlobalIsSet(ExtraDataFlag.Name) { + return []byte(ctx.GlobalString(ExtraDataFlag.Name)) + } + return makeDefaultExtra() +} + func makeDefaultExtra() []byte { var clientInfo = struct { Version uint @@ -381,7 +396,7 @@ func run(ctx *cli.Context) { } cfg := utils.MakeEthConfig(ClientIdentifier, nodeNameVersion, ctx) - cfg.ExtraData = makeDefaultExtra() + cfg.ExtraData = makeExtra(ctx) ethereum, err := eth.New(cfg) if err != nil { @@ -429,6 +444,8 @@ func console(ctx *cli.Context) { utils.CheckLegalese(ctx.GlobalString(utils.DataDirFlag.Name)) cfg := utils.MakeEthConfig(ClientIdentifier, nodeNameVersion, ctx) + cfg.ExtraData = makeExtra(ctx) + ethereum, err := eth.New(cfg) if err != nil { utils.Fatalf("%v", err) @@ -527,17 +544,16 @@ func blockRecovery(ctx *cli.Context) { var block *types.Block if arg[0] == '#' { - block = core.GetBlockByNumber(blockDb, common.String2Big(arg[1:]).Uint64()) + block = core.GetBlock(blockDb, core.GetCanonicalHash(blockDb, common.String2Big(arg[1:]).Uint64())) } else { - block = core.GetBlockByHash(blockDb, common.HexToHash(arg)) + block = core.GetBlock(blockDb, common.HexToHash(arg)) } if block == nil { glog.Fatalln("block not found. Recovery failed") } - err = core.WriteHead(blockDb, block) - if err != nil { + if err = core.WriteHeadBlockHash(blockDb, block.Hash()); err != nil { glog.Fatalln("block write err", err) } glog.Infof("Recovery succesful. New HEAD %x\n", block.Hash()) |