go-ethereum/docs/fundamentals/command-line-options.md

20 KiB

title description
Command-line Options A list of commands for Geth

Geth is primarily controlled using the command line. Geth is started using the geth command. It is stopped by pressing ctrl-c.

You can configure Geth using command-line options (a.k.a. flags). Geth also has sub-commands, which can be used to invoke functionality such as the console or blockchain import/export.

The command-line help listing is reproduced below for your convenience. The same information can be obtained at any time from your own Geth instance by running:

geth --help

Commands

NAME:
   geth - the go-ethereum command line interface

USAGE:
   geth [global options] command [command options] [arguments...]

VERSION:
   1.11.5-unstable-f86913bc-20230315

COMMANDS:
   account                Manage accounts
   attach                 Start an interactive JavaScript environment (connect to node)
   console                Start an interactive JavaScript environment
   db                     Low level database operations
   dump                   Dump a specific block from storage
   dumpconfig             Export configuration values in a TOML format
   dumpgenesis            Dumps genesis block JSON configuration to stdout
   export                 Export blockchain into file
   export-preimages       Export the preimage database into an RLP stream
   import                 Import a blockchain file
   import-preimages       Import the preimage database from an RLP stream
   init                   Bootstrap and initialize a new genesis block
   js                     (DEPRECATED) Execute the specified JavaScript files
   license                Display license information
   removedb               Remove blockchain and state databases
   show-deprecated-flags  Show flags that have been deprecated
   snapshot               A set of commands based on the snapshot
   verkle                 A set of experimental verkle tree management commands
   version                Print version numbers
   version-check          Checks (online) for known Geth security vulnerabilities
   wallet                 Manage Ethereum presale wallets
   help, h                Shows a list of commands or help for one command

