13
12

More than 5 years have passed since last update.

ethereum nodeをたててみる

Posted at

Ethereumのノードをたてて、Smart Contractをデプロイする予定があったので
まずは、ノードをたてた時のやり方と、その時の注意点をメモ用としてまとめてみました。
尚、環境はUbuntu16.04上で構築しています。

gethのインストール

gethはEthereumのクライアントソフトウェアです。
gethのコマンドをたたくことによって、Ethereumのネットワークへの操作を行うことができるようになります。

ここを参考にしました。

$ sudo apt-get install software-properties-common
$ sudo add-apt-repository -y ppa:ethereum/ethereum
$ sudo apt-get update
$ sudo apt-get install ethereum

gethのtestnetでの起動

Ethereumのテストネットワークには何種類かあり(IDで識別されています)代表的なものは、以下です。

  1. ROPSTEN (Revived) - Proof Of Work
  2. KOVAN - Proof Of Authority (Parity only)
  3. RINKEBY - Clique Consensus (Geth only)

今回は ROPSTEN (Revived) - Proof Of Workを選択しました。

以下のコマンドで起動しました。

$ geth --testnet --fast --cache=1024 console

初回起動時には、ブロックチェーンのデータの同期が始まります。これがものすごく時間がかかります。(かなり誤算でした。)
いろんなサイトで「数時間でおわる」と言っていたのですが・・・僕の環境がいけてないせいか半日くらいかかりました。

なので、--fastオプションや--cacheオプションをつけて高速同期化しています。

尚、最近--lightオプションもでたらしいのですが、なるべくデータをローカルに保持したいこともあり、選択しませんでした。

同期の確認

基本的には console中で、今どのblock numberを処理しているのかがでてくるのですが・・
以下のコマンドをうつことで同期の進捗状況を確認することができます。

$ eth.syncing
{
  currentBlock: 処理が完了したblock,
  highestBlock: ネットワーク上の最大block,
  /* 以下略 */
}

testnetでのetherの取得

主に2つのやり方があるようです。

  1. 頑張ってminingする
  2. だれかから送金してもらう

今回は2を採用しました。
ropsten.faucet.b9lab.comにリクエストを出すと、任意のアドレスに 1eth 送金してくれるサービスを使って
ethを取得しました。
apiが公開されており、以下のようなリクエストを出すと送金されます。(便利ですね!)
※ ただ、一度に1ethまでの制約があります。

$ curl -X POST  -H "Content-Type: application/json" -d '{"toWhom":"your address here"}' https://ropsten.faucet.b9lab.com/tap
{
  "txHash" : "transaction hash here"
}

このトランザクションがマイニングされると、はれて自分のアドレスに1ethが着金されます。

データサイズの確認

$ cd .ethereum
$ du -sh ./*

ROPSTEN testnetではだいたい2.7Gを使用していました。
(fastオプションつけないともう少し大きくなると思われます。)

gethのmainnetでの起動

以下で起動できます。

$ geth --fast --cache=1024 console

おそらくしょぼいネットワーク環境がボトルネックになっているのでしょうが・・同期が全然おわりません。
想定では2日くらいかかってしまいます。。。(絶賛同期中です^^)
何か原因わかったら追記しようかと思います。

以上になります。

13
12
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
12