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"}