Geth 命令
2019-02-18 本文已影响15人
小朴同学
命令详情及翻译
-
geth 就是go-ethereum的命令行接口
-
使用形式: geth [options] command [command options] [arguments...]
-
当前版本: 1.7.2-stable-1db4ecdc
-
命令参数(command)
// 管理账户 account Manage accounts // 启动交互式JavaScript环境(连接到节点) attach Start an interactive JavaScript environment (connect to node) // 打开浏览器并进入提交问题界面 bug opens a window to report a bug on the geth repo // 启动交互式JavaScript环境 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文件 js Execute the specified JavaScript files // 显示许可证信息 license Display license information // 产生ethash验证缓存(测试) makecache Generate ethash verification cache (for testing) // ethash挖掘生成DAG(测试) 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
// TOML的配置文件 --config value TOML configuration file // "/Users/zsk/Library/Ethereum" 就是创建Ethereum文件夹和在其下创建数据库和密钥存储库的相应文件和 也可以是其他任何你想放置的位置以及文件以及文件名 --datadir "/Users/zsk/Library/Ethereum" Data directory for the databases and keystore // 密钥文件文件(默认在datadir文件夹下) --keystore Directory for the keystore (default = inside the datadir) --nousb Disables monitoring for and managing USB hardware wallets // 网络标识符,长整型,默认是1 --networkid value Network identifier (integer, 1=Frontier, 2=Morden (disused), 3=Ropsten, 4=Rinkeby) (default: 1) // Ropsten网络:预配置工作证明的测试网络 --testnet Ropsten network: pre-configured proof-of-work test network // Rinkeby网络: 预配置权威证明的测试网络 --rinkeby Rinkeby network: pre-configured proof-of-authority test network // 开发者模式(预先配置的带有多个调试标志的专用网络) --dev Developer mode: pre-configured private network with several debugging flags // 区块链同步模式:fast,full,light --syncmode "fast" Blockchain sync mode ("fast", "full", or "light") // 报告ethstats服务器的url,例如:(nodename:secret@host:port) --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) // LES客户端最大可以用的节点(默认是20) --lightpeers value Maximum number of LES client peers (default: 20) --lightkdf Reduce key-derivation RAM & CPU usage at some expense of KDF strength
- 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 "/Users/zsk/.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: 4) --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
- ETHEREUM OPTIONS
-
真实配置过程
1. geth --datadir "/Users/zsk/Library/Ethereum" --dev 解析: --datadir "/Users/zsk/Library/Ethereum" 就是创建数据库和密钥存储库的相应文件和Ethereum文件夹 --dev 开发者模式(预先配置的带有多个调试标志的专用网络) error: Fatal: Error starting protocol stack: database already contains an incompatible genesis block (have d4e56740f876aef8, new e5be92145a301820). 暂未找到解决方案,但是不影响测试 2. geth --dev console 2>>file_to_log_output 解析: --dev 开发者模式 console 启动交互式JavaScript环境 该命令会打开geth控制台,同时在当前命令行所在的文件目录下生成一个叫做file_to_log_output的日志文件,一些操作打印日志会直接记录在这个文件中 3. geth控制台操作 eth.accounts // 查看当前用户,返回值为一个数组 personal.newAccount('密码') // 创建一个新的用户 user1 = eth.accounts[0] // 把数组的第一个值赋予user1 eth.getBalance(user1) // 查询这个账户的余额 miner.start() // 开始挖矿 miner.stop() // 停止挖矿 personal.unlockAccount(user1,'123456') // 解锁用户1 eth.sendTransaction({from: user1, to: user2, value:web3.toWei(3,'ether')}) // user1 向 user2 转3个币 // 现在去查询user2余额还是为0,每次交易的确认,其实都是需要挖矿的,也就是被其他矿工共识确认,然后才能加入区块链的账本中 // 所以在此挖矿 miner.start() // 开始挖矿 miner.stop() // 过一会停止挖矿 // 此时在查询,就会发现user2中有3个币 eth.getBalance(user2)
-
完整geth命令介绍如下
bogon:~ zsk$ geth help .....