Neutrinoで働くブロックチェーンエンジニアのブログ

渋谷の専門特化コワークNeutrinoに入居してブロックチェーンエンジニアとして働いています。元丸の内。(Neutrino運営企業とは直接関係ありません)

Litecoinのノード環境構築をDockerで行う

Litecoinのノード環境構築を構築します。 LitecoinはBitcoinと比べるとトランザクション量がそれほど多くなく、かつプロトコルがBitcoinとほぼ同じなので、Bitcoin系のテストをするのに手軽にやりやすいと思います。

環境

ざっくりとした流れ

  • litecoin.confを作成する。作成したconfは、データボリュームをマウントすることで、ホストからコンテナに送る
  • blockデータをホストにマウントして永続化しつつ、litecoindを立ち上げる

litecoin.conf設定

Dockerfile書き換え

https://hub.docker.com/r/sreekanthgs/litecoin-docker/を利用します。

※公式のビルド済をクライアントをダウンロードするdockerです。ソースからビルドするわけではありません。(本当はソースからビルドした方が良いのですが)

「/opt/litecoin」配下にlitecoin.confを置く設定になっているのを、「/root/.litecoin」配下に置くよう修正します。 (楽になるかと思ったのと趣味です)

git clone https://github.com/sreekanthgs/litecoin-docker.git # dockerfileを落としてくる
cd litecoin-docker #落としたファイルに移動
-CMD ["litecoind", "--conf=/opt/litecoin/litecoin.conf", "--printtoconsole"]
+CMD ["litecoind", "--conf=/root/.litecoin/litecoin.conf", "--printtoconsole"]

litecoin.conf作成

「${PWD}/litecoin-data/.litecoin」フォルダを作成しておき、その中にlitecoin.confを作成します。

liteoin.confの中身 設定はBitcoinのパラメータRunning Bitcoin - Bitcoin Wikiと変わりません。

server=1 #コマンドラインとJSONRPCを許可するか
disablewallet=1 #Walletを利用しない
printtoconsole=1 #コンソールにログをプリントするか(起動時オプションにつけているから今回は別に不要)
rpcport=9332 #rpcの受け口ポート
rpcuser=yourusername # rpcのユーザー
rpcpassword=yourgreatpassword # rpcのパスワード
rpcallowip=0.0.0.0/0 # rpcを受け付けるip。デフォルトだとloalhostを許可する。0.0.0.0/0だと全開放なので製品版などでは注意

コンテナ作成

dockerイメージ作成

docker build -t litecoin-docker .

dockerコンテナ立ち上げ

docker run -it -d --name=litecoin-docker \
-v ${PWD}/litecoin-data/.litecoin:/root/.litecoin \
-p 9332:9332 -p 9333:9333 litecoin-docker

docker exec -it litecoin-docker bash

litecoin-cliは 「/root/.litecoin/litecoin.conf」をconfigとして読み取ります。

コマンド確認

ポートをバインドしているので、ホストからコマンドを打ってみます。

curl --user yourusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getblockcount", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:9332/

rpcpasswordを求められるのでconfファイルのパスワードを入力します。 結果例です。

{"result":1441025,"error":null,"id":"curltest"}