monacoinの俺々プールを作る

Pocket

Monacoinをソロマイニングする

なーんて調子に乗ってソロマイニング~とか言ってたけど、Askmonaのトピック

プランA:Monacoin Wallet ⇒ getworkが廃止されたらしく、うまく掘れない。getworkを無効にするオプションがminerにあれば若しくは…
プランB:自分用のPoolを設置 ⇒ Scrypt時代のPoolの作り方はググれば出てくる。今は(Lyra2REv2では)どうなのだろう…
プランC:SGMinerやCCMinerを改造し、getworkを使わないようにする。 ⇒ 少なくとも私は技量不足で無理っぽい…
プランD:プールからブロック情報だけもらって、Minerに渡す、proxyみたいなものを作る。 ⇒ いや、それで出来るかは知らんけど…

そもそも、できないのかな…?ソロマイニング…

とある。Monacoin Walletでやるソロマイニングはダメらしい(笑)getworkってなんだよ(笑)わかんね

 

で、プランBをちょっとやってみようかな、といった話だ。

結論だけ言えば、成功して、掘り当てる事もできた。けれど、構築当時の様子をそのまま記録、というのをやりそこねてしまったので、記憶から書き出している。細かい所にミスがあるかもしれないけど、そのへんは悪しからず。

 

長くなるので続きから。

OSの準備

いつも使ってるWindow7の上に、VirtualBoxを使ってUbuntu 14.04 64bitをインストール。省略。(何も難しいことはしてなくて、unityウザいからcinnamonに切り替えたくらい)

 

monacoindをセットアップ

monacoin.orgからLinux 64bitなバイナリを拾ってきていい感じにセットアップ。

今回は、

$ cat ~/.monacoin/monacoin.conf
server=1
daemon=1
rpcuser=mona
rpcpassword=hoge
rpcallowip=127.0.0.1
rpcport=9332

といった感じ。

 

node.jsのインストール

ここではv0.10.40を使っているけど、特に意味はない。一度「0.10.40以上を要求するザマス」って言われたから使っているだけ。ただ、node.jsはバージョンによって挙動がだいぶ違うらしい(だからnvmなんていうものが使われるんだけど)ので、もしかしたら最近のバージョンではダメかもね。

$ sudo apt-get install git curl build-essential libssl-dev
$ git clone https://github.com/creationix/nvm.git ~/.nvm
$ . ~/.nvm/nvm.sh
$ nvm install v0.10.40
######################################################################## 100.0%
Now using node v0.10.40 (npm v1.4.28)
$ node -v
v0.10.40
$ npm -v
1.4.28

毎度指定するの面倒なので~/.bashrcに追記

$ vi ~/.bashrc
$ cat ~/.bashrc | grep nvm
. ~/.nvm/nvm.sh
nvm use v0.10.40

 

Redisのインストール

RAMにデータベースを置いておける感じ(たぶん)。MPOSではデータベース(MySQLとか)にデータを保管していくけど、それをUNOMP(NOMPもかな?)ではメモリの中におく。後述するpool_configの中でmposModeという設定項目があるけど、恐らくこれを有効にするとRedisじゃなくてSQLの方にデータを置くようになるんじゃないかな。(未確認)

Redisはppaにあるようだったので今回はそれを使わせてもらう。

$ sudo add-apt-repository ppa:chris-lea/redis-server
$ sudo apt-get update
$ sudo apt-get install redis-server

一応動作確認をする。

$ redis-server &
~ログが流れる~
$ redis-cli ping
PONG

よろしい(たぶん)

 

UNOMPをインストールする

事前準備も終わったしUNOMPを触る。

$ cd ~
$ git clone https://github.com/UNOMP/unified-node-open-mining-portal.git unomp
$ cd unomp

 

公式のREADME.mdには、ここでnpm updateせえよって書いてあるんだけど、このままだとlyra2rev2に対応してくれないので、修正をする。

~略~
"dependencies": {
    "merged-pooler": "git://github.com/upgradeadvice/node-merged-pool",
    "dataformat": "*",
    "log4js": "*",
~略~

要は、merged-poolerの値を*から上記リポジトリに変更する。

さらに、値が多少異なっているので、https://github.com/visvirial/node-stratum-pool/commits/masterを参考にmultiplierらへんを修正する。

適時、$ npm updateする。(dependenciesを書き換える→npm update→multiplierの値修正、という流れがよさそう?node.jsの知識が足りていないのでいつが適時かは不明)

 

UNOMPのコンフィグをする

unomp/config.json

unomp/config.json.exampleを編集してunomp/config.jsonとして保存する

“website”
  • siteTitle -> お好きにどうぞ?(たぶん)
  • port -> 1024以下だと、rootじゃないとポート開けないらしいので適当に変える、もしくは最後にちゃんとrootで実行する(今回は8080にした)
  • stratumHost -> 構築後、unompのページ、Getting Startedに表示されるStratum Hostの値。多分好きに決めていい

unomp/coins/

unomp/coins/monacoin.jsonを編集する

$ cat ~/unomp/coins/monacoin.json
{
    "name": "Monacoin",
    "symbol": "MONA",
    "algorithm": "lyra2re2"
}

要はalgorithmをscryptからlyra2re2に変更するってだけ。

unomp/pool_configs/

unomp/pool_config/litecoin.json.exampleを編集してunomp/pool_config/monacoin.jsonとして保存する

  • enabled -> true
  • coin -> monacoin.json
  • auxes -> 不要、”auxes”: [ ], ってなるまで中身消した
  • address -> monacoindのアドレス。monacoin-cli getaccountaddress “” みたいな感じで得られたものを
  • rewardRecipients -> プール運営者等への寄付についての設定。不要。
  • paymentProcessing
    • minimumPayment -> 払い出しする最小値
    • daemon -> ~/.monacoin/monacoin.confで設定したrpcuser/pass等をうまい具合に突っ込む
  • ports
    • 好きなポート番号を使おう
    • diff -> 初期diff
    • あとはそれらしく(必要な感じに)編集
  • daemons
    • さっきのdaemonと同じで良い
    • バックアップとしてここに複数設定できる
  • p2p, mposModeはenabledをfalseのままで(無効にしたまま)

 

起動する

$ cd ~/unomp
$ node init.js
それらしく動いてるっぽいじゃん

それらしく動いてるっぽいじゃん

ちょっと我慢できなくてハッシュ突っ込んでるのはご愛嬌

 

マイニングする

$ cpuminer -a lyra2rev2 -o stratum+tcp://192.168.0.9:3032 -u [報酬を受け取りたいmonacoinアドレス] -p x

別に難しいことはなくて、

  • アルゴリズムでlyra2rev2を指定する(minerによってはlyra2re2とか表記のブレがある)
  • URLは今回のUbuntuシステムのIPアドレス。
  • ユーザIDに、報酬を受け取りたいアドレスを記入しておく。つまりユーザ登録は不要。
  • パスワードは何でもいいはず。

勿論、適切にポートを開放してやれば外からでもハッシュを突っ込める。例えば stratum+tcp://tea-soak.org:3032 みたいな感じで。かなりそれらしくなってきて、興奮するね。(クラウドマイニングでハッシュ突っ込んだ時はポート開いてたからこのURLは生きてたけど、今はもう閉じてます)

 

ほれた

掘れました。わーい

掘れました。わーい

 

Pending Blocksが1になってますね。120の承認を経てConfirmed Blocksに移ります。

ハッシュレートが50MH/sとかになってるのは、しょぼいGPUでひっそりとやるのがじれったくてクラウドパワーを放り込んだだけ。

https://bchain.info/MONA/block/d4514bc0bc196101eae3540fef22c8f4c67527e0731c4970914955d1d69c3306

実際に掘り当てたブロックはこちら。pool_config/monacoin.jsonで設定しておいたアドレスへきちんと50MONA新規発行されているのがわかる。

 

配当

https://bchain.info/MONA/tx/48114aa1e494522aec1b7a206bde3725282358802573a9d031c43b39653a896d

GPU、クラウドパワーの2つのアカウント(2つのアドレス)で採掘していた、そのシェアに応じて配当されている。

 

以上。

お茶漬け

たまーに飲み屋で食べるお茶漬けめちゃウマい

コメントを残す

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