💡
安顺链技术文档
  • 平台介绍
    • 简介
    • 架构设计
  • 开发指南
    • 快速入门
    • 最佳实践
      • 应用方数字资产集成开发最佳实践
      • 应用方最佳实践示例合约
    • 搭建网络环境
      • 节点接入安顺官方网络
    • 合约编写
      • 链上资产(NFT)合约示例
  • 开发参考
    • 开发工具
    • API
      • SDK 库
      • JSON-RPC API 参考
    • Geth 命令行选项
Powered by GitBook
On this page
  • 英文原文参考
  • 使用方法
  • 用法
  • 版本
  • 命令
  • 以太坊选项
  • 轻客户端选项
  • 开发者链选项
  • ETHASH 选项
  • 交易池选项
  • 性能优化选项
  • 帐户选项
  • API和控制台选项
  • 网络选项
  • 矿工选项
  • Gas价格预言机选项
  • 虚拟机选项
  • 日志和调试选项
  • 探针(metrics)和数据选项
  • ALIASED (弃用)选项
  • MISC 选项
  • 版权
  1. 开发参考

Geth 命令行选项

PreviousJSON-RPC API 参考

Last updated 1 year ago

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

本文介绍了 Geth 命令的用法和参数。更多的使用方法请参考完整的 。

英文原文参考

本文基于以太坊官方文档,原英文文档请参考 。

使用方法

用法

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

版本

   1.10.4

命令

   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显示一个命令

以太坊选项

  --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                   区块编号和哈希的映射,用逗号隔开 (<编号>=<哈希>)

轻客户端选项

  --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                 启用轻客户端同步前的服务

开发者链选项

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

ETHASH 选项

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

性能优化选项

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

帐户选项

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

API和控制台选项

  --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文件列表,用逗号隔开

网络选项

  --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节点密钥(用于测试)

矿工选项

  --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价格预言机选项

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

虚拟机选项

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

日志和调试选项

  --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)和数据选项

  --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 (弃用)选项

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

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

版权

 Copyright 2013-2021 The go-ethereum Authors
Geth 文档
Geth Command-line Options