【雑記】MPOS+stratum-miningによるマイニングプール構築法2

さて今回で2回目となるマイニングプール構築法ですが、今回は各プールの根幹となるcoindのコンパイルを解説します。

 

coindとは何か?

人によってはcoindを使った事がない方もいる事が予想されるため軽く解説しますが、coindとはGUI画面のないqtと考えると一番いいかもしれません。 サーバー側ではGUIを搭載せずにsshなどによるリモートでの管理が行われる事が多いため、coindもコマンドラインベースでの操作となります。(といっても管理者が直接coindにコマンドを指示する機会は限られてくると思われますが・・・)

 

coindをコンパイルしてみよう

それでは各種coindをコンパイルしていきましょう。 前回の準備が終わっていれば、必要なライブラリの導入は済んでいるはずです。 必要なライブラリの導入がまだの方は前回の記事を参照してください。 今回は前回行ったgitのcloneから解説を行うので、前回作業を行った方はgit cloneの後から順次作業を行ってください。

まずはcoindのソースをgitから取得します。 mona,kuma,zeny自分が構築したいプールに合わせて取得しましょう。

$ git clone https://github.com/monacoinproject/monacoin.git monacoind   (monacoinプール構築の場合)
$ git clone https://github.com/kumacoinproject/kumacoin.git kumacoind   (kumacoinプール構築の場合)
$ git clone https://github.com/bitzeny/bitzeny.git bitzenyd   (bitzenyプール構築の場合)

取得したら、次はそれぞれのディレクトリ内のsrcへアクセスしコンパイルを行います。

//monaの場合

$ cd monacoind/src
$ make -f makefile.unix USE_UPNP=-

//kumaの場合

$ cd kumacoind/src
$ make -f makefile.unix USE_UPNP=-

//zenyの場合

$ cd bitzenyd
$ ./autogen.sh
$ ./configure –without-miniupnpc –without-gui –disable-tests   (libdb4.8を利用している場合)
$ ./configure –without-miniupnpc –without-gui –disable-tests –with-incompatible-bdb   (libdb5.1や5.3を使用している場合)
$ make

makeやconfigureに失敗する場合は何かライブラリが不足しています。 今一度導入のし忘れがないか確認してください。 なお、基本的にmonaとkumaはコンパイルの作業方法は同じです。 USE_UPNPは自動的にポートの解放を行う物のため、今回は組み込みません。 UPNPを使う必要がある場合は該当の記述をはずしてください。

monaやkumaの作業内容と比べると、zenyだけコンパイルの作業内容がかなり違うことがお分かりになると思います。 monaやkumaではmakefileが事前に生成されていますが、zenyではmakefileを生成するconfigureから生成する必要があります。 ゆえに事前のconfigureにて設定を行っているためにmakeの指示内容が異なってきているわけです。
そんなzenyは、利用しているlibdbのバージョンによって(というよりか4.8以外を利用している場合)は「–with-incompatible-bdb」という引数をconfigureに付ける必要があります。 どうしても引数で回避したくない方はこちらの記事を参照してlibdb4.8を導入してください。

 

コンパイルが中断したりしなければ、以上でコンパイルは終了です。

 

coindの導入・テストをしてみよう

さて、次はcoind各種をコマンドとして登録していきましょう。 基本的にはコンパイルで生成された実行ファイルを/usr/binにコピーするだけです。 ただしこの作業はroot権限が必要ですのでご注意を。

//monaの場合(コンパイル後の位置monacoind/src内から)
# cp monacoind /usr/bin

//kumaの場合(コンパイル後の位置kumacoind/src内から)
# cp kumacoind /usr/bin

//zenyの場合(コンパイル後の位置bitzenyd内から)
# cp src/bitzenyd /usr/bin

これでどこからでも各種coindにコマンド出せるようになりました。

次はいよいよcoindを起動させてみましょう。 起動は以下のようにすることで行えます。

$ monacoind -daemon

$ kumacoind -daemon
$ bitzenyd -daemon

ただし一旦は起動しても以下のようなエラー画面が出て終了してしまうはずです。

Error: To use monacoind, you must set a rpcpassword in the configuration file:
/home/test/.monacoin/monacoin.conf
It is recommended you use the following random password:
rpcuser=monacoinrpc
rpcpassword=6BZrTTnKSeJCrNo9uYY3YFCUU4wVWZF7RwPjAieNpoU2
(you do not need to remember this password)
The username and password MUST NOT be the same.
If the file does not exist, create it with owner-readable-only file permissions.
It is also recommended to set alertnotify so you are notified of problems;
for example: alertnotify=echo %s | mail -s “Monacoin Alert” admin@foo.com