GLOBAL OPTIONS:
   ACCOUNT

    --allow-insecure-unlock        (default: false)
          Allow insecure account unlocking when account-related RPCs are exposed by http

    --keystore value
          Directory for the keystore (default = inside the datadir)

    --lightkdf                     (default: false)
          Reduce key-derivation RAM & CPU usage at some expense of KDF strength

    --password value
          Password file to use for non-interactive password input

    --pcscdpath value
          Path to the smartcard daemon (pcscd) socket file

    --signer value
          External signer (url or path to ipc file)

    --unlock value
          Comma separated list of accounts to unlock

    --usb                          (default: false)
          Enable monitoring and management of USB hardware wallets

   ALIASED (deprecated)

    --nousb                        (default: false)
          Disables monitoring for and managing USB hardware wallets (deprecated)

    --whitelist value
          Comma separated block number-to-hash mappings to enforce (<number>=<hash>)
          (deprecated in favor of --eth.requiredblocks)

   API AND CONSOLE

    --authrpc.addr value           (default: "localhost")
          Listening address for authenticated APIs

    --authrpc.jwtsecret value
          Path to a JWT secret to use for authenticated RPC endpoints

    --authrpc.port value           (default: 8551)
          Listening port for authenticated APIs

    --authrpc.vhosts value         (default: "localhost")
          Comma separated list of virtual hostnames from which to accept requests (server
          enforced). Accepts '*' wildcard.

    --exec value
          Execute JavaScript statement

    --graphql                      (default: false)
          Enable GraphQL on the HTTP-RPC server. Note that GraphQL can only be started if
          an HTTP server is started as well.

    --graphql.corsdomain value
          Comma separated list of domains from which to accept cross origin requests
          (browser enforced)

    --graphql.vhosts value         (default: "localhost")
          Comma separated list of virtual hostnames from which to accept requests (server
          enforced). Accepts '*' wildcard.

    --header value, -H value
          Pass custom headers to the RPC server when using --remotedb or the geth attach
          console. This flag can be given multiple times.

    --http                         (default: false)
          Enable the HTTP-RPC server

    --http.addr value              (default: "localhost")
          HTTP-RPC server listening interface

    --http.api value
          API's offered over the HTTP-RPC interface

    --http.corsdomain value
          Comma separated list of domains from which to accept cross origin requests
          (browser enforced)

    --http.port value              (default: 8545)
          HTTP-RPC server listening port

    --http.rpcprefix value
          HTTP path path prefix on which JSON-RPC is served. Use '/' to serve on all
          paths.

    --http.vhosts value            (default: "localhost")
          Comma separated list of virtual hostnames from which to accept requests (server
          enforced). Accepts '*' wildcard.

    --ipcdisable                   (default: false)
          Disable the IPC-RPC server

    --ipcpath value
          Filename for IPC socket/pipe within the datadir (explicit paths escape it)

    --jspath value                 (default: .)
          JavaScript root path for `loadScript`

    --preload value
          Comma separated list of JavaScript files to preload into the console

    --rpc.allow-unprotected-txs    (default: false)
          Allow for unprotected (non EIP155 signed) transactions to be submitted via RPC

    --rpc.enabledeprecatedpersonal (default: false)
          Enables the (deprecated) personal namespace

    --rpc.evmtimeout value         (default: 5s)
          Sets a timeout used for eth_call (0=infinite)

    --rpc.gascap value             (default: 50000000)
          Sets a cap on gas that can be used in eth_call/estimateGas (0=infinite)

    --rpc.txfeecap value           (default: 1)
          Sets a cap on transaction fee (in ether) that can be sent via the RPC APIs (0 =
          no cap)

    --ws                           (default: false)
          Enable the WS-RPC server

    --ws.addr value                (default: "localhost")
          WS-RPC server listening interface

    --ws.api value
          API's offered over the WS-RPC interface

    --ws.origins value
          Origins from which to accept websockets requests

    --ws.port value                (default: 8546)
          WS-RPC server listening port

    --ws.rpcprefix value
          HTTP path prefix on which JSON-RPC is served. Use '/' to serve on all paths.

   DEVELOPER CHAIN

    --dev                          (default: false)
          Ephemeral proof-of-authority network with a pre-funded developer account, mining
          enabled

    --dev.gaslimit value           (default: 11500000)
          Initial block gas limit

    --dev.period value             (default: 0)
          Block period to use in developer mode (0 = mine only if transaction pending)


   ETHEREUM

    --bloomfilter.size value       (default: 2048)
          Megabytes of memory allocated to bloom-filter for pruning

    --config value
          TOML configuration file

    --datadir value                (default: /Users/fjl/Library/Ethereum)
          Data directory for the databases and keystore

    --datadir.ancient value
          Root directory for ancient data (default = inside chaindata)

    --datadir.minfreedisk value
          Minimum free disk space in MB, once reached triggers auto shut down (default =
          --cache.gc converted to MB, 0 = disabled)

    --db.engine value              (default: "leveldb")
          Backing database implementation to use ('leveldb' or 'pebble')

    --eth.requiredblocks value
          Comma separated block number-to-hash mappings to require for peering
          (<number>=<hash>)

    --exitwhensynced               (default: false)
          Exits after block synchronisation completes

    --gcmode value                 (default: "full")
          Blockchain garbage collection mode ("full", "archive")

    --goerli                       (default: false)
          Görli network: pre-configured proof-of-authority test network

    --mainnet                      (default: false)
          Ethereum mainnet

    --networkid value              (default: 1)
          Explicitly set network id (integer)(For testnets: use --rinkeby, --goerli,
          --sepolia instead)

    --override.shanghai value      (default: 0)
          Manually specify the Shanghai fork timestamp, overriding the bundled setting

    --rinkeby                      (default: false)
          Rinkeby network: pre-configured proof-of-authority test network

    --sepolia                      (default: false)
          Sepolia network: pre-configured proof-of-work test network

    --snapshot                     (default: true)
          Enables snapshot-database mode (default = enable)

    --syncmode value               (default: snap)
          Blockchain sync mode ("snap", "full" or "light")

    --txlookuplimit value          (default: 2350000)
          Number of recent blocks to maintain transactions index for (default = about one
          year, 0 = entire chain)

   GAS PRICE ORACLE

    --gpo.blocks value             (default: 20)
          Number of recent blocks to check for gas prices

    --gpo.ignoreprice value        (default: 2)
          Gas price below which gpo will ignore transactions

    --gpo.maxprice value           (default: 500000000000)
          Maximum transaction priority fee (or gasprice before London fork) to be
          recommended by gpo

    --gpo.percentile value         (default: 60)
          Suggested gas price is the given percentile of a set of recent transaction gas
          prices

   LIGHT CLIENT

    --light.egress value           (default: 0)
          Outgoing bandwidth limit for serving light clients (kilobytes/sec, 0 =
          unlimited)

    --light.ingress value          (default: 0)
          Incoming bandwidth limit for serving light clients (kilobytes/sec, 0 =
          unlimited)

    --light.maxpeers value         (default: 100)
          Maximum number of light clients to serve, or light servers to attach to

    --light.nopruning              (default: false)
          Disable ancient light chain data pruning

    --light.nosyncserve            (default: false)
          Enables serving light clients before syncing

    --light.serve value            (default: 0)
          Maximum percentage of time allowed for serving LES requests (multi-threaded
          processing allows values over 100)

    --ulc.fraction value           (default: 75)
          Minimum % of trusted ultra-light servers required to announce a new head

    --ulc.onlyannounce             (default: false)
          Ultra light server sends announcements only

    --ulc.servers value
          List of trusted ultra-light servers

   LOGGING AND DEBUGGING

    --fakepow                      (default: false)
          Disables proof-of-work verification

    --log.backtrace value
          Request a stack trace at a specific logging statement (e.g. "block.go:271")

    --log.debug                    (default: false)
          Prepends log messages with call-site location (file and line number)

    --log.file value
          Write logs to a file

    --log.json                     (default: false)
          Format logs with JSON

    --nocompaction                 (default: false)
          Disables db compaction after import

    --pprof                        (default: false)
          Enable the pprof HTTP server

    --pprof.addr value             (default: "127.0.0.1")
          pprof HTTP server listening interface

    --pprof.blockprofilerate value (default: 0)
          Turn on block profiling with the given rate

    --pprof.cpuprofile value
          Write CPU profile to the given file

    --pprof.memprofilerate value   (default: 524288)
          Turn on memory profiling with the given rate

    --pprof.port value             (default: 6060)
          pprof HTTP server listening port

    --remotedb value
          URL for remote database

    --trace value
          Write execution trace to the given file

    --verbosity value              (default: 3)
          Logging verbosity: 0=silent, 1=error, 2=warn, 3=info, 4=debug, 5=detail

    --vmodule value
          Per-module verbosity: comma-separated list of <pattern>=<level> (e.g.
          eth/*=5,p2p=4)

   METRICS AND STATS

    --ethstats value
          Reporting URL of a ethstats service (nodename:secret@host:port)

    --metrics                      (default: false)
          Enable metrics collection and reporting

    --metrics.addr value
          Enable stand-alone metrics HTTP server listening interface.

    --metrics.expensive            (default: false)
          Enable expensive metrics collection and reporting

    --metrics.influxdb             (default: false)
          Enable metrics export/push to an external InfluxDB database

    --metrics.influxdb.bucket value (default: "geth")
          InfluxDB bucket name to push reported metrics to (v2 only)

    --metrics.influxdb.database value (default: "geth")
          InfluxDB database name to push reported metrics to

    --metrics.influxdb.endpoint value (default: "http://localhost:8086")
          InfluxDB API endpoint to report metrics to

    --metrics.influxdb.organization value (default: "geth")
          InfluxDB organization name (v2 only)

    --metrics.influxdb.password value (default: "test")
          Password to authorize access to the database

    --metrics.influxdb.tags value  (default: "host=localhost")
          Comma-separated InfluxDB tags (key/values) attached to all measurements

    --metrics.influxdb.token value (default: "test")
          Token to authorize access to the database (v2 only)

    --metrics.influxdb.username value (default: "test")
          Username to authorize access to the database

    --metrics.influxdbv2           (default: false)
          Enable metrics export/push to an external InfluxDB v2 database

    --metrics.port value           (default: 6060)
          Metrics HTTP server listening port.
          Please note that --metrics.addr must be set
          to start the server.

   MINER

    --mine                         (default: false)
          Enable mining

    --miner.etherbase value
          0x prefixed public address for block mining rewards

    --miner.extradata value
          Block extra data set by the miner (default = client version)

    --miner.gaslimit value         (default: 30000000)
          Target gas ceiling for mined blocks

    --miner.gasprice value         (default: 0)
          Minimum gas price for mining a transaction

    --miner.newpayload-timeout value (default: 2s)
          Specify the maximum time allowance for creating a new payload


    --miner.recommit value         (default: 2s)
          Time interval to recreate the block being mined


   MISC

    --help, -h                     (default: false)
          show help

    --synctarget value
          File for containing the hex-encoded block-rlp as sync target(dev feature)

    --version, -v                  (default: false)
          print the version

   NETWORKING

    --bootnodes value
          Comma separated enode URLs for P2P discovery bootstrap

    --discovery.dns value
          Sets DNS discovery entry points (use "" to disable DNS)

    --discovery.port value         (default: 30303)
          Use a custom UDP port for P2P discovery

    --identity value
          Custom node name

    --maxpeers value               (default: 50)
          Maximum number of network peers (network disabled if set to 0)

    --maxpendpeers value           (default: 0)
          Maximum number of pending connection attempts (defaults used if set to 0)

    --nat value                    (default: "any")
          NAT port mapping mechanism (any|none|upnp|pmp|pmp:<IP>|extip:<IP>)

    --netrestrict value
          Restricts network communication to the given IP networks (CIDR masks)

    --nodekey value
          P2P node key file

    --nodekeyhex value
          P2P node key as hex (for testing)

    --nodiscover                   (default: false)
          Disables the peer discovery mechanism (manual peer addition)

    --port value                   (default: 30303)
          Network listening port

    --v5disc                       (default: false)
          Enables the experimental RLPx V5 (Topic Discovery) mechanism

   PERFORMANCE TUNING

    --cache value                  (default: 1024)
          Megabytes of memory allocated to internal caching (default = 4096 mainnet full
          node, 128 light mode)

    --cache.blocklogs value        (default: 32)
          Size (in number of blocks) of the log cache for filtering

    --cache.database value         (default: 50)
          Percentage of cache memory allowance to use for database io

    --cache.gc value               (default: 25)
          Percentage of cache memory allowance to use for trie pruning (default = 25% full
          mode, 0% archive mode)

    --cache.noprefetch             (default: false)
          Disable heuristic state prefetch during block import (less CPU and disk IO, more
          time waiting for data)

    --cache.preimages              (default: false)
          Enable recording the SHA3/keccak preimages of trie keys

    --cache.snapshot value         (default: 10)
          Percentage of cache memory allowance to use for snapshot caching (default = 10%
          full mode, 20% archive mode)

    --cache.trie value             (default: 15)
          Percentage of cache memory allowance to use for trie caching (default = 15% full
          mode, 30% archive mode)

    --cache.trie.journal value     (default: "triecache")
          Disk journal directory for trie cache to survive node restarts

    --cache.trie.rejournal value   (default: 1h0m0s)
          Time interval to regenerate the trie cache journal

    --fdlimit value                (default: 0)
          Raise the open file descriptor resource limit (default = system fd limit)

   TRANSACTION POOL

    --txpool.accountqueue value    (default: 64)
          Maximum number of non-executable transaction slots permitted per account

    --txpool.accountslots value    (default: 16)
          Minimum number of executable transaction slots guaranteed per account

    --txpool.globalqueue value     (default: 1024)
          Maximum number of non-executable transaction slots for all accounts

    --txpool.globalslots value     (default: 5120)
          Maximum number of executable transaction slots for all accounts

    --txpool.journal value         (default: "transactions.rlp")
          Disk journal for local transaction to survive node restarts

    --txpool.lifetime value        (default: 3h0m0s)
          Maximum amount of time non-executable transaction are queued

    --txpool.locals value
          Comma separated accounts to treat as locals (no flush, priority inclusion)

    --txpool.nolocals              (default: false)
          Disables price exemptions for locally submitted transactions

    --txpool.pricebump value       (default: 10)
          Price bump percentage to replace an already existing transaction

    --txpool.pricelimit value      (default: 1)
          Minimum gas price limit to enforce for acceptance into the pool

    --txpool.rejournal value       (default: 1h0m0s)
          Time interval to regenerate the local transaction journal

   VIRTUAL MACHINE

    --vmdebug                      (default: false)
          Record information useful for VM and contract debugging


COPYRIGHT:
   Copyright 2013-2023 The go-ethereum Authors