Ethereumを使ってみた

  • 投稿者:
  • 投稿カテゴリー:未分類

Ethereumとは

・2015-7-30リリース
・Ethereum(パブリック型ブロックチェーン)
・マイクロソフトが開発環境を提供しているらしい
・スマートコントラクト・分散型アプリケーション(DApps)の構築プラットフォーム
・派生したプロジェクトにEris、HydraChain(エスタブリッシュ型ブロックチェーン)

ブロックチェーン情報

・ETHの残高情報等がブロックチェーンに直接記録されるアカウントがベースとなったシステム
 2種類のアカウントがある
 ・従来のビットコイン等の仮想通貨のアドレスと同様のアカウント
 ・「コントラクトアカウント(Contract Account)」と呼ばれるプログラムコードによって
  管理されるスマートコントラクト実行用のアカウント

インストール

debianで試そうとしたが、サポート外とのこと(公式フォーラムより)

root@ubuntu1404:/home/shimizu# bash <(curl -L https://install-geth.ethereum.org)
...

root@ubuntu1404:/home/shimizu# geth version
Geth
Version: 1.4.10-stable
Protocol Versions: [63 62]
Network Id: 1
Go Version: go1.5.1
OS: linux
GOPATH=
GOROOT=/usr/lib/go

テスト環境で採掘する

パーミッションド型ブロックチェーンを試せる(Ehterの挙動調査や個人的な作業に向いている)
ただしそこで得たEtherはパブリック型ブロックチェーン(Frontier)では利用できない

root@ubuntu1404:/home/shimizu# mkdir eth_data
root@ubuntu1404:/home/shimizu# geth --networkid "10" --datadir "/home/shimizu/eth_data" --olympic console
...
> personal.newAccount("shimizu")
"0x2e7f96d3251027d3b4e2d90be4f9a320e7a28f07"
> personal.newAccount("shimizu02")
"0x8e9b51319dc468e8c1ea55737ba3192f40693103"
> eth.accounts
["0x2e7f96d3251027d3b4e2d90be4f9a320e7a28f07", "0x8e9b51319dc468e8c1ea55737ba3192f40693103"]
> miner.start()
I0719 00:47:10.318491 miner/miner.go:119] Starting mining operation (CPU=1 TOT=2)
I0719 00:47:10.318831 miner/worker.go:573] commit new work on block 1 with 0 txs & 0 uncles. Took 204.305µs
true
> I0719 00:47:10.319500 eth/backend.go:454] Automatic pregeneration of ethash DAG ON (ethash dir: /root/.ethash)
I0719 00:47:10.319637 ethash.go:259] Generating DAG for epoch 0 (size 1073739904) (0000000000000000000000000000000000000000000000000000000000000000)
I0719 00:47:10.319935 eth/backend.go:461] checking DAG (ethash dir: /root/.ethash)
I0719 00:47:12.251590 ethash.go:291] Generating DAG: 0%
I0719 00:47:14.766994 ethash.go:291] Generating DAG: 1%
I0719 00:47:17.135879 ethash.go:291] Generating DAG: 2%
...

miner.stop()

### ブロックチェーンの長さ ###
> eth.blockNumber
937

### etherの持ち高確認 ###
> eth.getBalance("0x2e7f96d3251027d3b4e2d90be4f9a320e7a28f07")
1.40765625e+21

Frontierに接続してみる

アカウントの削除方法がわからなかったため、新しくディレクトリを作成して試してみた

root@ubuntu1404:/home/shimizu# mkdir eth_data_frontier
root@ubuntu1404:/home/shimizu# geth --datadir "/home/shimizu/eth_data_frontier"
...
I0719 02:01:41.677036 core/blockchain.go:963] imported 1906 block(s) (0 queued 0 ignored) ...
...

参考URL

Ethereum イーサリアム
Gethをインストールする
Ethereumをインストールしてみた。