> For the complete documentation index, see [llms.txt](https://docs.anshun.tech/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.anshun.tech/kai-fa-can-kao/geth-ming-ling-xing-xuan-xiang.md).

# Geth 命令行选项

Geth 是最常用的以太坊客户端之一，使用它可以运行本区块链平台的节点，验证交易等。

本文介绍了 Geth 命令的用法和参数。更多的使用方法请参考完整的 [Geth 文档](https://geth.ethereum.org/docs/)。

## 英文原文参考

本文基于以太坊官方文档，原英文文档请参考 [Geth Command-line Options](https://geth.ethereum.org/docs/interface/command-line-options)。

## 使用方法

### 用法

```shell
geth [选项] [命令] [命令选项] [参数...]
```

### 版本

```bash
   1.10.4
```

### 命令

```bash
   account                            管理账户
   attach                             启动交互式JavaScript环境(连接到节点)
   console                            启动交互式JavaScript环境
   db                                 低层数据库操作
   dump                               将指定区块从存储中转储
   dumpconfig                         显示配置值
   dumpgenesis                        将创世区块JSON配置转储至标准输出设备
   export                             将区块链导出为文件
   export-preimages                   将原像数据库导出为RLP stream
   genesisTool                        一组辅助本区块链创世区块配置的命令
   import                             导入一个区块链文件
   import-preimages                   从一个RLP stream导入原像
   init                               引导并初始化一个新的创世块
   js                                 执行指定的多个JavaScript文件
   license                            显示许可信息
   makecache                          生成ethash验证缓存(用于测试)
   makedag                            生成ethash挖矿DAG文件(用于测试)
   removedb                           移除区块链和状态数据库
   show-deprecated-flags              显示已弃用的flags
   snapshot                           基于快照的一组命令
   version                            打印版本号
   version-check                      (在线)查询当前版本是否存在已知的安全漏洞 
   wallet                             管理Ethereum预售钱包
   help, h                            显示命令列表，或使用help显示一个命令
```

### 以太坊选项

```bash
  --config value                      TOML配置文件
  --datadir value                     数据库和keystore密钥的数据目录 (默认: "/Users/zhaochen/Library/Ethereum")
  --datadir.ancient value             历史链数据存放目录 (默认 = 在chaindata内)
  --datadir.minfreedisk value         最小可用磁盘空间(MB)达到设定值自动关闭(默认 = --cache.gc 转换成MB, 0 = 关闭)
  --keystore value                    keystore存放目录(默认 = 在datadir内)
  --usb                               启用监控和管理USB硬件钱包
  --pcscdpath value                   smartcard daemon (pcscd) socket文件的路径
  --networkid value                   显式地设置网络id(整型)(测试网则使用 --ropsten, --rinkeby, --goerli) (默认: 1)
  --mainnet                           以太坊主网
  --goerli                            Görli网络：预先配置的PoA(proof-of-authority)测试网络
  --rinkeby                           Rinkeby网络：预先配置的PoA(proof-of-authority)测试网络
  --baikal                            Bailkal网络：预先配置的PoA(proof-of-authority)临时测试网络
  --ropsten                           Ropsten网络：预先配置的PoW(proof-of-work)测试网络
  --syncmode value                    区块链同步模式 ("fast", "full", "snap" or "light")(默认: fast)
  --exitwhensynced                    区块同步完成后退出
  --gcmode value                      区块链garbage收集模式 ("full", "archive") (默认: "full")
  --txlookuplimit value               最近维护的交易索引所在的区块数量 (默认 = 约一年, 0 = 整条链) (默认: 2350000)
  --ethstats value                    配置ethstats报表服务的URL(nodename:secret@host:port)
  --identity value                    自定义节点名称
  --lightkdf                          通过降低KDF强度来降低密钥衍生对的RAM和CPU使用
  --whitelist value                   区块编号和哈希的映射，用逗号隔开 (<编号>=<哈希>)
```

### 轻客户端选项

```bash
  --light.serve value                 服务LES请求可使用的最多时间(百分比)(多线处理时此值可超过100) (默认: 0)
  --light.ingress value               服务轻客户端的输入带宽限制(千字节/秒, 0 = 不限) (默认: 0)
  --light.egress value                服务轻客户端的输出带宽限制(千字节/秒, 0 = 不限) (默认: 0)
  --light.maxpeers value              最多能服务的，或能加入轻服务器进程的轻客户端(默认: 100)
  --ulc.servers value                 可信超轻服务器列表
  --ulc.fraction value                需要声明新区块头的可信超轻服务器的百分比 (默认: 75)
  --ulc.onlyannounce                  超轻服务器只发送announcement声明
  --light.nopruning                   禁用历史的轻链数据修剪
  --light.nosyncserve                 启用轻客户端同步前的服务
```

### 开发者链选项

```bash
  --dev                               暂时使用POA共识网络，分配一个已存入费用的开发者账户并且开启挖矿
  --dev.period value                  开发者模式下挖矿周期 (0 = 只在交易进行中时挖矿) (默认: 0)
```

### ETHASH 选项

```bash
  --ethash.cachedir value             ethash验证缓存目录(默认 = datadir目录内)
  --ethash.cachesinmem value          在内存保存的最近的ethash缓存个数 (每个缓存16MB ) (默认: 2)
  --ethash.cachesondisk value         在磁盘保存的最近的ethash缓存个数 (每个缓存16MB) (默认: 3)
  --ethash.cacheslockmmap             锁定内存映射中最近的ethash缓存
  --ethash.dagdir value               存储ethash挖矿DAG文件的目录 (默认: "/Users/zhaochen/Library/Ethash")
  --ethash.dagsinmem value            最近保存在内存的ethash挖矿DAG文件个数 (每个1GB以上) (默认: 1)
  --ethash.dagsondisk value           最近保存在磁盘的ethash挖矿DAG文件个数 (每个1GB以上) (默认: 2)
  --ethash.dagslockmmap               锁定内存映射中最近的ethash挖矿DAG文件
```

### 交易池选项

```
  --txpool.locals value               可被当做本地帐户的帐户列表(no flush, priority inclusion)，用逗号隔开
  --txpool.nolocals                   禁用本地提交交易的价格豁免
  --txpool.journal value              本地交易的磁盘日志，用于节点重启 (默认: "transactions.rlp")
  --txpool.rejournal value            重新生成本地交易日志的时间间隔 (默认: 1h0m0s)
  --txpool.pricelimit value           加入交易池的最小的gas价格限制 (默认: 1)
  --txpool.pricebump value            价格波动百分比，产生时可以取代已有交易 (默认: 10)
  --txpool.accountslots value         每个帐户最少要有的可执行交易槽数量 (默认: 16)
  --txpool.globalslots value          所有帐户总共最多可有的可执行交易槽数量 (默认: 4096)
  --txpool.accountqueue value         每个帐户最多可有的不可执行交易槽数量 (默认: 64)
  --txpool.globalqueue value          所有帐户总共最多可有的不可执行交易槽数量 (默认: 1024)
  --txpool.lifetime value             非可执行交易最大入队时间 (默认: 3h0m0s)
```

### 性能优化选项

```bash
  --cache value                       分配给内部缓存的内存MB数量 (默认 = 4096 主网全节点, 128 轻节点) (默认: 1024)
  --cache.database value              分配给数据库io的缓存内存百分比 (默认: 50)
  --cache.trie value                  分配给trie缓存的缓存内存百分比 (默认 = 15% 完整模式, 30% 归档模式) (默认: 15)
  --cache.trie.journal value          存储trie缓存的磁盘日志目录，用于节点重启 (默认: "triecache")
  --cache.trie.rejournal value        重新生成trie缓存日志的时间间隔 (默认: 1h0m0s)
  --cache.gc value                    分配给修剪trie的缓存内存百分比 (默认 = 25% 完整模式, 0% 归档模式) (默认: 25)
  --cache.snapshot value              分配给快照缓存的缓存内存百分比 (默认 = 10% 完整模式, 20% 归档模式) (默认: 10)
  --cache.noprefetch                  在区块导入时禁用启发式状态预读取 (减少CPU和磁盘IO, 等待数据时间更长)
  --cache.preimages                   启用为trie密钥记录SHA3/keccak原像
```

### 帐户选项

```bash
  --unlock value                      待解锁帐户列表，用逗号隔开
  --password value                    用于非交互式密码输入的密码文件
  --signer value                      外部签名方 (url或ipc文件路径)
  --allow-insecure-unlock             当http暴露与帐户相关的RPC时，允许解锁不安全的帐户
```

### **API和控制台选项** <a href="#api-e5-92-8c-e6-8e-a7-e5-88-b6-e5-8f-b0-e9-80-89-e9-a1-b9" id="api-e5-92-8c-e6-8e-a7-e5-88-b6-e5-8f-b0-e9-80-89-e9-a1-b9"></a>

```bash
  --ipcdisable                        禁用IPC-RPC服务器
  --ipcpath value                     在datadir中的IPC socket/pipe文件名(显式路径则转义）
  --http                              启用HTTP-RPC服务器
  --http.addr value                   HTTP-RPC服务器监听接口 (默认: "localhost")
  --http.port value                   HTTP-RPC服务器监听端口 (默认: 8545)
  --http.api value                    基于HTTP-RPC接口提供的API
  --http.rpcprefix value              提供JSON-RPC的HTTP路径前缀。用 '/' 表示为所有路径提供服务。
  --http.corsdomain value             可从列表中的域接收跨源请求，用逗号隔开(浏览器强制)
  --http.vhosts value                 可从列表中的虚拟主机名接收跨源请求，用逗号隔开(浏览器强制) 。接受'*'通配符。(默认: "localhost")
  --ws                                启用WS-RPC服务器
  --ws.addr value                     WS-RPC服务器监听接口 (默认: "localhost")
  --ws.port value                     WS-RPC服务器监听端口 (默认: 8546)
  --ws.api value                      基于WS-RPC接口提供的API
  --ws.rpcprefix value                提供JSON-RPC的HTTP路径前缀。用 '/' 表示为所有路径提供服务。
  --ws.origins value                  websockets请求允许的源
  --graphql                           在the HTTP-RPC服务器上启用GraphQL。GraphQL只能在HTTP服务器开启的情况下启动。
  --graphql.corsdomain value          可从列表中的域接收跨源请求，用逗号隔开(浏览器强制)
  --graphql.vhosts value              可从列表中的虚拟主机名接收请求，用逗号隔开(服务器强制)。 接受'*'通配符。 (默认: "localhost")
  --rpc.gascap value                  为 eth_call/estimateGas 调用设置gas限制 (0=不限) (默认: 25000000)
  --rpc.txfeecap value                为可以通过RPC API发送的交易设置手续费 (比太币表示) 限制 (0 = 不限) (默认: 1)
  --rpc.allow-unprotected-txs         允许未加保护的(没有EIP155签名)交易通过RPC提交
  --jspath loadScript                 JavaScript加载脚本的根路径 (默认: ".")
  --exec value                        执行JavaScript语句
  --preload value                     预加载到控制台的JavaScript文件列表，用逗号隔开
```

### 网络选项

```bash
  --bootnodes value                   用于P2P发现引导的enode URL，用逗号分隔
  --discovery.dns value               设定DNS发现接入点(用 "" 关闭DNS)
  --port value                        网络监听端口 (默认: 30303)
  --maxpeers value                    最大网络peer节点数量 (设为 0 则停用网络) (默认: 50)
  --maxpendpeers value                最大尝试连接的数量 (设为 0 则使用默认值) (默认: 0)
  --nat value                         NAT端口映射机制 (any|none|upnp|pmp|extip:<IP>) (默认: "any")
  --nodiscover                        禁用peer节点发现机制(手动添加peer节点)
  --v5disc                            启用实验性的RLPx V5(Topic发现)机制
  --netrestrict value                 限制指定IP网络的通信(CIDR masks)
  --nodekey value                     P2P节点密钥文件
  --nodekeyhex value                  十六进制的P2P节点密钥(用于测试)
```

### 矿工选项

```bash
  --mine                              开启挖矿
  --miner.threads value               挖矿使用的CPU线程数量 (默认: 0)
  --miner.notify value                用来通知新的工作包的HTTP URL列表，用逗号隔开
  --miner.notify.full                 使用挂起块区块头通知代替工作包通知
  --miner.gasprice value              挖矿接受交易的最低gas价格(默认: 1000000000)
  --miner.gastarget value             挖出块的最低目标gas (默认: 8000000)
  --miner.gaslimit value              挖出块的最高目标gas (默认: 8000000)
  --miner.etherbase value             接收挖矿奖励的公开地址(public address)(默认 = 第一个帐户)(默认: "0")
  --miner.extradata value             矿工设置的额外块数据(默认 = client version)
  --miner.recommit value              重新生成已挖区块的时间间隔(默认: 1s)
  --miner.noverify                    禁用远程sealing验证
```

### Gas价格预言机选项

```bash
  --gpo.blocks value                  用于检查gas价格的最近块的个数 (默认: 20)
  --gpo.percentile value              设置最近交易的gas价格的百分位数，用于设置建议gas价格 (默认: 60)
  --gpo.maxprice value                Gas价格预言机推荐的最大gas价格 (默认: 500000000000)
  --gpo.ignoreprice value             Gas价格低于该值时预言机将忽略交易 (默认: 2)
```

### 虚拟机选项

```bash
  --vmdebug                           记录对VM及合约调试有用的信息
  --vm.evm value                      外部EVM配置 (默认 = built-in interpreter)
  --vm.ewasm value                    外部ewasm配置(默认 = built-in interpreter)
```

### **日志和调试选项** <a href="#e6-97-a5-e5-bf-97-e5-92-8c-e8-b0-83-e8-af-95-e9-80-89-e9-a1-b9" id="e6-97-a5-e5-bf-97-e5-92-8c-e8-b0-83-e8-af-95-e9-80-89-e9-a1-b9"></a>

```bash
  --fakepow                           禁用proof-of-work验证
  --nocompaction                      导入后取消数据库压缩
  --verbosity value                   日志详细度: 0=silent, 1=error, 2=warn, 3=info, 4=debug, 5=detail (默认: 3)
  --vmodule value                     每个模块详细度: 以逗号分隔的 <pattern>=<level> 列表 (例如 eth/*=5,p2p=4)
  --log.json                          将日志转为JSON格式
  --log.backtrace value               请求特定日志statement的堆栈跟踪 (例如 "block.go:271")
  --log.debug                         通过调用点位置前置日志消息 (文件及行号)
  --pprof                             启用pprof HTTP服务器
  --pprof.addr value                  pprof HTTP服务器监听接口(默认: "127.0.0.1")
  --pprof.port value                  pprof HTTP服务器监听端口(默认: 6060)
  --pprof.memprofilerate value        按指定频率打开memory profiling(默认: 524288)
  --pprof.blockprofilerate value      按指定频率打开block profiling(默认: 0)
  --pprof.cpuprofile value            将CPU profile写入指定文件
  --trace value                       将execution trace写入指定文件
```

### 探针（metrics）和数据选项

```bash
  --metrics                           启用metrics收集和报告
  --metrics.expensive                 启用expensive metrics收集和报告
  --metrics.addr value                启用独立metrics HTTP服务器监听接口 (默认: "127.0.0.1")
  --metrics.port value                Metrics HTTP 服务器监听端口 (默认: 6060)
  --metrics.influxdb                  开启metrics导出/到外部InfluxDB数据库
  --metrics.influxdb.endpoint value   向此InfluxDB API 端点报告metrics (默认: "http://localhost:8086")
  --metrics.influxdb.database value   接收metrics报告的InfluxDB数据库名称(默认: "geth")
  --metrics.influxdb.username value   用于授权访问数据库的用户名 (默认: "test")
  --metrics.influxdb.password value   用于授权访问数据库的密码 (默认: "test")
  --metrics.influxdb.tags value       所有InfluxDB measurement的tags (key/values)，用逗号隔开 (默认: "host=localhost")
```

### ALIASED （弃用）选项

```bash
  --nousb                             禁用USB硬件钱包的监控和管理 (弃用)
  --rpc                               启用HTTP-RPC服务器 (弃用且于2021年6月移除，使用 --http)
  --rpcaddr value                     HTTP-RPC服务器监听接口 (弃用且于2021年6月移除，使用 --http.addr) (默认: "localhost")
  --rpcport value                     HTTP-RPC服务器监听端口 (弃用且于2021年6月移除，使用 --http.port) (默认: 8545)
  --rpccorsdomain value               可从列表中的域接收跨源请求，用逗号隔开(浏览器强制) (弃用且于2021年6月移除，使用 --http.corsdomain)
  --rpcvhosts value                   可从列表中的虚拟主机名接收请求，用逗号隔开(服务器强制)。 接受'*'通配符。(弃用且于2021年6月移除，使用 --http.vhosts) (默认: "localhost")
  --rpcapi value                      基于HTTP-RPC接口提供的API (弃用且于2021年6月移除，使用 --http.api)
```

### MISC 选项

```bash
  --snapshot                          启用snapshot-database模式 (默认 = 启用)
  --bloomfilter.size value            分配给布隆过滤器进行修剪（pruning）的内存MB数量(默认: 2048)
  --help, -h                          显示帮助
  --catalyst                          Catalyst模式(eth2集成测试)
  --override.london value             手动设定伦敦硬分叉区块，覆盖bundled设置 (默认: 0)
```

### 版权

```bash
 Copyright 2013-2021 The go-ethereum Authors
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.anshun.tech/kai-fa-can-kao/geth-ming-ling-xing-xuan-xiang.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
