aboutsummaryrefslogtreecommitdiffstats
path: root/cmd/utils
diff options
context:
space:
mode:
authorPéter Szilágyi <peterke@gmail.com>2018-08-15 16:01:49 +0800
committerPéter Szilágyi <peterke@gmail.com>2018-08-15 16:41:23 +0800
commit2a17fe25612b57d943862459dba88666685ffd69 (patch)
tree9c1e6b256256ae5b1e23d2fe634b8445cc65fb08 /cmd/utils
parent212bba47ff13812ddabb642da463e58cda4ff20f (diff)
downloaddexon-2a17fe25612b57d943862459dba88666685ffd69.tar.gz
dexon-2a17fe25612b57d943862459dba88666685ffd69.tar.zst
dexon-2a17fe25612b57d943862459dba88666685ffd69.zip
cmd: polish miner flags, deprecate olds, add upgrade path
Diffstat (limited to 'cmd/utils')
-rw-r--r--cmd/utils/flags.go104
1 files changed, 67 insertions, 37 deletions
diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go
index d6142f246..e3a8cc2ea 100644
--- a/cmd/utils/flags.go
+++ b/cmd/utils/flags.go
@@ -157,14 +157,6 @@ var (
Usage: "Document Root for HTTPClient file scheme",
Value: DirectoryString{homeDir()},
}
- FastSyncFlag = cli.BoolFlag{
- Name: "fast",
- Usage: "Enable fast syncing through state downloads (replaced by --syncmode)",
- }
- LightModeFlag = cli.BoolFlag{
- Name: "light",
- Usage: "Enable light client mode (replaced by --syncmode)",
- }
defaultSyncMode = eth.DefaultConfig.SyncMode
SyncModeFlag = TextMarshalerFlag{
Name: "syncmode",
@@ -321,29 +313,53 @@ var (
Usage: "Number of CPU threads to use for mining",
Value: 0,
}
+ MinerLegacyThreadsFlag = cli.IntFlag{
+ Name: "minerthreads",
+ Usage: "Number of CPU threads to use for mining (deprecated, use --miner.threads)",
+ Value: 0,
+ }
MinerNotifyFlag = cli.StringFlag{
Name: "miner.notify",
Usage: "Comma separated HTTP URL list to notify of new work packages",
}
- TargetGasLimitFlag = cli.Uint64Flag{
+ MinerGasTargetFlag = cli.Uint64Flag{
+ Name: "miner.gastarget",
+ Usage: "Target gas floor for mined blocks",
+ Value: params.GenesisGasLimit,
+ }
+ MinerLegacyGasTargetFlag = cli.Uint64Flag{
Name: "targetgaslimit",
- Usage: "Target gas limit sets the artificial target gas floor for the blocks to mine",
+ Usage: "Target gas floor for mined blocks (deprecated, use --miner.gastarget)",
Value: params.GenesisGasLimit,
}
- EtherbaseFlag = cli.StringFlag{
- Name: "etherbase",
- Usage: "Public address for block mining rewards (default = first account created)",
- Value: "0",
+ MinerGasPriceFlag = BigFlag{
+ Name: "miner.gasprice",
+ Usage: "Minimal gas price for mining a transactions",
+ Value: eth.DefaultConfig.GasPrice,
}
- GasPriceFlag = BigFlag{
+ MinerLegacyGasPriceFlag = BigFlag{
Name: "gasprice",
- Usage: "Minimal gas price to accept for mining a transactions",
+ Usage: "Minimal gas price for mining a transactions (deprecated, use --miner.gasprice)",
Value: eth.DefaultConfig.GasPrice,
}
- ExtraDataFlag = cli.StringFlag{
- Name: "extradata",
+ MinerEtherbaseFlag = cli.StringFlag{
+ Name: "miner.etherbase",
+ Usage: "Public address for block mining rewards (default = first account)",
+ Value: "0",
+ }
+ MinerLegacyEtherbaseFlag = cli.StringFlag{
+ Name: "etherbase",
+ Usage: "Public address for block mining rewards (default = first account, deprecated, use --miner.etherbase)",
+ Value: "0",
+ }
+ MinerExtraDataFlag = cli.StringFlag{
+ Name: "miner.extradata",
Usage: "Block extra data set by the miner (default = client version)",
}
+ MinerLegacyExtraDataFlag = cli.StringFlag{
+ Name: "extradata",
+ Usage: "Block extra data set by the miner (default = client version, deprecated, use --miner.extradata)",
+ }
// Account settings
UnlockedAccountFlag = cli.StringFlag{
Name: "unlock",
@@ -813,10 +829,19 @@ func MakeAddress(ks *keystore.KeyStore, account string) (accounts.Account, error
// setEtherbase retrieves the etherbase either from the directly specified
// command line flags or from the keystore if CLI indexed.
func setEtherbase(ctx *cli.Context, ks *keystore.KeyStore, cfg *eth.Config) {
- if ctx.GlobalIsSet(EtherbaseFlag.Name) {
- account, err := MakeAddress(ks, ctx.GlobalString(EtherbaseFlag.Name))
+ // Extract the current etherbase, new flag overriding legacy one
+ var etherbase string
+ if ctx.GlobalIsSet(MinerLegacyEtherbaseFlag.Name) {
+ etherbase = ctx.GlobalString(MinerLegacyEtherbaseFlag.Name)
+ }
+ if ctx.GlobalIsSet(MinerEtherbaseFlag.Name) {
+ etherbase = ctx.GlobalString(MinerEtherbaseFlag.Name)
+ }
+ // Convert the etherbase into an address and configure it
+ if etherbase != "" {
+ account, err := MakeAddress(ks, etherbase)
if err != nil {
- Fatalf("Option %q: %v", EtherbaseFlag.Name, err)
+ Fatalf("Invalid miner etherbase: %v", err)
}
cfg.Etherbase = account.Address
}
@@ -847,7 +872,7 @@ func SetP2PConfig(ctx *cli.Context, cfg *p2p.Config) {
setBootstrapNodes(ctx, cfg)
setBootstrapNodesV5(ctx, cfg)
- lightClient := ctx.GlobalBool(LightModeFlag.Name) || ctx.GlobalString(SyncModeFlag.Name) == "light"
+ lightClient := ctx.GlobalString(SyncModeFlag.Name) == "light"
lightServer := ctx.GlobalInt(LightServFlag.Name) != 0
lightPeers := ctx.GlobalInt(LightPeersFlag.Name)
@@ -1052,8 +1077,6 @@ func SetShhConfig(ctx *cli.Context, stack *node.Node, cfg *whisper.Config) {
func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *eth.Config) {
// Avoid conflicting network flags
checkExclusive(ctx, DeveloperFlag, TestnetFlag, RinkebyFlag)
- checkExclusive(ctx, FastSyncFlag, LightModeFlag, SyncModeFlag)
- checkExclusive(ctx, LightServFlag, LightModeFlag)
checkExclusive(ctx, LightServFlag, SyncModeFlag, "light")
ks := stack.AccountManager().Backends(keystore.KeyStoreType)[0].(*keystore.KeyStore)
@@ -1062,13 +1085,8 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *eth.Config) {
setTxPool(ctx, &cfg.TxPool)
setEthash(ctx, cfg)
- switch {
- case ctx.GlobalIsSet(SyncModeFlag.Name):
+ if ctx.GlobalIsSet(SyncModeFlag.Name) {
cfg.SyncMode = *GlobalTextMarshaler(ctx, SyncModeFlag.Name).(*downloader.SyncMode)
- case ctx.GlobalBool(FastSyncFlag.Name):
- cfg.SyncMode = downloader.FastSync
- case ctx.GlobalBool(LightModeFlag.Name):
- cfg.SyncMode = downloader.LightSync
}
if ctx.GlobalIsSet(LightServFlag.Name) {
cfg.LightServ = ctx.GlobalInt(LightServFlag.Name)
@@ -1093,6 +1111,9 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *eth.Config) {
if ctx.GlobalIsSet(CacheFlag.Name) || ctx.GlobalIsSet(CacheGCFlag.Name) {
cfg.TrieCache = ctx.GlobalInt(CacheFlag.Name) * ctx.GlobalInt(CacheGCFlag.Name) / 100
}
+ if ctx.GlobalIsSet(MinerLegacyThreadsFlag.Name) {
+ cfg.MinerThreads = ctx.GlobalInt(MinerLegacyThreadsFlag.Name)
+ }
if ctx.GlobalIsSet(MinerThreadsFlag.Name) {
cfg.MinerThreads = ctx.GlobalInt(MinerThreadsFlag.Name)
}
@@ -1102,11 +1123,17 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *eth.Config) {
if ctx.GlobalIsSet(DocRootFlag.Name) {
cfg.DocRoot = ctx.GlobalString(DocRootFlag.Name)
}
- if ctx.GlobalIsSet(ExtraDataFlag.Name) {
- cfg.ExtraData = []byte(ctx.GlobalString(ExtraDataFlag.Name))
+ if ctx.GlobalIsSet(MinerLegacyExtraDataFlag.Name) {
+ cfg.ExtraData = []byte(ctx.GlobalString(MinerLegacyExtraDataFlag.Name))
}
- if ctx.GlobalIsSet(GasPriceFlag.Name) {
- cfg.GasPrice = GlobalBig(ctx, GasPriceFlag.Name)
+ if ctx.GlobalIsSet(MinerExtraDataFlag.Name) {
+ cfg.ExtraData = []byte(ctx.GlobalString(MinerExtraDataFlag.Name))
+ }
+ if ctx.GlobalIsSet(MinerLegacyGasPriceFlag.Name) {
+ cfg.GasPrice = GlobalBig(ctx, MinerLegacyGasPriceFlag.Name)
+ }
+ if ctx.GlobalIsSet(MinerGasPriceFlag.Name) {
+ cfg.GasPrice = GlobalBig(ctx, MinerGasPriceFlag.Name)
}
if ctx.GlobalIsSet(VMEnableDebugFlag.Name) {
// TODO(fjl): force-enable this in --dev mode
@@ -1148,7 +1175,7 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *eth.Config) {
log.Info("Using developer account", "address", developer.Address)
cfg.Genesis = core.DeveloperGenesisBlock(uint64(ctx.GlobalInt(DeveloperPeriodFlag.Name)), developer.Address)
- if !ctx.GlobalIsSet(GasPriceFlag.Name) {
+ if !ctx.GlobalIsSet(MinerGasPriceFlag.Name) && !ctx.GlobalIsSet(MinerLegacyGasPriceFlag.Name) {
cfg.GasPrice = big.NewInt(1)
}
}
@@ -1223,7 +1250,10 @@ func RegisterEthStatsService(stack *node.Node, url string) {
// SetupNetwork configures the system for either the main net or some test network.
func SetupNetwork(ctx *cli.Context) {
// TODO(fjl): move target gas limit into config
- params.TargetGasLimit = ctx.GlobalUint64(TargetGasLimitFlag.Name)
+ params.TargetGasLimit = ctx.GlobalUint64(MinerLegacyGasTargetFlag.Name)
+ if ctx.GlobalIsSet(MinerGasTargetFlag.Name) {
+ params.TargetGasLimit = ctx.GlobalUint64(MinerGasTargetFlag.Name)
+ }
}
func SetupMetrics(ctx *cli.Context) {
@@ -1254,7 +1284,7 @@ func MakeChainDatabase(ctx *cli.Context, stack *node.Node) ethdb.Database {
handles = makeDatabaseHandles()
)
name := "chaindata"
- if ctx.GlobalBool(LightModeFlag.Name) {
+ if ctx.GlobalString(SyncModeFlag.Name) == "light" {
name = "lightchaindata"
}
chainDb, err := stack.OpenDatabase(name, cache, handles)