ちょっと込み入ったことがやりたくなったので、表題の通り、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 のコネクションを切られてしまう問題が発生してしまい、正常稼動には至っていません。調査中です。