geth笔记

2018-01-19  本文已影响0人  apc999

geth

geth是以太坊的golang客户端工具. 通过运行geth, 我们可以参与以太坊的网络。具体说来,我们可以通过运行geth来做以下几样事情

管理账号

$ geth account list
Account #0: {64547ad5bb1b63c79ffedbb0b07282d4bf079204} keystore:///Users/apc999/Library/Ethereum/keystore/UTC--2017-12-20T19-11-58.091893000Z--64547ad5bb1b63c79ffedbb0b07282d4bf079204
Account #1: {0de3f2c4db29b5657ae59a9a43b75ab9029b54c1} keystore:///Users/apc999/Library/Ethereum/keystore/UTC--2018-01-12T08-13-32.492996000Z--0de3f2c4db29b5657ae59a9a43b75ab9029b54c1

这条命令显示出当前geth内存有的ETH账号,以及它们所对应的keystore文件的位置。在不同的OS下,keystore文件的位置为

运行geth并和block chain同步

例如:运行geth的命令行, 以fast模式运行blockchain的同步, 分配1GB内存作为内部缓存.

$ geth --syncmode fast --cache 1024 console 2>> geth.log
Welcome to the Geth JavaScript console!

instance: Geth/v1.7.3-stable/darwin-amd64/go1.9.2
coinbase: 0x62967235bbb163c89ffed8076b7282d4bf079204
at block: 5021434 (Fri, 02 Feb 2018 21:29:57 PST)
 datadir: /Users/apc999/Library/Ethereum
 modules: admin:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0

进入geth的命令行以后, 可以查看一些geth的运行状况. 几个重要的参数包括查看同步进展, 以及peer数目等

> eth.syncing
{
  currentBlock: 4932956,
  highestBlock: 4933077,
  knownStates: 59339,
  pulledStates: 15216,
  startingBlock: 4932956
}
> net.peerCount
16

发送eth

这个例子从我的一个账号发送到另一个账号

> var sender = eth.accounts[0];
> var receiver = eth.accounts[1];
> var amount = web3.toWei(0.01, "ether")
> // 解锁account sender15000秒
> web3.personal.unlockAccount(sender,"<password>", 15000)
> eth.sendTransaction({from:sender, to:receiver, value: amount})

使用geth Javascript API

上一篇 下一篇

猜你喜欢

热点阅读