基本的な使用GETH

概要

GETHは直感的にイーサネット広場の動作を理解し、さらにGETHを使用してチェーンをブロックすることができる公式golangスクエアイーサネットクライアントです。

次に、アカウント、鉱業、プロセスのトランザクションを作成し、プライベートチェーンを構築するためにGETHで設定します。

プライベートチェーンを構築

プライベートチェーンを構築するために、実験には直接ETH公共チェーン上の実験は、それが本当のイーサネット通貨を消費する場合は、最初のステップであるが、実際の公共チェーン上で、パソコンは鉱山を掘ることはほとんど不可能です。

シンプルなチェーンGETH民間の建物では、最初の作成ブロックを定義する必要があり、参照:https://github.com/ethereum/go-ethereum/wiki/Private-network

genesis.json:

{
  "config": {
    "chainId": 100,
    "homesteadBlock":0,
    "eip155Block":0,
    "eip158Block":0
  },
  "nonce": "0x0000000000000042",
  "timestamp": "0x0",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "gasLimit": "0x80000000",
  "difficulty": "0x1",
  "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "coinbase": "0x3333333333333333333333333333333333333333",
  "alloc": {     }
}

一度設定、スタート

mkdir geth-test
cd geth-test
geth --datadri ./data init genesis.json

アカウントを作成します。

アカウントの作成は簡単ですが、JavaScriptコンソールのGETHログイン

geth --datadir ./data --networkid 100 console

どのたnetworkIDに構成されてgenesis.json chainId

ログインした後:

> personal.newAccount()   # 创建新的账户
> eth.accounts            # 查看目前有哪些账户

採掘

鉱業は非常に簡単です起動し、上記の操作コンソール

> miner.start()

数分間待機した後、その後、

> miner.stop() 

次のように私のテストマシン2CPU 8Gメモリ、掘る約5分、ETH掘っ:

> acc0 = eth.accounts[0]   # 这个私链上目前只有一个测试账号
> eth.getBalance(acc0)     # 这里使用 wei 作为单位
2.46e+21
> web3.fromWei(eth.getBalance(acc0), 'ether')  # 相当于 2460 个以太币
2460

プライベートチェーンイーサネット通貨に掘らこれはテスト目的であり、公共のチェーンで取引されているか、あるいは行われていません:)

トランザクション

鉱業は、あまりにもシンプルな取引は非常に簡単です、対処するために、我々はまだアカウントを作成する必要があります

> personal.newAccount()
> eth.accounts
["0xd4b42869954689395e502daa6dd9a02aa34dbaff", "0x500aaa5b196741a4c768fa972b5f16a7e0c9c1e5"]
> acc0 = eth.accounts[0]
> acc1 = eth.accounts[1]
> web3.fromWei(eth.getBalance(acc0), 'ether')   # acc0 的余额
2460
> web3.fromWei(eth.getBalance(acc1), 'ether')   # acc1 的余额
0
> val = web3.toWei(1)   # 准备转账的金额 1 eth
"1000000000000000000"

> eth.sendTransaction({from: acc0, to: acc1, value: val})     # 执行转账, 如果这里出现错误, 提示账户被锁定的话, 解锁账户
> personal.unlockAccount(acc0)                                # 解锁时, 输入创建账户时的密码
Unlock account 0xd4b42869954689395e502daa6dd9a02aa34dbaff
Password:
true

> eth.sendTransaction({from: acc0, to: acc1, value: val})     # 再次转账, 这次应该能够成功, 如果第一次就成功的话, 不需要这步

# 再次查看余额, 发现2个账户的余额没变
> web3.fromWei(eth.getBalance(acc0), 'ether')
2460
> web3.fromWei(eth.getBalance(acc1), 'ether')
0

# 余额没变, 是因为我们前面已经停止挖矿(miner.stop()), 没有矿工来确认这笔交易了
> miner.start()
> miner.stop()     # 启动10来秒左右再 stop

# 再次查看余额, acc1 账户上多了 1 个以太币, 但是 acc0的以太币不减反增, 这是因为刚才的挖矿产生的以太币以及交易手续费都给了 acc0
# 这里的挖矿时如果不指定账号, 默认会把挖到的以太币给 eth.accounts 中的第一个账号
> web3.fromWei(eth.getBalance(acc0), 'ether')
2494
> web3.fromWei(eth.getBalance(acc1), 'ether')
1

おすすめ

転載: www.cnblogs.com/wang_yb/p/11527228.html