gethノート
2412 ワード
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 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
~/Library/Ethereum
~/.ethereum
%APPDATA%\Ethereum
ファイル名対応フォーマットはUTC---
、例えば上記の例のUTC--2017-12-20T19-11-58.091893000Z--64547ad5bb1b63c79ffedbb0b07282d4bf079204
です.gethを実行しblock chainと同期する
例えば、geth
のコマンドラインを実行する、fast
モードでblockchainの同期を実行し、1 GBのメモリを内部キャッシュとして割り当てる.$ 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,"", 15000)
> eth.sendTransaction({from:sender, to:receiver, value: amount})
geth Javascript APIの使用
$ 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
> eth.syncing
{
currentBlock: 4932956,
highestBlock: 4933077,
knownStates: 59339,
pulledStates: 15216,
startingBlock: 4932956
}
> net.peerCount
16
この例は私のアカウントから別のアカウントに送信されます.
> var sender = eth.accounts[0];
> var receiver = eth.accounts[1];
> var amount = web3.toWei(0.01, "ether")
> // account sender15000
> web3.personal.unlockAccount(sender,"", 15000)
> eth.sendTransaction({from:sender, to:receiver, value: amount})
geth Javascript APIの使用