Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
Geth-Modification
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张蕾
Geth-Modification
Commits
e598ae5c
Unverified
Commit
e598ae5c
authored
Aug 15, 2018
by
Péter Szilágyi
Committed by
GitHub
Aug 15, 2018
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #17402 from karalabe/deprecate-flags
cmd: polish miner flags, deprecate olds, add upgrade path
parents
212bba47
2a17fe25
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
102 additions
and
60 deletions
+102
-60
chaincmd.go
cmd/geth/chaincmd.go
+5
-7
main.go
cmd/geth/main.go
+20
-9
usage.go
cmd/geth/usage.go
+9
-6
module_node.go
cmd/puppeth/module_node.go
+1
-1
flags.go
cmd/utils/flags.go
+67
-37
No files found.
cmd/geth/chaincmd.go
View file @
e598ae5c
...
...
@@ -48,7 +48,6 @@ var (
ArgsUsage
:
"<genesisPath>"
,
Flags
:
[]
cli
.
Flag
{
utils
.
DataDirFlag
,
utils
.
LightModeFlag
,
},
Category
:
"BLOCKCHAIN COMMANDS"
,
Description
:
`
...
...
@@ -66,7 +65,7 @@ It expects the genesis file as argument.`,
Flags
:
[]
cli
.
Flag
{
utils
.
DataDirFlag
,
utils
.
CacheFlag
,
utils
.
Light
ModeFlag
,
utils
.
Sync
ModeFlag
,
utils
.
GCModeFlag
,
utils
.
CacheDatabaseFlag
,
utils
.
CacheGCFlag
,
...
...
@@ -87,7 +86,7 @@ processing will proceed even if an individual RLP-file import failure occurs.`,
Flags
:
[]
cli
.
Flag
{
utils
.
DataDirFlag
,
utils
.
CacheFlag
,
utils
.
Light
ModeFlag
,
utils
.
Sync
ModeFlag
,
},
Category
:
"BLOCKCHAIN COMMANDS"
,
Description
:
`
...
...
@@ -105,7 +104,7 @@ be gzipped.`,
Flags
:
[]
cli
.
Flag
{
utils
.
DataDirFlag
,
utils
.
CacheFlag
,
utils
.
Light
ModeFlag
,
utils
.
Sync
ModeFlag
,
},
Category
:
"BLOCKCHAIN COMMANDS"
,
Description
:
`
...
...
@@ -119,7 +118,7 @@ be gzipped.`,
Flags
:
[]
cli
.
Flag
{
utils
.
DataDirFlag
,
utils
.
CacheFlag
,
utils
.
Light
ModeFlag
,
utils
.
Sync
ModeFlag
,
},
Category
:
"BLOCKCHAIN COMMANDS"
,
Description
:
`
...
...
@@ -149,7 +148,6 @@ The first argument must be the directory containing the blockchain to download f
ArgsUsage
:
" "
,
Flags
:
[]
cli
.
Flag
{
utils
.
DataDirFlag
,
utils
.
LightModeFlag
,
},
Category
:
"BLOCKCHAIN COMMANDS"
,
Description
:
`
...
...
@@ -163,7 +161,7 @@ Remove blockchain and state databases`,
Flags
:
[]
cli
.
Flag
{
utils
.
DataDirFlag
,
utils
.
CacheFlag
,
utils
.
Light
ModeFlag
,
utils
.
Sync
ModeFlag
,
},
Category
:
"BLOCKCHAIN COMMANDS"
,
Description
:
`
...
...
cmd/geth/main.go
View file @
e598ae5c
...
...
@@ -82,8 +82,6 @@ var (
utils
.
TxPoolAccountQueueFlag
,
utils
.
TxPoolGlobalQueueFlag
,
utils
.
TxPoolLifetimeFlag
,
utils
.
FastSyncFlag
,
utils
.
LightModeFlag
,
utils
.
SyncModeFlag
,
utils
.
GCModeFlag
,
utils
.
LightServFlag
,
...
...
@@ -96,12 +94,18 @@ var (
utils
.
ListenPortFlag
,
utils
.
MaxPeersFlag
,
utils
.
MaxPendingPeersFlag
,
utils
.
EtherbaseFlag
,
utils
.
GasPriceFlag
,
utils
.
MiningEnabledFlag
,
utils
.
MinerThreadsFlag
,
utils
.
MinerLegacyThreadsFlag
,
utils
.
MinerNotifyFlag
,
utils
.
TargetGasLimitFlag
,
utils
.
MinerGasTargetFlag
,
utils
.
MinerLegacyGasTargetFlag
,
utils
.
MinerGasPriceFlag
,
utils
.
MinerLegacyGasPriceFlag
,
utils
.
MinerEtherbaseFlag
,
utils
.
MinerLegacyEtherbaseFlag
,
utils
.
MinerExtraDataFlag
,
utils
.
MinerLegacyExtraDataFlag
,
utils
.
NATFlag
,
utils
.
NoDiscoverFlag
,
utils
.
DiscoveryV5Flag
,
...
...
@@ -122,7 +126,6 @@ var (
utils
.
NoCompactionFlag
,
utils
.
GpoBlocksFlag
,
utils
.
GpoPercentileFlag
,
utils
.
ExtraDataFlag
,
configFileFlag
,
}
...
...
@@ -324,7 +327,7 @@ func startNode(ctx *cli.Context, stack *node.Node) {
// Start auxiliary services if enabled
if
ctx
.
GlobalBool
(
utils
.
MiningEnabledFlag
.
Name
)
||
ctx
.
GlobalBool
(
utils
.
DeveloperFlag
.
Name
)
{
// Mining only makes sense if a full Ethereum node is running
if
ctx
.
Global
Bool
(
utils
.
LightModeFlag
.
Name
)
||
ctx
.
Global
String
(
utils
.
SyncModeFlag
.
Name
)
==
"light"
{
if
ctx
.
GlobalString
(
utils
.
SyncModeFlag
.
Name
)
==
"light"
{
utils
.
Fatalf
(
"Light clients do not support mining"
)
}
var
ethereum
*
eth
.
Ethereum
...
...
@@ -332,7 +335,11 @@ func startNode(ctx *cli.Context, stack *node.Node) {
utils
.
Fatalf
(
"Ethereum service not running: %v"
,
err
)
}
// Use a reduced number of threads if requested
if
threads
:=
ctx
.
GlobalInt
(
utils
.
MinerThreadsFlag
.
Name
);
threads
>
0
{
threads
:=
ctx
.
GlobalInt
(
utils
.
MinerLegacyThreadsFlag
.
Name
)
if
ctx
.
GlobalIsSet
(
utils
.
MinerThreadsFlag
.
Name
)
{
threads
=
ctx
.
GlobalInt
(
utils
.
MinerThreadsFlag
.
Name
)
}
if
threads
>
0
{
type
threaded
interface
{
SetThreads
(
threads
int
)
}
...
...
@@ -341,7 +348,11 @@ func startNode(ctx *cli.Context, stack *node.Node) {
}
}
// Set the gas price to the limits from the CLI and start mining
ethereum
.
TxPool
()
.
SetGasPrice
(
utils
.
GlobalBig
(
ctx
,
utils
.
GasPriceFlag
.
Name
))
gasprice
:=
utils
.
GlobalBig
(
ctx
,
utils
.
MinerLegacyGasPriceFlag
.
Name
)
if
ctx
.
IsSet
(
utils
.
MinerGasPriceFlag
.
Name
)
{
gasprice
=
utils
.
GlobalBig
(
ctx
,
utils
.
MinerGasPriceFlag
.
Name
)
}
ethereum
.
TxPool
()
.
SetGasPrice
(
gasprice
)
if
err
:=
ethereum
.
StartMining
(
true
);
err
!=
nil
{
utils
.
Fatalf
(
"Failed to start mining: %v"
,
err
)
}
...
...
cmd/geth/usage.go
View file @
e598ae5c
...
...
@@ -186,10 +186,10 @@ var AppHelpFlagGroups = []flagGroup{
utils
.
MiningEnabledFlag
,
utils
.
MinerThreadsFlag
,
utils
.
MinerNotifyFlag
,
utils
.
Etherbas
eFlag
,
utils
.
TargetGasLimi
tFlag
,
utils
.
GasPric
eFlag
,
utils
.
ExtraDataFlag
,
utils
.
MinerGasPric
eFlag
,
utils
.
MinerGasTarge
tFlag
,
utils
.
MinerEtherbas
eFlag
,
utils
.
Miner
ExtraDataFlag
,
},
},
{
...
...
@@ -231,8 +231,11 @@ var AppHelpFlagGroups = []flagGroup{
{
Name
:
"DEPRECATED"
,
Flags
:
[]
cli
.
Flag
{
utils
.
FastSyncFlag
,
utils
.
LightModeFlag
,
utils
.
MinerLegacyThreadsFlag
,
utils
.
MinerLegacyGasTargetFlag
,
utils
.
MinerLegacyGasPriceFlag
,
utils
.
MinerLegacyEtherbaseFlag
,
utils
.
MinerLegacyExtraDataFlag
,
},
},
{
...
...
cmd/puppeth/module_node.go
View file @
e598ae5c
...
...
@@ -42,7 +42,7 @@ ADD genesis.json /genesis.json
RUN \
echo 'geth --cache 512 init /genesis.json' > geth.sh && \{{if .Unlock}}
echo 'mkdir -p /root/.ethereum/keystore/ && cp /signer.json /root/.ethereum/keystore/' >> geth.sh && \{{end}}
echo $'exec geth --networkid {{.NetworkID}} --cache 512 --port {{.Port}} --maxpeers {{.Peers}} {{.LightFlag}} --ethstats \'{{.Ethstats}}\' {{if .Bootnodes}}--bootnodes {{.Bootnodes}}{{end}} {{if .Etherbase}}--
etherbase {{.Etherbase}} --mine --minerthreads 1{{end}} {{if .Unlock}}--unlock 0 --password /signer.pass --mine{{end}} --targetgaslimit {{.GasTarget}} --
gasprice {{.GasPrice}}' >> geth.sh
echo $'exec geth --networkid {{.NetworkID}} --cache 512 --port {{.Port}} --maxpeers {{.Peers}} {{.LightFlag}} --ethstats \'{{.Ethstats}}\' {{if .Bootnodes}}--bootnodes {{.Bootnodes}}{{end}} {{if .Etherbase}}--
miner.etherbase {{.Etherbase}} --mine --miner.threads 1{{end}} {{if .Unlock}}--unlock 0 --password /signer.pass --mine{{end}} --miner.gastarget {{.GasTarget}} --miner.
gasprice {{.GasPrice}}' >> geth.sh
ENTRYPOINT ["/bin/sh", "geth.sh"]
`
...
...
cmd/utils/flags.go
View file @
e598ae5c
...
...
@@ -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
.
Strin
gFlag
{
Name
:
"
etherbas
e"
,
Usage
:
"
Public address for block mining rewards (default = first account created)
"
,
Value
:
"0"
,
MinerGasPriceFlag
=
Bi
gFlag
{
Name
:
"
miner.gaspric
e"
,
Usage
:
"
Minimal gas price for mining a transactions
"
,
Value
:
eth
.
DefaultConfig
.
GasPrice
,
}
GasPriceFlag
=
BigFlag
{
MinerLegacy
GasPriceFlag
=
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
.
Global
Bool
(
LightModeFlag
.
Name
)
||
ctx
.
Global
String
(
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
(
MinerLegacy
ExtraDataFlag
.
Name
)
{
cfg
.
ExtraData
=
[]
byte
(
ctx
.
GlobalString
(
MinerLegacy
ExtraDataFlag
.
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
(
MinerLegacy
GasPriceFlag
.
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
.
Global
Bool
(
LightModeFlag
.
Name
)
{
if
ctx
.
Global
String
(
SyncModeFlag
.
Name
)
==
"light"
{
name
=
"lightchaindata"
}
chainDb
,
err
:=
stack
.
OpenDatabase
(
name
,
cache
,
handles
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment