2017年10月17日火曜日

[Monacoin]マイニングはじめました

Monacoin のマイニング開始しました。

本番ではまだブロックは作れておりませんが、testnetでは成功しました。
ソースコードはGitHubに公開しておきます。
TORIFUKUKaiou/ntgbtminer
※topic-monacoinブランチです。


以下、日記みたいなものです。

はじめ、ntgbtminer をRPC設定やアドレスをMonacoin用にtestnetで変えて動かしてみました。
Bitcoinではregtestでしかブロックをみつけたことはないのですが、Monacoinのtestnetは難易度が低いためなのか割りとブロックを見つけたというメッセージは表示されてはいてsubmitはしているのですがどうもそのままでは正しいブロックとは認識されませんでした。
Monacoin の公式ページに
なることが書いてあります。
私が持っているBitcoinの本の中ではみた記憶がありません。(私が見落としてだけかもしれませんが……)
きっとこの違いがあるのでしょうとぐぐってみたのですが、日本語のまとまった記事は見当たらず……
Lyra2RE(v2)なるアルゴリズムはリンク先に書いてあるそうです。
まったく理解できませんでした。

すでに多くの方が紹介されているマイニングソフトを黙ってインストールしたほうが早い(処理速度も速い)気もしましたが、もう少しがんばってみることにしました。

BitcoinMonacoinで何が違うのだろう?
ソースコードを眺めてみました。
このへんの違いがポイントのようです。

BitcoinCheckBlockHeader

MonacoinCheckBlockHeader
(ブログにはあっさり書いていますがここに行き当たるまでにどれだろうなあといろいろ探し回りました苦笑)

例のハッシュ値があるtarget_difficultyを下回っているかどうかの計算に使っているアルゴリズムが異なっているようです。
なるほど! それを公式ページでAlgorithmといっているわけなのね。

Bitcoin : sha256(sha256(block_header))
Monacoin : lyra2re2(block_header) ※Proof Of Workの計算のときだけこれが使われているようで、ブロックのハッシュ値はsha256(sha256(block_header))が使われているようです。


lyra2re2は理解できそうにないし、あきらめようかとおもいましたが、pipで公開されていました!

lyra2re2-hash 様と ntgbtminer 様を組み合わせればいけそうです!

Monacoin の中で使われているものと同じcのソースがPythonから使えるようになっているようです。(このへんの仕組みを理解できていないのでまた勉強したいとおもっています)

はい、できました。
TORIFUKUKaiou/ntgbtminer
※topic-monacoinブランチです。

submitblock しても取り込まれない場合もあるようです。
ほぼ同時に計算を誰かが終えてタッチの差で負けたとかそういうことでしょうか。

monacoin.confはこんな感じでした。

/Users/${USER}/Library/Application Support/Monacoin/testnet4 というフォルダができていました。

submitblockに成功していてもすぐに残高が増えるわけではないようです。
おそらくconfirmations数が後続に100個ブロックがつづいてcoinbaseトランザクションを使えるようになるのだとおもいます。
自分がsubmitblockしたブロックのconfirmations数が100を超えていることを確認して上のコマンドで確認したら、残高増えていました!
main chainでも見つかるといいな!



↑プログラムを書きたいときにどうしたらいいのだろう? をたいていのことを答えてくれます。


3 件のコメント:

  1. はじめまして。
    モナコインのプールマイニングをしたいと思い、lapoolを開きました。
    ntgbtminer.pyのなかの
    RPC_URLをstratum+tcp://jp.lapool.me:3015
    と設定して、userとpasswordを設定し、実行してみたのですが
    エラーになりました。
    何か根本的に間違っておりますでしょうか。
    よろしくお願いします

    返信削除
    返信
    1. コメントありがとうございます。

      stratum+tcp に対応できていない気がしています。
      本当に対応していないかどうかはわからないですがおそらく対応できていないのではないかとおもいます。
      自分で動かしたmonacoind に対してhttp://127.0.0.1:みたいな感じでの動作確認しかしていません。

      このプログラムはマイニングってどんなもんだろうと勉強のためにつくった、作ったというか正確に言うと海外の方がBitcoin向けにつくられていたものを少し改造したものです。
      処理速度が速いわけでもなく奇跡を信じてmainnetで掘っていた時期はありますが全然掘れませんでした。
      testnetならブログを書いた時期はまあまあ掘れていました。

      こんな回答でよろしかったでしょうか。
      またどうぞお近くまでこられましたら寄っていってください。

      削除
    2. ご返答ありがとうございます。
      承知しました。
      丁寧にありがとうございました。

      削除