※coind構築は18年度版として新しい記事があります。
もしライブラリ依存などでうまくいかない場合は、下記の記事も参考にしてください。
■最初に
この記事では、下記ソフトのインストールは取り扱いません。別途インストールを行ってください。(必要なタイミングは記載します。)
・Webサーバ (nginx,apacheなど)
・smtpサーバ(postfix,qmailなど)
・SSLの対応(Let’s encryptなどを利用する)
また、要求される技術水準としては、上記サーバやSSLの設定ができるレベルになります。これができるぐらいだと、構築はスムーズにできると思います。全部知らなくても、勉強として構築しながら覚えていくのもいいかも。
では、早速構築に入ります。
まず第一段階として、bitzenydを導入します。
全体の導入順はbitzenyd → mpos → stratum-mining の順になります。
■ソースコード・ライブラリ類のインストール
先に必要なものを手に入れておきます。
※環境はUbuntu16.04(64bit)を想定
・ライブラリ類のインストール
# aptitude install build-essential libtool autotools-dev autoconf libssl-dev libboost-all-dev pkg-config git (コンパイルに必要なライブラリ等)
# aptitude install python-twisted python-mysqldb python-dev python-setuptools python-memcache python-simplejson (stratum-miningに必要なライブラリ)
# pip install –upgrade pip (←upgradeの前はハイフン2つ)
# easy_install -U distribute (pythonライブラリのインストール)
# pip install autobahn
# aptitude install libdb5.3-dev libdb5.3++-dev
※berkeley-db4.8を利用する場合はここでインストールを実施。具体的な方法はこの記事の一番下、追記部分を参照。
■MPOS/Stratum/BitZenyのソースコード入手
$ git clone https://github.com/MPOS/php-mpos.git mpos
$ git clone https://github.com/ahmedbodi/stratum-mining.git stratum-mining
$ git clone https://github.com/ahmedbodi/stratum.git
$ git clone https://github.com/bitzeny/bitzeny.git bitzenyd
(下記2つでstratumをzny_yescriptに対応させる)
$ git clone https://github.com/bitzeny/zny_yescrypt_python.git zny_yescrypt_addon
$ git clone https://gist.github.com/9db1723161bc2650a1b1.git stratum-mining-znypatch
・stratum-mining-znypatch内にあるパッチファイルにミスタイプがあり、これを直す
if settings.COINDAEMON_ALGO == ‘zny_yesscript‘:
⇒zny_yescryptに
■bitzenydをビルドする
$ cd bitzenyd
・ubuntu 16.04の場合、下記ソースの修正が必要
$ vi src/rpcrawtransaction.cpp
299行目
変更前:
const CScriptID& hash = boost::get<const CScriptID&>(address);
変更後:
const CScriptID& hash = boost::get<CScriptID>(address);
※const と & を削る
・インストール
$ ./autogen.sh
$ ./configure –without-miniupnpc –without-gui –disable-tests –with-incompatible-bdb
$ make# cp src/bitzenyd /usr/bin
# cp src/bitzeny-cli /usr/bin
■bitzenydを設定する
・起動させる
$ bitzenyd -daemon
(ここでconfigがないと一度エラーが表示されます)
・設定ファイルを作る
起動させた際に新しく作られたディレクトリに移動
$ cd ~/.bitzeny/
$ vi bitzeny.conf
// 設定ファイルを編集
server=1
rpcallowip=localhost #プールをひとつのサーバで運用する場合はこれで良い。
#ソロマイニングのテストをする場合はrpcallowip=* (IPが決まってるならそのIP)として、一時的に外からアクセスできるようにする。
rpcuser=zenyuser
rpcpassword=SOMETHINGRANDOMPASS #ここはランダムなパスワードに変える。記憶する必要はない。
設定が終わったら起動させます。
※2018/01/31追記:rpcallowip=localhost の設定は書いても意味がないと指摘頂いたので削除しました。(また、一昨日公開されたBitzeny2.0ではエラーになります)ちなみにrpcallowip=* もbitzenyに限らず最近のcoindではエラーになるのでIPを指定するようにしましょう。
# bitzenyd -daemon
同期が始まります。かなり時間とCPUを使います。
現在の同期の状況は
# bitzenyd getinfo
でblocksの欄で確認できます。ここがgetinfoする度に増えて行くことがわかると思います。
※本記事を作成するに辺り、下記の記事を参考にさせて頂きました。貴重な情報本当にありがとうございます。
http://zakki.mona-digest.net/?p=84 【雑記】MPOS+stratum-miningによるマイニングプール構築法1
http://bitzeny.cswiki.jp/index.php?%EF%BC%B0%EF%BC%A3 暗号通貨BitZenyまとめWiki
次回は、MPOSの構築について記載します。
MPOSはphpベースのwebアプリです。同期中にphp(5 or 7)、httpサーバ&SSLの対応、smtpサーバ、DBサーバを導入しましょう。
※本記事ではapache2,postfix,mysql5.7,php7 での導入を前提にします。
■2017/11/08補足:
berkeley-db4.8で作りたい場合は下記のコマンドを追加で実施。
※Bitzenyが作られた頃と今のDBライブラリが異なる為、違う方法で作られたウォレットにバックアップの復元が出来ない…という問題が生ずることがあります。
wget http://download.oracle.com/berkeley-db/db-4.8.30.zip
unzip db-4.8.30.zip
cd db-4.8.30
cd build_unix/
../dist/configure –prefix=/usr/local –enable-cxx
make
make install
コメント
> rpcallowip=localhost
これは完全な誤りです。
rpcallowipはIPアドレスを引数に取ります。
誤った引数であるlocalhostを渡してもローカルから接続できるのは、
1. 引数のエラーチェックが無い
2. デフォルトでローカルからの接続が許可されている
からです。
BitZeny 2.0では引数のチェックが強化されておりこれはエラーになります。
早急に修正してください。
おおっ、ご指摘ありがとうございます。帰ったら直しておきますね。
[…] ・http://xvg-mg.idcray.com/ ・https://www59.atwiki.jp/gikopool/pages/19.html ・https://cryptomamiya.com/archives/308 ▽使用するプログラミング言語/ツール/特殊技術 ・javascript ・その他 […]
[…] BitZenyのマイニングプールを作る!(①bitzenydの導入) […]