TL;DR
マイニングプールが落ちた時に自動的に切り替わるといいなぁ
haproxyを使って各マイニングプールを自動で切り替えよう
#!/bin/bash
minerd -a yescrypt -o stratum+tcp://mproxy.coiner.site:11000 -u User.worker -p password
振り分け先
名称 | stratum接続先 |
---|---|
銭プール(ZNY) | stratum+tcp://zny.coiner.site:19666 |
bunnymining | stratum+tcp://mining.bunnymining.work:19332 |
※ポートは変わっても大丈夫。ユーザー名とワーカー名・パスワードは同一!
手順書 haproxyをインスコ
環境:Ubuntu16.04TLS
$ sudo apt-get install haproxy
$ sudo mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.org
$ vim /etc/haproxy/haproxy.cfg
config書くよ
haproxy.cfg
global
maxconn 32768 # concurrent connections limit
user nobody
spread-checks 5
defaults
timeout connect 50000
#timeout client 5000ms
timeout server 50000
frontend http-in
bind *:80
mode http
stats enable
stats uri /admin?stats
frontend stratum-in
# proxy stratum
bind *:11000
default_backend stratums
backend stratums
balance source
hash-type consistent
server stratum1 zny.coiner.site:19666 check inter 20s rise 5 fall 2
server stratum2 mining.bunnymining.work:19332 check inter 20s rise 5 fall 2
※check inter 20sやtimeoutの部分はstratum (yay!!!) の出る秒数以上に設定!
接続テストする(Failoverテスト)
stratum接続
./minerd -a yescrypt -o stratum+tcp://mproxy.coiner.site:11000 -u User.worker -p password
haproxyサーバーダウン
$ nc -U /tmp/haproxy-cli.sock
prompt
> set weight stratums/stratum1 0 #接続先が変わるか確認
> set weight stratums/stratum1 1 #元に戻す
作った理由
しばしば自分のサーバーが落ちてしまうのでマイニングのダウンタイムを減らすためにLB導入した。
悩んだ点
初回はroundrobinで設定をしていましたが、server1に接続、server2に接続と繰り返すとリクエスト<=>レスポンスの宛先がおかしくなり正常稼働せず。
出来る限り、スティッキーセッションのように接続されるようにしました。
参考
HAProxy Configuration Manual
間宮さんのさくっと仮想通貨
暗号通貨BitZenyまとめWiki
bunnymining
追記
マイニングプール、各種コインに対応したよ!
名称 | stratum接続先 |
---|---|
Riecoin マイニングプール | stratum+tcp://ric.coiner.site:12100 |
Zcashほしいなー(ZNY) | stratum+tcp://zec.coiner.site:11100 |
ドージ鯉なープール | stratum+tcp://doge.coiner.site:19000 |