steemd をビルドして起動する
ちょっと込み入ったことがやりたくなったので、表題の通り、steemd を動かしてみます。
ref. Exchange Quickstart
ドキュメントによると、AWS の場合は
A good recommended instance in AWS is the i3.2xlarge
とのことなので、今回は Azure でそれと同等のスペックである Standard L8s(8 vCPU、64 GB メモリ)を選択します。L シリーズは、ストレージ最適化されたタイプです。
OS は Ubuntu 18.04 を選択。Disk については
at least 220GB of fast local SSD storage.
とのことなので、OS Disk を Premium SSD 512 GB にしておきます。また、
We recommend using docker to both build and run STEEM for exchanges.
とのことなので、Docker を使ってセットアップしていきます。
以下、Docker をインストールするところまで終わらせているという前提で書いていきます。
ビルド済みの Docker image も提供されているようですが、今回は image をビルドするところからやってみようと思います。ということで、プロジェクトをダウンロードして素直に docker build
を実行します。ビルド過程の中でテストも走らせてくれるようです。
$ git clone https://github.com/steemit/steem
$ cd steem
$ docker build -t=steemit/steem .
…と、これが長い。ドキュメントにも
It will anywhere from thirty minutes to a couple hours depending on how fast your equipment is.
と記載があるのでしょうがないです。気長に待ちます(1 時間半程度かかりました)。
ビルドが終わったら、一応 docker images
を実行して確認してみます。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
steemit/steem latest 4d318ab64548 8 seconds ago 2.14GB
phusion/baseimage 0.9.19 c39664f3d4e5 2 years ago 226MB
無事ビルドできているようなので、続けてホストマシン側にデータ保存用のディレクトリを用意します。
$ cd $HOME
$ mkdir blockchain
$ mkdir steemwallet
さて、準備完了です。ビルドした image を元に container を起動します。TRACK_ACCOUNT
にはとりあえず自分を指定しておきます。その他、以下の点に注意します。
- 用意したホストマシン側のデータ保存用ディレクトリをマッピングする
- P2P のために 2001 番ポートに対するアクセスを許可する必要があるので、事前に調整しておく
$ docker run -d --name steemd-exchange --env TRACK_ACCOUNT=m0t0k1ch1 --env USE_PUBLIC_BLOCKLOG=1 -p 2001:2001 -p 8090:8090 -v $HOME/steemwallet:/var/steemwallet -v $HOME/blockchain:/var/lib/steemd/blockchain --restart always steemit/steem
問題なければ、block_log のダウンロードが始まります。が、
Initial syncing will take between 6 and 48 hours depending on your equipment, faster storage devices will take less time and be more efficient.
データの同期には 6 〜 48 時間程度かかるそうなので、続きはまた後日まとめようと思います。
※ 追記(2018-12-10)
この後、block_log の取り込みは正常に完了したようなのですが、原因不明のエラーですぐに P2P のコネクションを切られてしまう問題が発生してしまい、正常稼動には至っていません。調査中です。
Congratulations @m0t0k1ch1! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :
Click here to view your Board of Honor
If you no longer want to receive notifications, reply to this comment with the word
STOP
Do not miss the last post from @steemitboard: