- 在安装好Geth客户端后,用户可以在操作系统命令行状态下使用geth命令。
geth常用命令:
geth account new//在命令行客户端创建新用户
geth account list//列出用户当前所使用的密钥文件中的账户
geth console//启动命令行模式,可以在Geth中执行命令
geth console 2>>geth.log //表示将日志输出到geth.log,打开另外一个控制台执行tail -f 查看日志
geth的常用参数使用示例:
geth --identity "MyNodeName" --rpc --rpcport "8080" --rpccorsdomain "*" --datadir "C:\chains\TestChain1" --port "30303" --nodiscover --rpcapi "db,eth,net,Web3" --networkid 1999 init /path/to/CustomGenesis.json
示例说明:
--identity //为用户的节点创建一个标示名,以便在一系列peer节点列表中准确识别用户的节点
--rpc //启动rpc通信
--rpcport //连接rpc的端口,默认为8545
--rpccorsdomain //指定什么url能连接到你的节点执行rpc定制端任务,如果输入的是“*”,则任何url都可以连接到你的rpc实例
--datadir //当前区块数据存放的位置
--port //网络监听端口,默认30303
--nodiscover //表示该链禁止被其他节点发现
--rpcapi //设置允许连接rpc的客户端,一般为db,eth,net,web3,默认使用Web3 API
--networkid //设置当前区块链的网络ID,用于区分不同的网络,是一个数字
--init //指定创世块文件的位置,并创建创世块
其他参数
参数名 | 描述 |
---|---|
rpcaddr | 连接rpc的地址,默认为localhost |
maxpeers | 设置最大peer节点,可以设置为确定将与用户节点连接的节点数量。 |
fast | 快速下载区块链数据,让以太坊客户端不用下载加以数据而仅同步区块头的状态数据而快速同步。这个标识只能在一开始同步区块链时运行,由于安全原因,仅在用户第一次下载区块链时使用【可在使用这个参数前把区块链数据存储目录(chaindata)整个删除】 |
cache=1024 | 分配到内部缓存的千兆内存(最少16MB/数据库)。默认是16MB,所以根据你的电脑内存的大小,增加到256、512、1024(1GB)或2048(2GB)会有所不同 |
jitvm | 这个标志可以激活JITVM |
完整的控制台命令示例 | geth --fast --cache=1024 --jitvm console |
- Javascript Console内置对象:
eth:包含一些跟操作区块链相关的方法
> eth.accounts//查看账户
> eth.getBalance(eth.accounts[0])//查看余额
> eth.coinbase//矿工的账户
> eth.getBalance(eth.accounts[0])//余额
> eth.blockNumber//查看当前区块总数
> eth.getBlock(100)//通过区块号查看区块
> eth.getTransaction("0xc6ac7ec7f0e3fe331ced1be961577951fa742690d7cc6973586f24a9f250b866")//通过交易hash查看交易
net:包含以下查看p2p网络状态的方法
> net.peerCount//查看连接数
> net.listening//查询当前节点是否处于侦听状态
admin:包含一些与管理节点相关的方法
> admin.nodeInfo//查看本节点enode信息
> admin.peers//当前所连接peer节点的列表
> admin.addPeer("enoode://~~~~") //加入静态节点
miner:包含启动&停止挖矿的一些方法
> miner.start(10)//开始挖矿
> miner.stop()//停止挖矿
> miner.setEtherbase(eth.accounts[1])//将其他账户设置成coinbase
> miner.start(1);admin.sleepBlocks(1);miner.stop()//挖到一个区块之后就停止挖矿
personal:主要包含一些管理账户的方法
> personal.newAccount()//创建新账户
> personal.unlockAccount(eth.accounts[0])//解锁账户
txpool:包含一些查看交易内存池的方法
> txpool.status//查看交易
web3:包含了以上对象,还包含一些单位换算的方法
> web3.fromWei(eth.getBalance(eth.accounts[0]),'ether')//将返回值换算成以太币
> eth.sendTransaction({from:eth.accounts[0],to:eth.accounts[1],value:amount})//转账