GCP(Google Cloud Platform)上にsteemノードを立てたので、手順を記載します。今後、ちょっとしたdApps(大げさですが)を作ろうと思うので、技術的な情報もどんどん発信していこうと思います。
■サーバ構成
GCPの「Compute Engine」:custom(vCPU x 4、メモリ 20 GB)※公式の16GBだと足りないかも。
SSD:100GB
1ヶ月の想定料金:約1万2千円くらい
OS:ubuntu16.04
steemノードは最低限動く構成でもそこそこのサーバスペックを要求されます。個人でノードを立てるには結構な出費ですね。
■構築手順
今回は公式githubの手順を参考にdockerコンテナでノードを立てることにします。
https://github.com/steemit/steem/blob/master/doc/exchangequickstart.md
1. dockerインストール
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get update
sudo apt-get install docker-ce
ここまででdockerがインストールされます。
ついでに、Compute Engineのログインユーザで使えるように、権限の付与を行います。
付与後は、一度インスタンスからログアウトして再度SSHでつなぎなおします。
sudo groupadd docker
sudo usermod -aG docker $USER
これでdockerのインストールは完了です!
2. steemコンテナビルド
まず、githubからリポジトリをとってきます。
git clone https://github.com/steemit/steem
cd steem
そしてdocker build。かなり時間かかります。1時間くらいかかったかも。。
docker build -t=steemit/steem .
公式docker imageがdockerhubに登録されているので、そっちを使ってもいいと思います。
※docker hubのimageが最新版かは実施する前に確認してたほうがよさそうです。
※buildせず、pullする場合は↓です。
docker pull steemit/steem
3. steemコンテナ起動
まず、steem blockchain格納用の領域を作ります。
cd ..
mkdir blockchain
mkdir steemwallet
そして、docker run!
docker run -d --name steemd-exchange --env TRACK_ACCOUNT=nameofaccount -p 2001:2001 -p 8090:8090 -v /path/to/steemwallet:/var/steemwallet -v /path/to/blockchain:/var/lib/steemd/blockchain --restart always --log-opt max-size=20m --log-opt max-file=3 steemit/steem
「TRACK_ACCOUNT」は、自分のsteemアカウント。「/path/to/steemwallet」「/path/to/blockchain」は↑で作ったパスに変更します。
これでブロックの同期が始まります。下記でログ等が確認できます。
docker ps # コンテナ確認
docker logs -f steemd-exchange --tail 10 # log確認
現在のsteemブロック高は約2500万です。
1日で1500万まで同期が完了しているので、2日待てば同期完了しそうです。