これは各coindが参照する設定ファイル「monacoin.conf」「kumacoin.conf」「bitzeny.conf」が作成されていない、あるいは作成されていてもrpcユーザー名・パスワードが設定されていないために出ているエラーです。
なのでその設定ファイルを作成していきます。 これら設定ファイルなどの保管場所は実行したユーザーのホーム、簡単に言えば「cd」を実行した時に移動する場所にあります。 ただし普段は表示されません。 以下のコマンドを実行すると見えなかったディレクトリが現れるはずです。

$ ls -a

これで表示されるのはいわゆる隠しファイルの扱いをしているもので、システムに関係するようなファイルです。 linuxにおいて「.」から始まるディレクトリやファイルを扱う時は十分注意してください。

その中には「.monacoin」や「.Kumacoin」、「.bitzeny」が含まれているはずですのでその中へ移動し設定ファイルを作成していきます。 なお、作成はviでなくとも自分が使いやすいエディタを使ってください。(vim,nano,emacsなどなど…)

// monacoinの場合
$ cd  ~/.monacoin/
$ vi monacoin.conf

// kumacoinの場合
$ cd  ~/.Kumacoin/
$ vi kumacoin.conf

// bitzenyの場合
$ cd  ~/.bitzeny/
$ vi bitzeny.conf

設定ファイルには以下のもの記述しましょう。 ただし、rpcパスワードは先ほどのエラー画面で表示されたものなどの長くて他人に推測されないものにしてください。  設定で受け付けるIP範囲が変えられるのでいくらか緩和が効きますが、くれぐれもご注意を・・・

// monacoinの場合
server=1
rpcallowip=localhost
rpcuser=mona-rpcuser
rpcpassword=rpcpass

// kumacoinの場合
server=1
staking=0
rpcallowip=localhost
rpcuser=kuma-rpcuser
rpcpassword=rpcpass

// bitzenyの場合
server=1
rpcallowip=localhost
rpcuser=zeny-rpcuser
rpcpassword=rpcpass

なおrpcallowipで、接続可能なIP範囲を設定できます。 今回は単体のサーバーで運用する形で組むのでこのままでかまいませんが、複数台に分散させる場合はここの設定を適切な形に変更してください。
なお、kumaだけPoSを行うため、負荷対策と不用意なロックを避けるためにPoSを無効化しておきます。 また、ここで設定したrpcユーザー名とパスワードは後の設定で使用するのでメモなりをしておきましょう。

作成が終わったら、保存し、今度こそ起動させてみましょう。 今度は同じコマンドでもちゃんと起動するはずです。

$ monacoind -daemon
$ kumacoind -daemon
$ bitzenyd -daemon

起動したら試しに以下のように打ってみてください。

$ monacoind getinfo
$ kumacoind getinfo
$ bitzenyd getinfo

これでエラーなく現在の状況の概略が帰ってきたらcoindのテストは終了です。 ただし、クライアントによっては起動当初はエラーが帰ってくる場合があるので、その時は1分程度待って再度試してみてください。
ちなみに、次回以降起動するときは上でcoindを起動したように「-daemon」を付けて各coindを起動してください。

 

次回は・・・

さて今回はcoindのコンパイルからインストール・テストまでを行いました。 何か分からない点などがあればコメントまでどうぞ。 次はいよいよMPOSかstratum-miningのどちらかの構築に入ります。(現次点ではMPOSかstratum-miningどちらからかを決めかねてます・・・) それではまた!

Author Profile

monaf
mona digestの管理人でもあります。 こちらは向こうでは外れてしまうような内容を中心にお送りしてまいります。

monacoin:MMditkELuURZgDPduLDLGYArA15G7nWFo3
kumacoin:KHtxC7CdYUUfXLEEprxoN8re58ckhNbSwb
ringo:RVQNKVMRcJ8dCH687zQo3nDUN7JXgoRdid
bitzeny:ZboAKf49TpBg5ef9vSXxNbajmyyjZNNCat

About Author

monaf
mona digestの管理人でもあります。 こちらは向こうでは外れてしまうような内容を中心にお送りしてまいります。 monacoin:MMditkELuURZgDPduLDLGYArA15G7nWFo3 kumacoin:KHtxC7CdYUUfXLEEprxoN8re58ckhNbSwb ringo:RVQNKVMRcJ8dCH687zQo3nDUN7JXgoRdid bitzeny:ZboAKf49TpBg5ef9vSXxNbajmyyjZNNCat

Leave a Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です