geth
geth
是以太坊的golang
客户端工具. 通过运行geth, 我们可以参与以太坊的网络。具体说来,我们可以通过运行geth
来做以下几样事情
- eth挖矿(虽然不是最经济的方式)
- 在两个eth地址之间转账
- 创建智能合约并发送交易
- 查看block历史
- 其他
管理账号
$ 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文件的位置为
- MacOS:
~/Library/Ethereum
- Linux:
~/.ethereum
- Windows:
%APPDATA%\Ethereum
而文件名对应的格式为UTC--<created_at UTC ISO8601>-<address hex>
,比如上面例子里的UTC--2017-12-20T19-11-58.091893000Z--64547ad5bb1b63c79ffedbb0b07282d4bf079204
。
运行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})
网友评论