以太坊开发基础(6)geth命令
Geth在以太坊智能合约开发中最常用的工具(必备开发工具),一个多用途的命令行工具。
熟悉Geth可以让我们有更好的效率,大家可收藏起来作为Geth命令用法手册。 本文主要是对geth help的翻译,基于最新的geth 1.7.3-stable版本。
命令用法
geth [选项] 命令 [命令选项] [参数…] // 例如 geth --identity "TestNode1" --datadir "data0" --rpc --rpcapi "db,eth,net,web3" --rpcaddr "127.0.0.1" --rpcport "8545" --port "30304" --networkid "29382" console
命令:
account // 管理账户 attach // 启动交互式JavaScript环境(连接到节点) bug // 上报bug Issues console // 启动交互式JavaScript环境 copydb // 从文件夹创建本地链 dump // Dump(分析)一个特定的块存储 dumpconfig // 显示配置值 export // 导出区块链到文件 import // 导入一个区块链文件 init // 启动并初始化一个新的创世纪块 js // 执行指定的JavaScript文件(多个) license // 显示许可信息 makecache // 生成ethash验证缓存(用于测试) makedag // 生成ethash 挖矿DAG(用于测试) monitor // 监控和可视化节点指标 removedb// 删除区块链和状态数据库 version // 打印版本号 wallet // 管理Ethereum预售钱包 help,h // 显示一个命令或帮助一个命令列表
ETHEREUM选项:
--config value // TOML 配置文件 --datadir “xxx” // 数据库和keystore密钥的数据目录 --keystore // keystore存放目录(默认在datadir内) --nousb // 禁用监控和管理USB硬件钱包 --networkid value // 网络标识符(整型, 1=Frontier, 2=Morden (弃用), 3=Ropsten, 4=Rinkeby) (默认: 1) --testnet Ropsten // 网络:预先配置的POW(proof-of-work)测试网络 --rinkeby Rinkeby // 网络: 预先配置的POA(proof-of-authority)测试网络 --syncmode "fast" // 同步模式 ("fast", "full", or "light") --ethstats value // 上报ethstats service URL (nodename:secret@host:port) --identity value // 自定义节点名 --lightserv value // 允许LES请求时间最大百分比(0 – 90)(默认值:0) --lightpeers value // 最大LES client peers数量(默认值:20) --lightkdf // 在KDF强度消费时降低key-derivation RAM&CPU使用
开发者(模式)选项:
--dev // 使用POA共识网络,默认预分配一个开发者账户并且会自动开启挖矿。 --dev.period value // 开发者模式下挖矿周期 (0 = 仅在交易时) (默认: 0)
ETHASH 选项:
--ethash.cachedir // ethash验证缓存目录(默认 = datadir目录内) --ethash.cachesinmem value // 在内存保存的最近的ethash缓存个数 (每个缓存16MB ) (默认: 2) --ethash.cachesondisk value // 在磁盘保存的最近的ethash缓存个数 (每个缓存16MB) (默认: 3) --ethash.dagdir "" // 存ethash DAGs目录 (默认 = 用户hom目录) --ethash.dagsinmem value // 在内存保存的最近的ethash DAGs 个数 (每个1GB以上) (默认: 1) --ethash.dagsondisk value // 在磁盘保存的最近的ethash DAGs 个数 (每个1GB以上) (默认: 2)
交易池选项:
--txpool.nolocals // 为本地提交交易禁用价格豁免 --txpool.journal value // 本地交易的磁盘日志:用于节点重启 (默认: "transactions.rlp") --txpool.rejournal value // 重新生成本地交易日志的时间间隔 (默认: 1小时) --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 // 非可执行交易最大入队时间(默认: 3小时)
性能调优的选项:
--cache value // 分配给内部缓存的内存MB数量,缓存值(最低16 mb /数据库强制要求)(默认:128) --trie-cache-gens value // 保持在内存中产生的trie node数量(默认:120)
帐户选项:
--unlock value // 需解锁账户用逗号分隔 --password value // 用于非交互式密码输入的密码文件
API和控制台选项:
--rpc // 启用HTTP-RPC服务器 --rpcaddr value // HTTP-RPC服务器接口地址(默认值:“localhost”) --rpcport value // HTTP-RPC服务器监听端口(默认值:8545) --rpcapi value // 基于HTTP-RPC接口提供的API --ws // 启用WS-RPC服务器 --wsaddr value // WS-RPC服务器监听接口地址(默认值:“localhost”) --wsport value // WS-RPC服务器监听端口(默认值:8546) --wsapi value // 基于WS-RPC的接口提供的API --wsorigins value // websockets请求允许的源 --ipcdisable // 禁用IPC-RPC服务器 --ipcpath // 包含在datadir里的IPC socket/pipe文件名(转义过的显式路径) --rpccorsdomain value // 允许跨域请求的域名列表(逗号分隔)(浏览器强制) --jspath loadScript // JavaScript加载脚本的根路径(默认值:“.”) --exec value // 执行JavaScript语句(只能结合console/attach使用) --preload value // 预加载到控制台的JavaScript文件列表(逗号分隔)
网络选项:
--bootnodes value // 用于P2P发现引导的enode urls(逗号分隔)(对于light servers用v4+v5代替) --bootnodesv4 value // 用于P2P v4发现引导的enode urls(逗号分隔) (light server, 全节点) --bootnodesv5 value // 用于P2P v5发现引导的enode urls(逗号分隔) (light server, 轻节点) --port value // 网卡监听端口(默认值:30303) --maxpeers value // 最大的网络节点数量(如果设置为0,网络将被禁用)(默认值:25) --maxpendpeers value // 最大尝试连接的数量(如果设置为0,则将使用默认值)(默认值:0) --nat value // NAT端口映射机制 (any|none|upnp|pmp|extip:) (默认: “any”) --nodiscover // 禁用节点发现机制(手动添加节点) --v5disc // 启用实验性的RLPx V5(Topic发现)机制 --nodekey value // P2P节点密钥文件 --nodekeyhex value // 十六进制的P2P节点密钥(用于测试)
矿工选项:
--mine // 打开挖矿 --minerthreads value // 挖矿使用的CPU线程数量(默认值:8) --etherbase value // 挖矿奖励地址(默认=第一个创建的帐户)(默认值:“0”) --targetgaslimit value // 目标gas限制:设置最低gas限制(低于这个不会被挖?) (默认值:“4712388”) --gasprice value // 挖矿接受交易的最低gas价格 --extradata value // 矿工设置的额外块数据(默认=client version)
GAS价格选项:
--gpoblocks value // 用于检查gas价格的最近块的个数 (默认: 10) --gpopercentile value // 建议gas价参考最近交易的gas价的百分位数,(默认: 50)
虚拟机的选项:
--vmdebug // 记录VM及合约调试信息
日志和调试选项:
--metrics // 启用metrics收集和报告 --fakepow // 禁用proof-of-work验证 --verbosity value // 日志详细度:0=silent, 1=error, 2=warn, 3=info, 4=debug, 5=detail (default: 3) --vmodule value // 每个模块详细度:以 =的逗号分隔列表 (比如 eth/*=6,p2p=5) --backtrace value // 请求特定日志记录堆栈跟踪 (比如 “block.go:271”) --debug // 突出显示调用位置日志(文件名及行号) --pprof // 启用pprof HTTP服务器 --pprofaddr value pprof // HTTP服务器监听接口(默认值:127.0.0.1) --pprofport value pprof // HTTP服务器监听端口(默认值:6060) --memprofilerate value // 按指定频率打开memory profiling (默认:524288) --blockprofilerate value // 按指定频率打开block profiling (默认值:0) --cpuprofile value // 将CPU profile写入指定文件 --trace value // 将execution trace写入指定文件
WHISPER实验选项:
--shh // 启用Whisper --shh.maxmessagesize value // 可接受的最大的消息大小 (默认值: 1048576) --shh.pow value // 可接受的最小的POW (默认值: 0.2)
弃用选项:
--fast // 开启快速同步 --light // 启用轻客户端模式
其他选项:
–help, -h // 显示帮助