AWSのEC2を使ってbitcoin-abcのお手軽フルノードを作ってみよう

2018-11-21

もともと、BitcoinCoreのフルノードをOdroidというシングルボードコンピューターで稼働させていたので、BitcoinABCクライアントのインストールBitcoinSVクライアントのインストールも、同じPC上で構築して同時に起動させようとしてみた。

まあ、予想通りではあったのだけど…CoreとABCとSVのそれぞれのクライアントを同じPC上で同時に起動することはできなそうだ!

そんな気づきを得た今日2018年11月15日は、BitcoinCashのハードフォークが行われ、BCHがABCとSVに分岐するかもしれないという状況だったりする。

実際に分岐するとなると、同時に起動していないと観察することができないので、ノードの建て捨てができるAWSを使って片方のフルノード を作ってみようと思います。

今回はかなり省力バージョンでいく!

まずはEC2にインスタンスを作ろう!

AWSにログインしてEC2インスタンスを作りましょう。まだアカウント持っていないならとりあえず作っちゃいましょう。1年間の無料枠(制限あり)が使えます。

ログインしたらEC2を選択して。

インスタンスの作成を選びます。

OSはUbuntuでいいかな。無料枠の範囲だし。

インスタンスタイプを選びます。CPUとかメモリとかの選択です。t2.microなら無料枠の範囲だけど、CPUコア1、メモリ1GiBはさすがに心もとないので、t2.mediumを選びます。

t2.microでも多分動くと思います。無料枠の範囲なので試しにやってみても良かったけど、ハードフォークまでの時間があまりなくて、ダメだった場合にやり直している余裕がなさそうだったので、t2.mediumにしました。

t2.microでもswap領域作れば問題なく動くけど、ネットワーク帯域制限されてしまうようで、同期がなかなか進まない。t2.microは使わない方がいい。

次のインスタンスの詳細設定は…よくわからないからそのまま╭( ・ㅂ・)و ̑̑

次のストレージのサイズの追加は、ストレージ自体は1つでいいけど、初期値の 8GiBはさすがに少ないので、無料利用枠の対象である30GiBに設定します。

今回はフルノードだけど剪定モードで動かすので容量は少なくて問題ない。

タグの追加は別に必要ないのでそのまま次へ。

セキュリティグループの設定は…まあありがちなHTTP(80)、HTTPS(443)とbitcoinで利用するTCP(8333)だけ設定する。TCPだけでも大丈夫かも。

後から変更できるからあまり深く考えなくて大丈夫。

ここまででインスタンスを作る設定は完了。警告出ているけど、どうせすぐ消すから気にしない。右下の「作成」ボタンを押せばインスタンスが作られる。

作成ボタンを押すとキーペアの設定が出てくる。新しく作るのであれば「キーペアのダウンロード」からキーをダウンロードして大事に保管しておきましょう。

キーペアだけは暗号鍵なので、このタイミングでダウンロードしたものをなくすと復元はできなくなります。

これでインスタンスが作成される

すぐに使うので「パブリックDNS(IPv4)」に表示されているアドレスをコピーしておこう。(”ec2-13…” で始まっている値)

EC2インスタンスへの接続

EC2インスタンスへの接続は、AWS公式のサイトにOSからの接続方法が載っています。

Linux インスタンスへの接続

僕はmacを使っているのでここからはmacからの接続方法です。

まずはターミナルを立ち上げる。立ち上げ方がわからなければ、Lanchpadから検索窓に「ターミナル」とか入力すれば出てくる。

ターミナルに接続したらEC2インスタンスを作成した時に、キーペアをダウンロードしたフォルダへ移動しましょう。ダウンロードして移動していないなら “Downloads” にあります。

$ cd Downloads

キーペアの権限を変更します。

$ chmod 400 bitcoin-abc.pem

権限を変更したらsshコマンドで接続します。

$ ssh -i bitcoin-abc.pem ubuntu@ec2-13(略)
※"ec2-13(略)"の部分は「パブリックDNS(IPv4)」を入力する

途中で何か質問されるので「yes」と答えておきましょう。

繋がったら今回はもうmakeとかまどろっこしいことはする気ないので、ABCが公開しているバイナリファイルをゲットします。

※2018/11/15時点の最新。ハードフォークバージョン。

$ wget https://download.bitcoinabc.org/0.18.3/linux/bitcoin-abc-0.18.3-x86_64-linux-gnu.tar.gz

ダウンロードが完了したら解凍と展開。

$ tar -zxvf bitcoin-abc-0.18.3-x86_64-linux-gnu.tar.gz

続けてconfファイルを作成します。

$ mkdir $HOME/.bitcoin
$ touch $HOME/.bitcoin/bitcoin.conf
$ vim $HOME/.bitcoin/bitcoin.conf

# ファイルが開いたら以下を記入する
prune=10240
rpcuser=Jihan 
rpcpassword=wu

※vimコマンドで開いたファイルはキーボード ” i ” で挿入モードになるのでその状態でコピペする。保存して終了するときは “esc” キーを押して、”:wq” と入力してエンターで保存される。

※prune=10240 はブロックを保存するデータの容量をMiBで指定する。ここで指定した以上のサイズにブロックは保存されない。10240なのでマックス10GiBまで保存される。ブロック以外のデータもあるので実際に必要な容量はプラス2GiB以上は余裕を見たほうがいい

準備ができたらbitcoinをデーモン起動します。

$ bitcoin-abc-0.18.3/bin/bitcoind -daemon

あとは同期が終わるまで数時間待ちます。(いま同期中なのでどのくらいかかるかわからない…)

ログでも見ながら待ちましょう(。・ω・)ノ゙

$ tail -f $HOME/.bitcoin/debug.log