BitcoinCoreとPythonを使ってマイニングする(未完)
週末の作業結果をメモしておく。
Ankiのスクリプトを修正していたら、なぜかビットコインに興味が出たので少し調べて、いくらか実装した。
①ビットコインの基本的な仕組みについて学ぶ。
・開発者のナカモトサトシ氏の論文
https://bitcoin.org/bitcoin.pdf
Youtuberのマイニング動画とか見ても、なんかビットコインの仕組みってえらいゴチャゴチャしている印象があったけど、そうでもなかった。個人でマイニング出来る時代が終わって、業者の分散マイニングに協力する形になっているのが原因だろう。
巷の噂もあるけど、この論文読んでみてWinny作成者と同一人物のような気がした。
②公式のソフトウェアBitcoinCoreをインストールした。
・@daiki44氏の記事【Bitcoin】UbuntuでBitcoinをビルドする ※install.sh付きhttps://qiita.com/daiki44/items/deaeb7d3b7df1f5929f1
ツールが沢山ありすぎて苦労したのだが、とりあえず公式のツールを常駐させておいて、外部ツールからマイニングするという方法が良いようだ。(オープンソースなので、全部実装すればできるかもしれないけれど、現実的ではない。)
③pythonを使ったシンプルなマイニングプログラムを見つけた。
・vsergeev氏のntgbtminer。
https://github.com/vsergeev/ntgbtminer/blob/master/ntgbtminer.py
1つのファイルに収まっていてシンプルなプログラム。これをベースにして遊ぶのが良さそう。
<次にやりたいこと>
・採掘するために必要なデータ(block_template)をHTML(Javascript)から読み込めるようにする。block_templateはこんな感じ:https://ubun2m.com/bitcoin/block_template.json
・CoinHiveみたいな分散マイニングを行えるようにする。
・採掘速度チェッカーみたいなものを作る。
<問題点>
Ubuntu 20.04だとBDB4.8がうまくインストール出来なかったので、Bitcoin-Cliツールのウォレット関係がまだ動いていない。おそらく解決できる問題なのだが、如何せん情報が少なすぎて時間がかかりそう。
関連記事