Skip to content

Instantly share code, notes, and snippets.

@marcialwushu
Created January 19, 2018 00:18
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save marcialwushu/693bcea078b27fa51daa02c1b94a7e37 to your computer and use it in GitHub Desktop.
Save marcialwushu/693bcea078b27fa51daa02c1b94a7e37 to your computer and use it in GitHub Desktop.
Command Line Options Geth
Command Line Options
$ geth help
NAME:
geth - the go-ethereum command line interface
Copyright 2013-2017 The go-ethereum Authors
USAGE:
geth [options] command [command options] [arguments...]
VERSION:
1.7.3-stable
COMMANDS:
account Manage accounts
attach Start an interactive JavaScript environment (connect to node)
bug opens a window to report a bug on the geth repo
console Start an interactive JavaScript environment
copydb Create a local chain from a target chaindata folder
dump Dump a specific block from storage
dumpconfig Show configuration values
export Export blockchain into file
import Import a blockchain file
init Bootstrap and initialize a new genesis block
js Execute the specified JavaScript files
license Display license information
makecache Generate ethash verification cache (for testing)
makedag Generate ethash mining DAG (for testing)
monitor Monitor and visualize node metrics
removedb Remove blockchain and state databases
version Print version numbers
wallet Manage Ethereum presale wallets
help, h Shows a list of commands or help for one command
ETHEREUM OPTIONS:
--config value TOML configuration file
--datadir "/home/karalabe/.ethereum" Data directory for the databases and keystore
--keystore Directory for the keystore (default = inside the datadir)
--nousb Disables monitoring for and managing USB hardware wallets
--networkid value Network identifier (integer, 1=Frontier, 2=Morden (disused), 3=Ropsten, 4=Rinkeby) (default: 1)
--testnet Ropsten network: pre-configured proof-of-work test network
--rinkeby Rinkeby network: pre-configured proof-of-authority test network
--syncmode "fast" Blockchain sync mode ("fast", "full", or "light")
--ethstats value Reporting URL of a ethstats service (nodename:secret@host:port)
--identity value Custom node name
--lightserv value Maximum percentage of time allowed for serving LES requests (0-90) (default: 0)
--lightpeers value Maximum number of LES client peers (default: 20)
--lightkdf Reduce key-derivation RAM & CPU usage at some expense of KDF strength
DEVELOPER CHAIN OPTIONS:
--dev Ephemeral proof-of-authority network with a pre-funded developer account, mining enabled
--dev.period value Block period to use in developer mode (0 = mine only if transaction pending) (default: 0)
ETHASH OPTIONS:
--ethash.cachedir Directory to store the ethash verification caches (default = inside the datadir)
--ethash.cachesinmem value Number of recent ethash caches to keep in memory (16MB each) (default: 2)
--ethash.cachesondisk value Number of recent ethash caches to keep on disk (16MB each) (default: 3)
--ethash.dagdir "/home/karalabe/.ethash" Directory to store the ethash mining DAGs (default = inside home folder)
--ethash.dagsinmem value Number of recent ethash mining DAGs to keep in memory (1+GB each) (default: 1)
--ethash.dagsondisk value Number of recent ethash mining DAGs to keep on disk (1+GB each) (default: 2)
TRANSACTION POOL OPTIONS:
--txpool.nolocals Disables price exemptions for locally submitted transactions
--txpool.journal value Disk journal for local transaction to survive node restarts (default: "transactions.rlp")
--txpool.rejournal value Time interval to regenerate the local transaction journal (default: 1h0m0s)
--txpool.pricelimit value Minimum gas price limit to enforce for acceptance into the pool (default: 1)
--txpool.pricebump value Price bump percentage to replace an already existing transaction (default: 10)
--txpool.accountslots value Minimum number of executable transaction slots guaranteed per account (default: 16)
--txpool.globalslots value Maximum number of executable transaction slots for all accounts (default: 4096)
--txpool.accountqueue value Maximum number of non-executable transaction slots permitted per account (default: 64)
--txpool.globalqueue value Maximum number of non-executable transaction slots for all accounts (default: 1024)
--txpool.lifetime value Maximum amount of time non-executable transaction are queued (default: 3h0m0s)
PERFORMANCE TUNING OPTIONS:
--cache value Megabytes of memory allocated to internal caching (min 16MB / database forced) (default: 128)
--trie-cache-gens value Number of trie node generations to keep in memory (default: 120)
ACCOUNT OPTIONS:
--unlock value Comma separated list of accounts to unlock
--password value Password file to use for non-interactive password input
API AND CONSOLE OPTIONS:
--rpc Enable the HTTP-RPC server
--rpcaddr value HTTP-RPC server listening interface (default: "localhost")
--rpcport value HTTP-RPC server listening port (default: 8545)
--rpcapi value API's offered over the HTTP-RPC interface
--ws Enable the WS-RPC server
--wsaddr value WS-RPC server listening interface (default: "localhost")
--wsport value WS-RPC server listening port (default: 8546)
--wsapi value API's offered over the WS-RPC interface
--wsorigins value Origins from which to accept websockets requests
--ipcdisable Disable the IPC-RPC server
--ipcpath Filename for IPC socket/pipe within the datadir (explicit paths escape it)
--rpccorsdomain value Comma separated list of domains from which to accept cross origin requests (browser enforced)
--jspath loadScript JavaScript root path for loadScript (default: ".")
--exec value Execute JavaScript statement
--preload value Comma separated list of JavaScript files to preload into the console
NETWORKING OPTIONS:
--bootnodes value Comma separated enode URLs for P2P discovery bootstrap (set v4+v5 instead for light servers)
--bootnodesv4 value Comma separated enode URLs for P2P v4 discovery bootstrap (light server, full nodes)
--bootnodesv5 value Comma separated enode URLs for P2P v5 discovery bootstrap (light server, light nodes)
--port value Network listening port (default: 30303)
--maxpeers value Maximum number of network peers (network disabled if set to 0) (default: 25)
--maxpendpeers value Maximum number of pending connection attempts (defaults used if set to 0) (default: 0)
--nat value NAT port mapping mechanism (any|none|upnp|pmp|extip:<IP>) (default: "any")
--nodiscover Disables the peer discovery mechanism (manual peer addition)
--v5disc Enables the experimental RLPx V5 (Topic Discovery) mechanism
--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)
MINER OPTIONS:
--mine Enable mining
--minerthreads value Number of CPU threads to use for mining (default: 8)
--etherbase value Public address for block mining rewards (default = first account created) (default: "0")
--targetgaslimit value Target gas limit sets the artificial target gas floor for the blocks to mine (default: 4712388)
--gasprice "18000000000" Minimal gas price to accept for mining a transactions
--extradata value Block extra data set by the miner (default = client version)
GAS PRICE ORACLE OPTIONS:
--gpoblocks value Number of recent blocks to check for gas prices (default: 10)
--gpopercentile value Suggested gas price is the given percentile of a set of recent transaction gas prices (default: 50)
VIRTUAL MACHINE OPTIONS:
--vmdebug Record information useful for VM and contract debugging
LOGGING AND DEBUGGING OPTIONS:
--metrics Enable metrics collection and reporting
--fakepow Disables proof-of-work verification
--nocompaction Disables db compaction after import
--verbosity value Logging verbosity: 0=silent, 1=error, 2=warn, 3=info, 4=debug, 5=detail (default: 3)
--vmodule value Per-module verbosity: comma-separated list of <pattern>=<level> (e.g. eth/*=5,p2p=4)
--backtrace value Request a stack trace at a specific logging statement (e.g. "block.go:271")
--debug Prepends log messages with call-site location (file and line number)
--pprof Enable the pprof HTTP server
--pprofaddr value pprof HTTP server listening interface (default: "127.0.0.1")
--pprofport value pprof HTTP server listening port (default: 6060)
--memprofilerate value Turn on memory profiling with the given rate (default: 524288)
--blockprofilerate value Turn on block profiling with the given rate (default: 0)
--cpuprofile value Write CPU profile to the given file
--trace value Write execution trace to the given file
WHISPER (EXPERIMENTAL) OPTIONS:
--shh Enable Whisper
--shh.maxmessagesize value Max message size accepted (default: 1048576)
--shh.pow value Minimum POW accepted (default: 0.2)
DEPRECATED OPTIONS:
--fast Enable fast syncing through state downloads
--light Enable light client mode
MISC OPTIONS:
--help, -h show help
COPYRIGHT:
Copyright 2013-2017 The go-ethereum Authors
@UGatgithub
Copy link

UGatgithub commented Feb 26, 2018

  1. When starting geth 1.8.1 stable in full or fast mode we find nowadays:
    Maximum peer count ETH=25 LES=0 total=25

I expect that means
--lightpeers value Maximum number of LES client peers (default: 20) is wrong,
default: 0 would be correct.

Or do I understand it wrong?

  1. When starting geth 1.8.1 stable in light mode we find nowadays:
    Maximum peer count ETH=0 LES=100 total=25

What’s the logic here? Why is total 25 when LES is 100?

@magic990619
Copy link

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)

--miner.gastarget value        (default: 0)
      Target gas floor for mined blocks (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.

--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.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)

ETHASH

--ethash.cachedir value
      Directory to store the ethash verification caches (default = inside the datadir)

--ethash.cachesinmem value     (default: 2)
      Number of recent ethash caches to keep in memory (16MB each)

--ethash.cacheslockmmap        (default: false)
      Lock memory maps of recent ethash caches

--ethash.cachesondisk value    (default: 3)
      Number of recent ethash caches to keep on disk (16MB each)

--ethash.dagdir value          (default: C:\Users\TST\AppData\Local\Ethash)
      Directory to store the ethash mining DAGs

--ethash.dagsinmem value       (default: 1)
      Number of recent ethash mining DAGs to keep in memory (1+GB each)

--ethash.dagslockmmap          (default: false)
      Lock memory maps for recent ethash mining DAGs

--ethash.dagsondisk value      (default: 2)
      Number of recent ethash mining DAGs to keep on disk (1+GB each)

ETHEREUM

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

--config value
      TOML configuration file

--datadir value                (default: C:\Users\TST\AppData\Local\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)

--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

--kiln                         (default: false)
      Kiln network: pre-configured proof-of-work to proof-of-stake test network

--mainnet                      (default: false)
      Ethereum mainnet

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

--override.terminaltotaldifficulty value (default: 0)
      Manually specify TerminalTotalDifficulty, overriding the bundled setting

--override.terminaltotaldifficultypassed (default: false)
      Manually specify TerminalTotalDifficultyPassed, overriding the bundled setting

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

--ropsten                      (default: false)
      Ropsten network: pre-configured proof-of-stake 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.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           (default: "127.0.0.1")
      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

MINER

--mine                         (default: false)
      Enable mining

--miner.etherbase value        (default: "0")
      Public address for block mining rewards (default = first account)

--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.notify value
      Comma separated HTTP URL list to notify of new work packages

--miner.notify.full            (default: false)
      Notify with pending block headers instead of work packages

--miner.noverify               (default: false)
      Disable remote sealing verification

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

--miner.threads value          (default: 0)
      Number of CPU threads to use for mining

MISC

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

--ignore-legacy-receipts       (default: false)
      Geth will start up even if there are legacy receipts in freezer

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|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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment