美文网首页
Geth 命令

Geth 命令

作者: 小朴同学 | 来源:发表于2019-02-18 10:48 被阅读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
        
    • 真实配置过程

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

    相关文章

      网友评论

          本文标题:Geth 命令

          本文链接:https://www.haomeiwen.com/subject/wyzgeqtx.html