いずれ整理して書こうと思いますが、忘れないうちにプール構築の方法をメモ。
※本当に忘れないための忘備録です。プール構築する人の参考になれば、ぐらいです。
■ソフトウェア構成
マイニングプールは以下の3つのソフトウェアで実現する
・Bitzenyd … コイン本体
・stratum-mining … プール本体stratumも別途git clone一緒に入れると解説している記事もあったが、こちらだけで動く。
・mpos … プールの状況、コインの状況を表示したり、送金リクエストをcoindに送るプログラム。アルゴリズムはヘルプ等の表示切り替えに利用してる程度なので、mposの設定は「scrypt」でもちゃんと動いたりする。
■インストール時の注意点
・zenypatchはそのままだとエラーが出るので、最初の3行を削る
・stratum自体のインストールはエラーが出るので、miningのインストールだけ行う
・stratum-miningの設定で指定するアルゴリズムは「zny_yescrypt」 yescryptだけの記述だと動かない。
■構築時の注意
・stratumに指定できるcoindアドレスはデフォルトアドレスのみ。アカウント名を指定すると支払いに使えないアカウントにコインが貯まっていく。もし設定してしまった場合はcoin-cliでアカウント間の残高を移す。
・stratumはワーカー設定とmposのDBに書き込むshareのDBを分けて設定できない。ここを直さないとワーカ共通化は出来ない模様。
・サーバCPUとメモリには余裕を持たせる。メモリ若干まだ空きがあると思っても、増強前後でハッシュレートが1割も違った。
・stratumの脆弱性でshareを使いまわしできる危険性がある。修正後もshare_archiveテーブルのpool承認とupstream承認とdiffの値を使って不正がないかを定期的にチェックすると安心。
・stratumのsetup.pyをubuntu16.04用に書き換えてインストールする方法があったが、そもそもこれ要らないのでは。
$ cd stratum-mining/externals/stratum
$ cat < setup.py
#!/usr/bin/env python
#from distribute_setup import use_setuptools
#use_setuptools()
#python setup.py sdist upload
from setuptools import setup
from stratum import version
setup(name=’stratum’,
version=version.VERSION,
description=’Stratum server implementation based on Twisted’,
author=’slush’,
author_email=’[email protected]’,
url=’http://blog.bitcoin.cz/stratum’,
packages=[‘stratum’,],
py_modules=[‘distribute_setup’,],
zip_safe=False,
install_requires=[‘twisted’, ‘ecdsa’, ‘pyopenssl’, ‘autobahn’,]
)
EOF
python setup.py install
#ここでエラーが出るけどそのまま続行