メニューを閉じる

テクノデジタルグループ

メニューを開く

2017.06.01

開発環境・ツール

CentOSにEthereum開発環境を構築 – エンジニアがブロックチェーンを学んでく。その2

坂東です。

エンジニアがEthereum(イーサリアム)を勉強するには、まず動作環境を作る必要があります。
仮想通貨の方のEthereumが動いているのは、パブリックネットワーク。
開発環境はそこから切り離したプライベートネットワークに作るそうです。バグっても安心ですね。

Ethereumネットワークを動かすクライアントはいくつかあるようですが、Go言語で作られた「geth」が有名なようです。
環境を作っていきます。

 

■CentOSを準備

なんでも良いですが、わたしは「さくらのクラウド」を使います。
「CPU:2core」「メモリ:2GB」「SSD:20GB」の構成で立ち上げます。
「1Core」だとマイニングが動かず開発機に使えませんでした。

 

■Go言語をインストール
yumのはなんだか古いので、最新版を拾ってきます。

wget https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz
tar -C /usr/local -xvzf go1.8.3.linux-amd64.tar.gz
vi ~/.bashrc
末尾に以下を追加
export PATH=$PATH:/usr/local/go/bin
export GOPATH=”$HOME/work”

 

■gethをインストール
gitから最新版を拾ってきます。
けっこう仕様変更があるみたいなので、参考書ベースで学ぶ方は古いバージョンを入れた方が分かりやすいでしょう。

git clone https://github.com/ethereum/go-ethereum
cd go-ethereum
make geth
cp build/bin/geth /usr/local/bin

 

■gethを起動
データディレクトリを作って、指定して、起動。

mkdir eth_data
geth –networkid “123” –datadir “eth_data” –testnet

「–testnet」はマイニングの負荷を下げる開発機用のオプションらしいです。

色々操作するにはgethコンソールがあり、これでつなぎます。

geth attach ipc:eth_data/geth.ipc

起動時に「–console」をつけるとコンソールモードで動くので、開発ならそれが楽かもしれません。

 

■動作確認

ざっくりと。詳しくは参考書や他のページを見て下さい。

#ユーザー作成
personal.newAccount(“testuser1”)
personal.newAccount(“testuser2”)

#ロック解除
personal.unlockAccount(eth.accounts[0], “testuser1”, 0)
personal.unlockAccount(eth.accounts[1], “testuser2″, 0)

#マイニングでお金を生み出す。初期化に結構時間かかる
miner.start()

#残高確認。初期状態ではaccounts[0]にお金が溜まる
eth.getBalance(eth.accounts[0])

# 送金テスト
eth.sendTransaction({
from:eth.accounts[0],
to:eth.accounts[1],
value: web3.toWei(100,”ether”)
})

# トランザクション(送金待ち)タスクの確認。処理に時間かかる。
eth.pendingTransactions

# 残高確認
eth.getBalance(eth.accounts[0])
eth.getBalance(eth.accounts[1])

 

ここまでは仮想通貨的な動きだけですが、つぎは自分のコードを動かしていきたいと思います。

おわり。


【記事への感想募集中!】

記事への感想・ご意見がありましたら、ぜひフォームからご投稿ください!
  • こんな記事が読んでみたい、こんなことが知りたい、調べてほしい!という意見も募集中!
  • いただいた感想は今後の記事に活かしたいと思います!

感想フォームはこちら


【テクノデジタルではエンジニア/デザイナーを積極採用中です!】

下記項目に1つでも当てはまる方は是非、詳細ページへ!
  • 自分でアプリを作ってみたい
  • ITで世の中にワクワクを生み出したい
  • 使いやすさ、デザインにこだわったWebサイトを開発したい

採用情報の詳細はこちら


Qangaroo(カンガルー)

  • 徹底した見やすさと優れた操作性で、テストの「見える化」を実現。
  • テストの進捗が見える。開発がスマートに進む。
  • クラウド型テスト管理ツール『Qangaroo(カンガルー)』

【テクノデジタルのインフラサービス】

当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。

https://www.tcdigital.jp/infrastructure/

最近の記事