cmd: group network and db path flags together (#24698)
This PR groups all built-in network flags together and list them in the command as a whole. And all database path flags(datadir, ancient) are also grouped, since usually these two are used together.
This commit is contained in:
		
							parent
							
								
									5157d4540a
								
							
						
					
					
						commit
						344d6f95cf
					
				| @ -372,8 +372,8 @@ func (s *Suite) TestSnapTrieNodes(t *utesting.T) { | ||||
| 		{ | ||||
| 			root: s.chain.RootAt(999), | ||||
| 			paths: []snap.TrieNodePathSet{ | ||||
| 				snap.TrieNodePathSet{}, // zero-length pathset should 'abort' and kick us off
 | ||||
| 				snap.TrieNodePathSet{[]byte{0}}, | ||||
| 				{}, // zero-length pathset should 'abort' and kick us off
 | ||||
| 				{[]byte{0}}, | ||||
| 			}, | ||||
| 			nBytes:    5000, | ||||
| 			expHashes: []common.Hash{}, | ||||
| @ -382,8 +382,8 @@ func (s *Suite) TestSnapTrieNodes(t *utesting.T) { | ||||
| 		{ | ||||
| 			root: s.chain.RootAt(999), | ||||
| 			paths: []snap.TrieNodePathSet{ | ||||
| 				snap.TrieNodePathSet{[]byte{0}}, | ||||
| 				snap.TrieNodePathSet{[]byte{1}, []byte{0}}, | ||||
| 				{[]byte{0}}, | ||||
| 				{[]byte{1}, []byte{0}}, | ||||
| 			}, | ||||
| 			nBytes: 5000, | ||||
| 			//0x6b3724a41b8c38b46d4d02fba2bb2074c47a507eb16a9a4b978f91d32e406faf
 | ||||
| @ -392,7 +392,7 @@ func (s *Suite) TestSnapTrieNodes(t *utesting.T) { | ||||
| 		{ // nonsensically long path
 | ||||
| 			root: s.chain.RootAt(999), | ||||
| 			paths: []snap.TrieNodePathSet{ | ||||
| 				snap.TrieNodePathSet{[]byte{0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, | ||||
| 				{[]byte{0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, | ||||
| 					0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8}}, | ||||
| 			}, | ||||
| 			nBytes:    5000, | ||||
| @ -401,8 +401,8 @@ func (s *Suite) TestSnapTrieNodes(t *utesting.T) { | ||||
| 		{ | ||||
| 			root: s.chain.RootAt(0), | ||||
| 			paths: []snap.TrieNodePathSet{ | ||||
| 				snap.TrieNodePathSet{[]byte{0}}, | ||||
| 				snap.TrieNodePathSet{[]byte{1}, []byte{0}}, | ||||
| 				{[]byte{0}}, | ||||
| 				{[]byte{1}, []byte{0}}, | ||||
| 			}, | ||||
| 			nBytes:    5000, | ||||
| 			expHashes: []common.Hash{}, | ||||
|  | ||||
| @ -47,10 +47,8 @@ var ( | ||||
| 		Name:      "init", | ||||
| 		Usage:     "Bootstrap and initialize a new genesis block", | ||||
| 		ArgsUsage: "<genesisPath>", | ||||
| 		Flags: []cli.Flag{ | ||||
| 			utils.DataDirFlag, | ||||
| 		}, | ||||
| 		Category: "BLOCKCHAIN COMMANDS", | ||||
| 		Flags:     utils.DatabasePathFlags, | ||||
| 		Category:  "BLOCKCHAIN COMMANDS", | ||||
| 		Description: ` | ||||
| The init command initializes a new genesis block and definition for the network. | ||||
| This is a destructive action and changes the network in which you will be | ||||
| @ -63,14 +61,8 @@ It expects the genesis file as argument.`, | ||||
| 		Name:      "dumpgenesis", | ||||
| 		Usage:     "Dumps genesis block JSON configuration to stdout", | ||||
| 		ArgsUsage: "", | ||||
| 		Flags: []cli.Flag{ | ||||
| 			utils.MainnetFlag, | ||||
| 			utils.RopstenFlag, | ||||
| 			utils.SepoliaFlag, | ||||
| 			utils.RinkebyFlag, | ||||
| 			utils.GoerliFlag, | ||||
| 		}, | ||||
| 		Category: "BLOCKCHAIN COMMANDS", | ||||
| 		Flags:     utils.NetworkFlags, | ||||
| 		Category:  "BLOCKCHAIN COMMANDS", | ||||
| 		Description: ` | ||||
| The dumpgenesis command dumps the genesis block configuration in JSON format to stdout.`, | ||||
| 	} | ||||
| @ -79,8 +71,7 @@ The dumpgenesis command dumps the genesis block configuration in JSON format to | ||||
| 		Name:      "import", | ||||
| 		Usage:     "Import a blockchain file", | ||||
| 		ArgsUsage: "<filename> (<filename 2> ... <filename N>) ", | ||||
| 		Flags: []cli.Flag{ | ||||
| 			utils.DataDirFlag, | ||||
| 		Flags: append([]cli.Flag{ | ||||
| 			utils.CacheFlag, | ||||
| 			utils.SyncModeFlag, | ||||
| 			utils.GCModeFlag, | ||||
| @ -102,7 +93,7 @@ The dumpgenesis command dumps the genesis block configuration in JSON format to | ||||
| 			utils.MetricsInfluxDBBucketFlag, | ||||
| 			utils.MetricsInfluxDBOrganizationFlag, | ||||
| 			utils.TxLookupLimitFlag, | ||||
| 		}, | ||||
| 		}, utils.DatabasePathFlags...), | ||||
| 		Category: "BLOCKCHAIN COMMANDS", | ||||
| 		Description: ` | ||||
| The import command imports blocks from an RLP-encoded form. The form can be one file | ||||
| @ -116,11 +107,10 @@ processing will proceed even if an individual RLP-file import failure occurs.`, | ||||
| 		Name:      "export", | ||||
| 		Usage:     "Export blockchain into file", | ||||
| 		ArgsUsage: "<filename> [<blockNumFirst> <blockNumLast>]", | ||||
| 		Flags: []cli.Flag{ | ||||
| 			utils.DataDirFlag, | ||||
| 		Flags: append([]cli.Flag{ | ||||
| 			utils.CacheFlag, | ||||
| 			utils.SyncModeFlag, | ||||
| 		}, | ||||
| 		}, utils.DatabasePathFlags...), | ||||
| 		Category: "BLOCKCHAIN COMMANDS", | ||||
| 		Description: ` | ||||
| Requires a first argument of the file to write to. | ||||
| @ -134,11 +124,10 @@ be gzipped.`, | ||||
| 		Name:      "import-preimages", | ||||
| 		Usage:     "Import the preimage database from an RLP stream", | ||||
| 		ArgsUsage: "<datafile>", | ||||
| 		Flags: []cli.Flag{ | ||||
| 			utils.DataDirFlag, | ||||
| 		Flags: append([]cli.Flag{ | ||||
| 			utils.CacheFlag, | ||||
| 			utils.SyncModeFlag, | ||||
| 		}, | ||||
| 		}, utils.DatabasePathFlags...), | ||||
| 		Category: "BLOCKCHAIN COMMANDS", | ||||
| 		Description: ` | ||||
| The import-preimages command imports hash preimages from an RLP encoded stream. | ||||
| @ -150,11 +139,10 @@ It's deprecated, please use "geth db import" instead. | ||||
| 		Name:      "export-preimages", | ||||
| 		Usage:     "Export the preimage database into an RLP stream", | ||||
| 		ArgsUsage: "<dumpfile>", | ||||
| 		Flags: []cli.Flag{ | ||||
| 			utils.DataDirFlag, | ||||
| 		Flags: append([]cli.Flag{ | ||||
| 			utils.CacheFlag, | ||||
| 			utils.SyncModeFlag, | ||||
| 		}, | ||||
| 		}, utils.DatabasePathFlags...), | ||||
| 		Category: "BLOCKCHAIN COMMANDS", | ||||
| 		Description: ` | ||||
| The export-preimages command exports hash preimages to an RLP encoded stream. | ||||
| @ -166,8 +154,7 @@ It's deprecated, please use "geth db export" instead. | ||||
| 		Name:      "dump", | ||||
| 		Usage:     "Dump a specific block from storage", | ||||
| 		ArgsUsage: "[? <blockHash> | <blockNum>]", | ||||
| 		Flags: []cli.Flag{ | ||||
| 			utils.DataDirFlag, | ||||
| 		Flags: append([]cli.Flag{ | ||||
| 			utils.CacheFlag, | ||||
| 			utils.IterativeOutputFlag, | ||||
| 			utils.ExcludeCodeFlag, | ||||
| @ -175,7 +162,7 @@ It's deprecated, please use "geth db export" instead. | ||||
| 			utils.IncludeIncompletesFlag, | ||||
| 			utils.StartKeyFlag, | ||||
| 			utils.DumpLimitFlag, | ||||
| 		}, | ||||
| 		}, utils.DatabasePathFlags...), | ||||
| 		Category: "BLOCKCHAIN COMMANDS", | ||||
| 		Description: ` | ||||
| This command dumps out the state for a given block (or latest, if none provided). | ||||
|  | ||||
| @ -48,7 +48,7 @@ var ( | ||||
| 		Name:        "dumpconfig", | ||||
| 		Usage:       "Show configuration values", | ||||
| 		ArgsUsage:   "", | ||||
| 		Flags:       append(nodeFlags, rpcFlags...), | ||||
| 		Flags:       utils.GroupFlags(nodeFlags, rpcFlags), | ||||
| 		Category:    "MISCELLANEOUS COMMANDS", | ||||
| 		Description: `The dumpconfig command shows configuration values.`, | ||||
| 	} | ||||
|  | ||||
| @ -36,7 +36,7 @@ var ( | ||||
| 		Action:   utils.MigrateFlags(localConsole), | ||||
| 		Name:     "console", | ||||
| 		Usage:    "Start an interactive JavaScript environment", | ||||
| 		Flags:    append(append(nodeFlags, rpcFlags...), consoleFlags...), | ||||
| 		Flags:    utils.GroupFlags(nodeFlags, rpcFlags, consoleFlags), | ||||
| 		Category: "CONSOLE COMMANDS", | ||||
| 		Description: ` | ||||
| The Geth console is an interactive shell for the JavaScript runtime environment | ||||
| @ -49,7 +49,7 @@ See https://geth.ethereum.org/docs/interface/javascript-console.`, | ||||
| 		Name:      "attach", | ||||
| 		Usage:     "Start an interactive JavaScript environment (connect to node)", | ||||
| 		ArgsUsage: "[endpoint]", | ||||
| 		Flags:     append(consoleFlags, utils.DataDirFlag), | ||||
| 		Flags:     utils.GroupFlags([]cli.Flag{utils.DataDirFlag}, consoleFlags), | ||||
| 		Category:  "CONSOLE COMMANDS", | ||||
| 		Description: ` | ||||
| The Geth console is an interactive shell for the JavaScript runtime environment | ||||
| @ -63,7 +63,7 @@ This command allows to open a console on a running geth node.`, | ||||
| 		Name:      "js", | ||||
| 		Usage:     "Execute the specified JavaScript files", | ||||
| 		ArgsUsage: "<jsfile> [jsfile...]", | ||||
| 		Flags:     append(nodeFlags, consoleFlags...), | ||||
| 		Flags:     utils.GroupFlags(nodeFlags, consoleFlags), | ||||
| 		Category:  "CONSOLE COMMANDS", | ||||
| 		Description: ` | ||||
| The JavaScript VM exposes a node admin interface as well as the Ðapp | ||||
| @ -141,6 +141,8 @@ func remoteConsole(ctx *cli.Context) error { | ||||
| 				path = filepath.Join(path, "goerli") | ||||
| 			} else if ctx.GlobalBool(utils.SepoliaFlag.Name) { | ||||
| 				path = filepath.Join(path, "sepolia") | ||||
| 			} else if ctx.GlobalBool(utils.KilnFlag.Name) { | ||||
| 				path = filepath.Join(path, "kiln") | ||||
| 			} | ||||
| 		} | ||||
| 		endpoint = fmt.Sprintf("%s/geth.ipc", path) | ||||
|  | ||||
| @ -48,10 +48,8 @@ var ( | ||||
| 		Name:      "removedb", | ||||
| 		Usage:     "Remove blockchain and state databases", | ||||
| 		ArgsUsage: "", | ||||
| 		Flags: []cli.Flag{ | ||||
| 			utils.DataDirFlag, | ||||
| 		}, | ||||
| 		Category: "DATABASE COMMANDS", | ||||
| 		Flags:     utils.DatabasePathFlags, | ||||
| 		Category:  "DATABASE COMMANDS", | ||||
| 		Description: ` | ||||
| Remove blockchain and state databases`, | ||||
| 	} | ||||
| @ -79,16 +77,9 @@ Remove blockchain and state databases`, | ||||
| 		Action:    utils.MigrateFlags(inspect), | ||||
| 		Name:      "inspect", | ||||
| 		ArgsUsage: "<prefix> <start>", | ||||
| 		Flags: []cli.Flag{ | ||||
| 			utils.DataDirFlag, | ||||
| 			utils.AncientFlag, | ||||
| 		Flags: utils.GroupFlags([]cli.Flag{ | ||||
| 			utils.SyncModeFlag, | ||||
| 			utils.MainnetFlag, | ||||
| 			utils.RopstenFlag, | ||||
| 			utils.SepoliaFlag, | ||||
| 			utils.RinkebyFlag, | ||||
| 			utils.GoerliFlag, | ||||
| 		}, | ||||
| 		}, utils.NetworkFlags, utils.DatabasePathFlags), | ||||
| 		Usage:       "Inspect the storage size for each type of data in the database", | ||||
| 		Description: `This commands iterates the entire database. If the optional 'prefix' and 'start' arguments are provided, then the iteration is limited to the given subset of data.`, | ||||
| 	} | ||||
| @ -96,31 +87,19 @@ Remove blockchain and state databases`, | ||||
| 		Action: utils.MigrateFlags(dbStats), | ||||
| 		Name:   "stats", | ||||
| 		Usage:  "Print leveldb statistics", | ||||
| 		Flags: []cli.Flag{ | ||||
| 			utils.DataDirFlag, | ||||
| 		Flags: utils.GroupFlags([]cli.Flag{ | ||||
| 			utils.SyncModeFlag, | ||||
| 			utils.MainnetFlag, | ||||
| 			utils.RopstenFlag, | ||||
| 			utils.SepoliaFlag, | ||||
| 			utils.RinkebyFlag, | ||||
| 			utils.GoerliFlag, | ||||
| 		}, | ||||
| 		}, utils.NetworkFlags, utils.DatabasePathFlags), | ||||
| 	} | ||||
| 	dbCompactCmd = cli.Command{ | ||||
| 		Action: utils.MigrateFlags(dbCompact), | ||||
| 		Name:   "compact", | ||||
| 		Usage:  "Compact leveldb database. WARNING: May take a very long time", | ||||
| 		Flags: []cli.Flag{ | ||||
| 			utils.DataDirFlag, | ||||
| 		Flags: utils.GroupFlags([]cli.Flag{ | ||||
| 			utils.SyncModeFlag, | ||||
| 			utils.MainnetFlag, | ||||
| 			utils.RopstenFlag, | ||||
| 			utils.SepoliaFlag, | ||||
| 			utils.RinkebyFlag, | ||||
| 			utils.GoerliFlag, | ||||
| 			utils.CacheFlag, | ||||
| 			utils.CacheDatabaseFlag, | ||||
| 		}, | ||||
| 		}, utils.NetworkFlags, utils.DatabasePathFlags), | ||||
| 		Description: `This command performs a database compaction.  | ||||
| WARNING: This operation may take a very long time to finish, and may cause database | ||||
| corruption if it is aborted during execution'!`, | ||||
| @ -130,15 +109,9 @@ corruption if it is aborted during execution'!`, | ||||
| 		Name:      "get", | ||||
| 		Usage:     "Show the value of a database key", | ||||
| 		ArgsUsage: "<hex-encoded key>", | ||||
| 		Flags: []cli.Flag{ | ||||
| 			utils.DataDirFlag, | ||||
| 		Flags: utils.GroupFlags([]cli.Flag{ | ||||
| 			utils.SyncModeFlag, | ||||
| 			utils.MainnetFlag, | ||||
| 			utils.RopstenFlag, | ||||
| 			utils.SepoliaFlag, | ||||
| 			utils.RinkebyFlag, | ||||
| 			utils.GoerliFlag, | ||||
| 		}, | ||||
| 		}, utils.NetworkFlags, utils.DatabasePathFlags), | ||||
| 		Description: "This command looks up the specified database key from the database.", | ||||
| 	} | ||||
| 	dbDeleteCmd = cli.Command{ | ||||
| @ -146,15 +119,9 @@ corruption if it is aborted during execution'!`, | ||||
| 		Name:      "delete", | ||||
| 		Usage:     "Delete a database key (WARNING: may corrupt your database)", | ||||
| 		ArgsUsage: "<hex-encoded key>", | ||||
| 		Flags: []cli.Flag{ | ||||
| 			utils.DataDirFlag, | ||||
| 		Flags: utils.GroupFlags([]cli.Flag{ | ||||
| 			utils.SyncModeFlag, | ||||
| 			utils.MainnetFlag, | ||||
| 			utils.RopstenFlag, | ||||
| 			utils.SepoliaFlag, | ||||
| 			utils.RinkebyFlag, | ||||
| 			utils.GoerliFlag, | ||||
| 		}, | ||||
| 		}, utils.NetworkFlags, utils.DatabasePathFlags), | ||||
| 		Description: `This command deletes the specified database key from the database.  | ||||
| WARNING: This is a low-level operation which may cause database corruption!`, | ||||
| 	} | ||||
| @ -163,15 +130,9 @@ WARNING: This is a low-level operation which may cause database corruption!`, | ||||
| 		Name:      "put", | ||||
| 		Usage:     "Set the value of a database key (WARNING: may corrupt your database)", | ||||
| 		ArgsUsage: "<hex-encoded key> <hex-encoded value>", | ||||
| 		Flags: []cli.Flag{ | ||||
| 			utils.DataDirFlag, | ||||
| 		Flags: utils.GroupFlags([]cli.Flag{ | ||||
| 			utils.SyncModeFlag, | ||||
| 			utils.MainnetFlag, | ||||
| 			utils.RopstenFlag, | ||||
| 			utils.SepoliaFlag, | ||||
| 			utils.RinkebyFlag, | ||||
| 			utils.GoerliFlag, | ||||
| 		}, | ||||
| 		}, utils.NetworkFlags, utils.DatabasePathFlags), | ||||
| 		Description: `This command sets a given database key to the given value.  | ||||
| WARNING: This is a low-level operation which may cause database corruption!`, | ||||
| 	} | ||||
| @ -180,15 +141,9 @@ WARNING: This is a low-level operation which may cause database corruption!`, | ||||
| 		Name:      "dumptrie", | ||||
| 		Usage:     "Show the storage key/values of a given storage trie", | ||||
| 		ArgsUsage: "<hex-encoded storage trie root> <hex-encoded start (optional)> <int max elements (optional)>", | ||||
| 		Flags: []cli.Flag{ | ||||
| 			utils.DataDirFlag, | ||||
| 		Flags: utils.GroupFlags([]cli.Flag{ | ||||
| 			utils.SyncModeFlag, | ||||
| 			utils.MainnetFlag, | ||||
| 			utils.RopstenFlag, | ||||
| 			utils.SepoliaFlag, | ||||
| 			utils.RinkebyFlag, | ||||
| 			utils.GoerliFlag, | ||||
| 		}, | ||||
| 		}, utils.NetworkFlags, utils.DatabasePathFlags), | ||||
| 		Description: "This command looks up the specified database key from the database.", | ||||
| 	} | ||||
| 	dbDumpFreezerIndex = cli.Command{ | ||||
| @ -196,15 +151,9 @@ WARNING: This is a low-level operation which may cause database corruption!`, | ||||
| 		Name:      "freezer-index", | ||||
| 		Usage:     "Dump out the index of a given freezer type", | ||||
| 		ArgsUsage: "<type> <start (int)> <end (int)>", | ||||
| 		Flags: []cli.Flag{ | ||||
| 			utils.DataDirFlag, | ||||
| 		Flags: utils.GroupFlags([]cli.Flag{ | ||||
| 			utils.SyncModeFlag, | ||||
| 			utils.MainnetFlag, | ||||
| 			utils.RopstenFlag, | ||||
| 			utils.SepoliaFlag, | ||||
| 			utils.RinkebyFlag, | ||||
| 			utils.GoerliFlag, | ||||
| 		}, | ||||
| 		}, utils.NetworkFlags, utils.DatabasePathFlags), | ||||
| 		Description: "This command displays information about the freezer index.", | ||||
| 	} | ||||
| 	dbImportCmd = cli.Command{ | ||||
| @ -212,14 +161,9 @@ WARNING: This is a low-level operation which may cause database corruption!`, | ||||
| 		Name:      "import", | ||||
| 		Usage:     "Imports leveldb-data from an exported RLP dump.", | ||||
| 		ArgsUsage: "<dumpfile> <start (optional)", | ||||
| 		Flags: []cli.Flag{ | ||||
| 			utils.DataDirFlag, | ||||
| 		Flags: utils.GroupFlags([]cli.Flag{ | ||||
| 			utils.SyncModeFlag, | ||||
| 			utils.MainnetFlag, | ||||
| 			utils.RopstenFlag, | ||||
| 			utils.RinkebyFlag, | ||||
| 			utils.GoerliFlag, | ||||
| 		}, | ||||
| 		}, utils.NetworkFlags, utils.DatabasePathFlags), | ||||
| 		Description: "The import command imports the specific chain data from an RLP encoded stream.", | ||||
| 	} | ||||
| 	dbExportCmd = cli.Command{ | ||||
| @ -227,29 +171,18 @@ WARNING: This is a low-level operation which may cause database corruption!`, | ||||
| 		Name:      "export", | ||||
| 		Usage:     "Exports the chain data into an RLP dump. If the <dumpfile> has .gz suffix, gzip compression will be used.", | ||||
| 		ArgsUsage: "<type> <dumpfile>", | ||||
| 		Flags: []cli.Flag{ | ||||
| 			utils.DataDirFlag, | ||||
| 		Flags: utils.GroupFlags([]cli.Flag{ | ||||
| 			utils.SyncModeFlag, | ||||
| 			utils.MainnetFlag, | ||||
| 			utils.RopstenFlag, | ||||
| 			utils.RinkebyFlag, | ||||
| 			utils.GoerliFlag, | ||||
| 		}, | ||||
| 		}, utils.NetworkFlags, utils.DatabasePathFlags), | ||||
| 		Description: "Exports the specified chain data to an RLP encoded stream, optionally gzip-compressed.", | ||||
| 	} | ||||
| 	dbMetadataCmd = cli.Command{ | ||||
| 		Action: utils.MigrateFlags(showMetaData), | ||||
| 		Name:   "metadata", | ||||
| 		Usage:  "Shows metadata about the chain status.", | ||||
| 		Flags: []cli.Flag{ | ||||
| 			utils.DataDirFlag, | ||||
| 		Flags: utils.GroupFlags([]cli.Flag{ | ||||
| 			utils.SyncModeFlag, | ||||
| 			utils.MainnetFlag, | ||||
| 			utils.RopstenFlag, | ||||
| 			utils.SepoliaFlag, | ||||
| 			utils.RinkebyFlag, | ||||
| 			utils.GoerliFlag, | ||||
| 		}, | ||||
| 		}, utils.NetworkFlags, utils.DatabasePathFlags), | ||||
| 		Description: "Shows metadata about the chain status.", | ||||
| 	} | ||||
| 	dbMigrateFreezerCmd = cli.Command{ | ||||
| @ -257,15 +190,9 @@ WARNING: This is a low-level operation which may cause database corruption!`, | ||||
| 		Name:      "freezer-migrate", | ||||
| 		Usage:     "Migrate legacy parts of the freezer. (WARNING: may take a long time)", | ||||
| 		ArgsUsage: "", | ||||
| 		Flags: []cli.Flag{ | ||||
| 			utils.DataDirFlag, | ||||
| 		Flags: utils.GroupFlags([]cli.Flag{ | ||||
| 			utils.SyncModeFlag, | ||||
| 			utils.MainnetFlag, | ||||
| 			utils.RopstenFlag, | ||||
| 			utils.SepoliaFlag, | ||||
| 			utils.RinkebyFlag, | ||||
| 			utils.GoerliFlag, | ||||
| 		}, | ||||
| 		}, utils.NetworkFlags, utils.DatabasePathFlags), | ||||
| 		Description: `The freezer-migrate command checks your database for receipts in a legacy format and updates those. | ||||
| WARNING: please back-up the receipt files in your ancients before running this command.`, | ||||
| 	} | ||||
|  | ||||
| @ -58,13 +58,11 @@ var ( | ||||
| 	// The app that holds all commands and flags.
 | ||||
| 	app = flags.NewApp(gitCommit, gitDate, "the go-ethereum command line interface") | ||||
| 	// flags that configure the node
 | ||||
| 	nodeFlags = []cli.Flag{ | ||||
| 	nodeFlags = utils.GroupFlags([]cli.Flag{ | ||||
| 		utils.IdentityFlag, | ||||
| 		utils.UnlockedAccountFlag, | ||||
| 		utils.PasswordFileFlag, | ||||
| 		utils.BootnodesFlag, | ||||
| 		utils.DataDirFlag, | ||||
| 		utils.AncientFlag, | ||||
| 		utils.MinFreeDiskSpaceFlag, | ||||
| 		utils.KeyStoreDirFlag, | ||||
| 		utils.ExternalSignerFlag, | ||||
| @ -140,15 +138,9 @@ var ( | ||||
| 		utils.NodeKeyFileFlag, | ||||
| 		utils.NodeKeyHexFlag, | ||||
| 		utils.DNSDiscoveryFlag, | ||||
| 		utils.MainnetFlag, | ||||
| 		utils.DeveloperFlag, | ||||
| 		utils.DeveloperPeriodFlag, | ||||
| 		utils.DeveloperGasLimitFlag, | ||||
| 		utils.RopstenFlag, | ||||
| 		utils.SepoliaFlag, | ||||
| 		utils.RinkebyFlag, | ||||
| 		utils.GoerliFlag, | ||||
| 		utils.KilnFlag, | ||||
| 		utils.VMEnableDebugFlag, | ||||
| 		utils.NetworkIdFlag, | ||||
| 		utils.EthStatsURLFlag, | ||||
| @ -160,7 +152,7 @@ var ( | ||||
| 		utils.GpoIgnoreGasPriceFlag, | ||||
| 		utils.MinerNotifyFullFlag, | ||||
| 		configFileFlag, | ||||
| 	} | ||||
| 	}, utils.NetworkFlags, utils.DatabasePathFlags) | ||||
| 
 | ||||
| 	rpcFlags = []cli.Flag{ | ||||
| 		utils.HTTPEnabledFlag, | ||||
| @ -249,11 +241,11 @@ func init() { | ||||
| 	} | ||||
| 	sort.Sort(cli.CommandsByName(app.Commands)) | ||||
| 
 | ||||
| 	app.Flags = append(app.Flags, nodeFlags...) | ||||
| 	app.Flags = append(app.Flags, rpcFlags...) | ||||
| 	app.Flags = append(app.Flags, consoleFlags...) | ||||
| 	app.Flags = append(app.Flags, debug.Flags...) | ||||
| 	app.Flags = append(app.Flags, metricsFlags...) | ||||
| 	app.Flags = utils.GroupFlags(nodeFlags, | ||||
| 		rpcFlags, | ||||
| 		consoleFlags, | ||||
| 		debug.Flags, | ||||
| 		metricsFlags) | ||||
| 
 | ||||
| 	app.Before = func(ctx *cli.Context) error { | ||||
| 		return debug.Setup(ctx) | ||||
| @ -280,15 +272,18 @@ func prepare(ctx *cli.Context) { | ||||
| 	case ctx.GlobalIsSet(utils.RopstenFlag.Name): | ||||
| 		log.Info("Starting Geth on Ropsten testnet...") | ||||
| 
 | ||||
| 	case ctx.GlobalIsSet(utils.SepoliaFlag.Name): | ||||
| 		log.Info("Starting Geth on Sepolia testnet...") | ||||
| 
 | ||||
| 	case ctx.GlobalIsSet(utils.RinkebyFlag.Name): | ||||
| 		log.Info("Starting Geth on Rinkeby testnet...") | ||||
| 
 | ||||
| 	case ctx.GlobalIsSet(utils.GoerliFlag.Name): | ||||
| 		log.Info("Starting Geth on Görli testnet...") | ||||
| 
 | ||||
| 	case ctx.GlobalIsSet(utils.SepoliaFlag.Name): | ||||
| 		log.Info("Starting Geth on Sepolia testnet...") | ||||
| 
 | ||||
| 	case ctx.GlobalIsSet(utils.KilnFlag.Name): | ||||
| 		log.Info("Starting Geth on Kiln testnet...") | ||||
| 
 | ||||
| 	case ctx.GlobalIsSet(utils.DeveloperFlag.Name): | ||||
| 		log.Info("Starting Geth in ephemeral dev mode...") | ||||
| 
 | ||||
| @ -302,6 +297,7 @@ func prepare(ctx *cli.Context) { | ||||
| 			!ctx.GlobalIsSet(utils.SepoliaFlag.Name) && | ||||
| 			!ctx.GlobalIsSet(utils.RinkebyFlag.Name) && | ||||
| 			!ctx.GlobalIsSet(utils.GoerliFlag.Name) && | ||||
| 			!ctx.GlobalIsSet(utils.KilnFlag.Name) && | ||||
| 			!ctx.GlobalIsSet(utils.DeveloperFlag.Name) { | ||||
| 			// Nope, we're really on mainnet. Bump that cache up!
 | ||||
| 			log.Info("Bumping default cache on mainnet", "provided", ctx.GlobalInt(utils.CacheFlag.Name), "updated", 4096) | ||||
|  | ||||
| @ -60,16 +60,10 @@ var ( | ||||
| 				ArgsUsage: "<root>", | ||||
| 				Action:    utils.MigrateFlags(pruneState), | ||||
| 				Category:  "MISCELLANEOUS COMMANDS", | ||||
| 				Flags: []cli.Flag{ | ||||
| 					utils.DataDirFlag, | ||||
| 					utils.AncientFlag, | ||||
| 					utils.RopstenFlag, | ||||
| 					utils.SepoliaFlag, | ||||
| 					utils.RinkebyFlag, | ||||
| 					utils.GoerliFlag, | ||||
| 				Flags: utils.GroupFlags([]cli.Flag{ | ||||
| 					utils.CacheTrieJournalFlag, | ||||
| 					utils.BloomFilterSizeFlag, | ||||
| 				}, | ||||
| 				}, utils.NetworkFlags, utils.DatabasePathFlags), | ||||
| 				Description: ` | ||||
| geth snapshot prune-state <state-root> | ||||
| will prune historical state data with the help of the state snapshot. | ||||
| @ -91,14 +85,7 @@ the trie clean cache with default directory will be deleted. | ||||
| 				ArgsUsage: "<root>", | ||||
| 				Action:    utils.MigrateFlags(verifyState), | ||||
| 				Category:  "MISCELLANEOUS COMMANDS", | ||||
| 				Flags: []cli.Flag{ | ||||
| 					utils.DataDirFlag, | ||||
| 					utils.AncientFlag, | ||||
| 					utils.RopstenFlag, | ||||
| 					utils.SepoliaFlag, | ||||
| 					utils.RinkebyFlag, | ||||
| 					utils.GoerliFlag, | ||||
| 				}, | ||||
| 				Flags:     utils.GroupFlags(utils.NetworkFlags, utils.DatabasePathFlags), | ||||
| 				Description: ` | ||||
| geth snapshot verify-state <state-root> | ||||
| will traverse the whole accounts and storages set based on the specified | ||||
| @ -112,14 +99,7 @@ In other words, this command does the snapshot to trie conversion. | ||||
| 				ArgsUsage: "<root>", | ||||
| 				Action:    utils.MigrateFlags(checkDanglingStorage), | ||||
| 				Category:  "MISCELLANEOUS COMMANDS", | ||||
| 				Flags: []cli.Flag{ | ||||
| 					utils.DataDirFlag, | ||||
| 					utils.AncientFlag, | ||||
| 					utils.RopstenFlag, | ||||
| 					utils.SepoliaFlag, | ||||
| 					utils.RinkebyFlag, | ||||
| 					utils.GoerliFlag, | ||||
| 				}, | ||||
| 				Flags:     utils.GroupFlags(utils.NetworkFlags, utils.DatabasePathFlags), | ||||
| 				Description: ` | ||||
| geth snapshot check-dangling-storage <state-root> traverses the snap storage  | ||||
| data, and verifies that all snapshot storage data has a corresponding account.  | ||||
| @ -131,14 +111,7 @@ data, and verifies that all snapshot storage data has a corresponding account. | ||||
| 				ArgsUsage: "<root>", | ||||
| 				Action:    utils.MigrateFlags(traverseState), | ||||
| 				Category:  "MISCELLANEOUS COMMANDS", | ||||
| 				Flags: []cli.Flag{ | ||||
| 					utils.DataDirFlag, | ||||
| 					utils.AncientFlag, | ||||
| 					utils.RopstenFlag, | ||||
| 					utils.SepoliaFlag, | ||||
| 					utils.RinkebyFlag, | ||||
| 					utils.GoerliFlag, | ||||
| 				}, | ||||
| 				Flags:     utils.GroupFlags(utils.NetworkFlags, utils.DatabasePathFlags), | ||||
| 				Description: ` | ||||
| geth snapshot traverse-state <state-root> | ||||
| will traverse the whole state from the given state root and will abort if any | ||||
| @ -154,14 +127,7 @@ It's also usable without snapshot enabled. | ||||
| 				ArgsUsage: "<root>", | ||||
| 				Action:    utils.MigrateFlags(traverseRawState), | ||||
| 				Category:  "MISCELLANEOUS COMMANDS", | ||||
| 				Flags: []cli.Flag{ | ||||
| 					utils.DataDirFlag, | ||||
| 					utils.AncientFlag, | ||||
| 					utils.RopstenFlag, | ||||
| 					utils.SepoliaFlag, | ||||
| 					utils.RinkebyFlag, | ||||
| 					utils.GoerliFlag, | ||||
| 				}, | ||||
| 				Flags:     utils.GroupFlags(utils.NetworkFlags, utils.DatabasePathFlags), | ||||
| 				Description: ` | ||||
| geth snapshot traverse-rawstate <state-root> | ||||
| will traverse the whole state from the given root and will abort if any referenced | ||||
| @ -178,18 +144,12 @@ It's also usable without snapshot enabled. | ||||
| 				ArgsUsage: "[? <blockHash> | <blockNum>]", | ||||
| 				Action:    utils.MigrateFlags(dumpState), | ||||
| 				Category:  "MISCELLANEOUS COMMANDS", | ||||
| 				Flags: []cli.Flag{ | ||||
| 					utils.DataDirFlag, | ||||
| 					utils.AncientFlag, | ||||
| 					utils.RopstenFlag, | ||||
| 					utils.SepoliaFlag, | ||||
| 					utils.RinkebyFlag, | ||||
| 					utils.GoerliFlag, | ||||
| 				Flags: utils.GroupFlags([]cli.Flag{ | ||||
| 					utils.ExcludeCodeFlag, | ||||
| 					utils.ExcludeStorageFlag, | ||||
| 					utils.StartKeyFlag, | ||||
| 					utils.DumpLimitFlag, | ||||
| 				}, | ||||
| 				}, utils.NetworkFlags, utils.DatabasePathFlags), | ||||
| 				Description: ` | ||||
| This command is semantically equivalent to 'geth dump', but uses the snapshots | ||||
| as the backend data source, making this command a lot faster.  | ||||
|  | ||||
| @ -32,21 +32,13 @@ import ( | ||||
| var AppHelpFlagGroups = []flags.FlagGroup{ | ||||
| 	{ | ||||
| 		Name: "ETHEREUM", | ||||
| 		Flags: []cli.Flag{ | ||||
| 		Flags: utils.GroupFlags([]cli.Flag{ | ||||
| 			configFileFlag, | ||||
| 			utils.DataDirFlag, | ||||
| 			utils.AncientFlag, | ||||
| 			utils.MinFreeDiskSpaceFlag, | ||||
| 			utils.KeyStoreDirFlag, | ||||
| 			utils.USBFlag, | ||||
| 			utils.SmartCardDaemonPathFlag, | ||||
| 			utils.NetworkIdFlag, | ||||
| 			utils.MainnetFlag, | ||||
| 			utils.GoerliFlag, | ||||
| 			utils.RinkebyFlag, | ||||
| 			utils.RopstenFlag, | ||||
| 			utils.SepoliaFlag, | ||||
| 			utils.KilnFlag, | ||||
| 			utils.SyncModeFlag, | ||||
| 			utils.ExitWhenSyncedFlag, | ||||
| 			utils.GCModeFlag, | ||||
| @ -55,7 +47,7 @@ var AppHelpFlagGroups = []flags.FlagGroup{ | ||||
| 			utils.IdentityFlag, | ||||
| 			utils.LightKDFFlag, | ||||
| 			utils.EthPeerRequiredBlocksFlag, | ||||
| 		}, | ||||
| 		}, utils.NetworkFlags, utils.DatabasePathFlags), | ||||
| 	}, | ||||
| 	{ | ||||
| 		Name: "LIGHT CLIENT", | ||||
|  | ||||
| @ -144,17 +144,17 @@ var ( | ||||
| 		Name:  "mainnet", | ||||
| 		Usage: "Ethereum mainnet", | ||||
| 	} | ||||
| 	GoerliFlag = cli.BoolFlag{ | ||||
| 		Name:  "goerli", | ||||
| 		Usage: "Görli network: pre-configured proof-of-authority test network", | ||||
| 	RopstenFlag = cli.BoolFlag{ | ||||
| 		Name:  "ropsten", | ||||
| 		Usage: "Ropsten network: pre-configured proof-of-work test network", | ||||
| 	} | ||||
| 	RinkebyFlag = cli.BoolFlag{ | ||||
| 		Name:  "rinkeby", | ||||
| 		Usage: "Rinkeby network: pre-configured proof-of-authority test network", | ||||
| 	} | ||||
| 	RopstenFlag = cli.BoolFlag{ | ||||
| 		Name:  "ropsten", | ||||
| 		Usage: "Ropsten network: pre-configured proof-of-work test network", | ||||
| 	GoerliFlag = cli.BoolFlag{ | ||||
| 		Name:  "goerli", | ||||
| 		Usage: "Görli network: pre-configured proof-of-authority test network", | ||||
| 	} | ||||
| 	SepoliaFlag = cli.BoolFlag{ | ||||
| 		Name:  "sepolia", | ||||
| @ -823,6 +823,36 @@ var ( | ||||
| 	} | ||||
| ) | ||||
| 
 | ||||
| var ( | ||||
| 	// TestnetFlags is the flag group of all built-in supported testnets.
 | ||||
| 	TestnetFlags = []cli.Flag{ | ||||
| 		RopstenFlag, | ||||
| 		RinkebyFlag, | ||||
| 		GoerliFlag, | ||||
| 		SepoliaFlag, | ||||
| 		KilnFlag, | ||||
| 	} | ||||
| 	// NetworkFlags is the flag group of all built-in supported networks.
 | ||||
| 	NetworkFlags = append([]cli.Flag{ | ||||
| 		MainnetFlag, | ||||
| 	}, TestnetFlags...) | ||||
| 
 | ||||
| 	// DatabasePathFlags is the flag group of all database path flags.
 | ||||
| 	DatabasePathFlags = []cli.Flag{ | ||||
| 		DataDirFlag, | ||||
| 		AncientFlag, | ||||
| 	} | ||||
| ) | ||||
| 
 | ||||
| // GroupFlags combines the given flag slices together and returns the merged one.
 | ||||
| func GroupFlags(groups ...[]cli.Flag) []cli.Flag { | ||||
| 	var ret []cli.Flag | ||||
| 	for _, group := range groups { | ||||
| 		ret = append(ret, group...) | ||||
| 	} | ||||
| 	return ret | ||||
| } | ||||
| 
 | ||||
| // MakeDataDir retrieves the currently requested data directory, terminating
 | ||||
| // if none (or the empty string) is specified. If the node is starting a testnet,
 | ||||
| // then a subdirectory of the specified datadir will be used.
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user