cpuminerを2.6.0に更新

1/29のBitzeny2.0リリースのため間宮さんのbitzenyのマイニングプログラムが更新されていて、更新が要るとのこと。ハッシュレートも向上する。

cryptomamiya.com

WindowsではリリースページからZIPを頂いて、minerd260.exeを使うように変更すればOK。 アンチウイルス偽陽性判定が出たら、検出対象から除外するよう設定する。

Linux(Ubuntu)では以下でコンパイルできた。

git clone https://github.com/macchky/cpuminer.git
cd cpuminer
./autogen.sh
./configure CFLAGS="-O3 -mavx -msse4.1 -msse4.2"
make

ちなみに最初はCFLAGSに「-mavx -msse4.1 -msse4.2」を入れずにやったところ、以下の警告が出ていた。

In file included from yescrypt-best.c:4:0,
                 from yescrypt.c:22:
yescrypt-sse.c:37:2: warning: #warning "Consider enabling SSE4.1, AVX, or XOP in the C compiler for significantly better performance" [-Wcpp]
 #warning "Consider enabling SSE4.1, AVX, or XOP in the C compiler for significantly better performance"
  ^

SSE4.1, AVX, or XOPのCPU命令を有効にするコンパイラオプションを付けると良いとのことで、付けてやったらうまくいった。 私の環境(Intel(R) Xeon(R) CPU E5-2660 v3 @ 2.60GHz x 2socket)では、ハッシュレートが1.14~1.17KH/s から、1.22~1.24KH/s に向上した。

Awesome Miner で採掘効率の良い仮想通貨を自動採掘する

仮想通貨の採掘難易度(difficulty)や交換レートはしばしば変動する。そこで、採掘難易度やレートを取得して、採掘効率の高いアルゴリズムと通貨を選んでマイニングすれば、同じマイニング機材でもより多くの仮想通貨を得ることができる。Awesome Minerはそれを自動でするためのツールだ。

マイニングプール側にも、採掘アルゴリズムごとに採掘効率の良い仮想通貨を算出してくれるプールがある。ZpoolやMining Pool Hubがこれらの機能を持っているようだ。ただしZpoolはAwesome Minerで使うと採掘効率の表示がおかしいと書いてあるブログがいくつかあったので、私はMining Pool Hubを使ってマイニングすることにした。

以下のページが参考になった。

クイックスタートガイド3 - PukiWiki

Awesome Minerの詳細情報がよくまとまっているWikiサイトで参考になる。 有効化するアルゴリズムなど、参考にした。

Switching interval (minutes)は30分にした。

Power cost (USD/k...)は、後述するけど東電の26円/kWhをドルに換算して0.23を指定した。「26円は何ドル」とかでGoogle検索すると簡単にわかる。

noziru-storage.net

こちらのブログ記事にもインストールやウォレット開設の話があり、わかりやすく参考になった。

これらを参考に、アルゴリズムごとのハッシュレートと、電気代(Power Cost)を登録して、Online Services 設定画面(右側)で Mining Pool Hub による Profit Switching を「Yes」に設定した。

f:id:sunasaji:20180121010327p:plain

これによって、左側の「Online Services」の「Revenue/Profit」が高い順にアルゴリズムがソートされるようになり、定期的に、一番上の効率の良いアルゴリズムで採掘が開始されるようになる。 上の図の場合、Equihashが効率が良いようだ。

そして、各アルゴリズムで採掘効率の良い仮想通貨は、Mining Pool Hub が自動で選択してくれる。実際にどの通貨が採掘されるか確認するには、MPHのトップ→ Mining Pool Hub I Home で、使っているGPU種別(NVIDIA等)をクリックして、アルゴリズム名の右側の欄を見ればよい。下の図の場合、Equihashのアルゴリズムで掘ると、Zclassicの仮想通貨が掘られることがわかる。

f:id:sunasaji:20180121010854p:plain

それがわかったら、Mining Pool Hub のサイトのトップで、左側のサイドバーの通貨名 (この場合、Zclassic) をクリックして通貨の Pool を開き、更に左側サイドバーの「Dashboard」をクリックすると、その通貨を採掘している自分の Hash rate が表示されるはず。下記の場合、541.00Hash/s で採掘できていることがわかり、安心して良いということになる。

f:id:sunasaji:20180121011635p:plain

ちなみに私は、採掘した通貨は自動でMonacoinに変換して、0.5Monaが貯まったらオンラインウォレットに振り込みされるように設定している。 私の持っているGTX1070だと、1日にだいたい0.5Monaは掘れるので、毎日振り込み通知が確認できて楽しいので。 Monacoinにしたのは、単純に私の好みだから。メジャーなBitcoinとかにしておいても良いかもしれない。

いちおう、ざっくりとしたGPU採掘の収益を書いておこう。 昨年12月末頃に採掘を始めて、ほぼ毎日0.5Monaが振り込みされてきている。年末年始の数日は採掘止めてて、1/21までの稼働は約14日間。残高は7.85Mona。いま1Monaは約950円なのでおよそ7500円位(1日約500円)の収入になる。

一方で使った電力量は、1月から付けているエコワットの値を信じると39kWhで、私の自宅の電力消費量だと東京電力の従量電灯Bの電力量料金、「第2段階料金:120kWhをこえ300kWhまで」に相当しそうだったので26円/kWhとして計算すると、1014円掛かっていることになる。一方で、パソコンの電源が約300Wなのでこの値で電力消費していたと考えると、0.3kWh x 24時間 x 14日 とすると 100.8 kWhで、もしここまで電力を使っていたとしても、約2600円で、黒字は確保できているはず。

www.tepco.co.jp

今の時点では、GPU分だけで半月で4900円から6500円程度の収益となっていそう。 放置しているだけで小遣いが入るという意味では良いけれど、副収入としてはショボいというのが正直なところかな。 本格的なマイニングリグでグラボ何十枚も走らせていたらそれなりの利益も得られるかもしれないけれど、電気代が高い日本でグラボも高騰している時に手を出すのは大変そうなビジネスという気もする。

BitzenyのマイニングプールをHogepoolに変更

今までBitzenyのマイニングに LA Bitzeny Pool を使っていたけれど、ハッシュレートが集中しすぎていて分散してほしいとの呼びかけがあった。特定のプールにハッシュレートが集中すると、通貨自体への攻撃が理論上可能となって、通貨自体の信頼性にも問題が出るということのようだ。これからbitzeny掘る人はLA Bitzenyプールは避けようね。

こちらにもまとめがあって参考になる。

www.braveryk7.com

移住先は、Hogepoolにすることにした。AWSを8台使って冗長化しているとのことで運営の方が本気っぽく、トップページの障害報告もこまめに載っていて安心なので使わせて頂くことにした。プールへの寄付は1%で運用していくことにします。

Hoge Pool - Bitzeny Pool - Home

2018年の抱負

twitterに書いたことをこちらにも書く。

中国語上達

HSK4級は取りたい。できれば5級。

語彙力と発音については、まずはiKnowやHelloChineseのような学習アプリや単語帳で2000語程度までは聞いて理解できる程度にはなると思う。

文法は今年前半に書籍の快速マスター中国語を何周かやって覚えたい。

会話については方法を考え中。映画等の楽しめるコンテンツを音声と字幕を中国語で聞いて言い回しに慣れるか。対面やオンライン会話で実際に使うことも、実力を付けるには必須と思う。できれば中国語でしか交流できない友人を作れると良いかもしれない。

やっておきたい理由はいくつかある。

今後、世界標準語は英語と中国語になる。外交力も経済力も中国の存在感は大きくなっている。特に技術者は脅威を感じていると思う。確かに優秀な中国人は英語ができるし、良い情報は英語にもされるだろうけれど、最新の一次情報は中国語で、信頼のネットワークを通じて回される。情報流通の観点で、中国語ができることは第一の関門になる。

幸い日本語は中国語を基に育った言語で今でも漢字を多用するし、文字を見て意味が推測できる。これは実はかなりの強みで、非中華圏の人が中国語を理解する際の障壁になるのだけれど、日本人は最初からその素養がある。生かさない手はない。

一方で日本人にとっては発音、簡体字、文法が障壁になりやすいと思う。アプリや音声シャドウィングやボイスレコーダーである程度は対策できると思うけど、どこかで人のフィードバックも入れたい。将来的には簡単な仕事や日常会話や、歴史地理や政治を含んだ議論ができるのが理想。

技術力と実装力の向上

マイクロフレームワークを使ったフロントエンドのデザインや開発、テストを含んだ再利用可能なコーディングとGithub活用、トレースやパッチ解析等のカーネル技術向上、データシート見て回路実装したりデバドラ開発したり等は練習したい。

やるだけではなくて、見やすく応用しやすい形で記録して、他人から見える作品リストを育てることが大切。雇用の流動性や事業の流動性も上がるし、技術者も言われたことをやるだけでは意義のある仕事を残しづらくなっている。自分自身にわかりやすいラベルが付けられるのが望ましい。

履歴書に企業名とか部署名しか書けないのはまずくて、どの規模のプロジェクトでどんな貢献をしたか、いつどのように面白い作品を世に出したか、その証拠は公開Webでどこで見られるか、が問われる。私の場合はOSSへの貢献とかVR開発とか、作品と本が世に出せれば理想的。

構想力と拡散力の向上

未来の構想をわかりやすく表現して、人の行動をスムーズに促せるようにするためには表現力と媒体と伝達方法が必要で、磨くと更に面白いことができる予感がしている。一人の力には限界があるが故に、面白いことには皆で取り組めれば楽しいと思う。

仮想通貨の仕組み

仮想通貨の仕組みを知っておきたくて、いくつか資料を探した。twitterに書いた内容をここにもまとめておく。自分で調べたい人は、「マークルルート(Merkle root)」「ナンス(nonce)」といったキーワードで探すと良いと思う。

経産省東海大学の川野祐司先生の資料

平成27年度 我が国経済社会の情報化・サービス化に係る基盤整備(ブロックチェーン技術を利用したサービスに関する国内外動向調査)

・レポートはこちら→ http://iti.or.jp/report_56.pdf
・スライド版はこちら→ http://www.iti.or.jp/flash343.pdf

技術面から仮想通貨を知っておきたい人には良い資料。ビットコインでは過去の全取引と、新規のトランザクションからハッシュを生成してマークルルートを生成し、それをブロックチェーンの最後に積むための鍵(ナンス)を、膨大な計算力を使うマイニングで探索している。

過去の取引履歴は10分ごとに更新されるから、ハッシュ探索の課題が常に更新されることになる。過去の取引履歴を改ざんするには、その時点から現在までに要した全てのハッシュ計算力を凌駕することが必要で、事実上不可能であるため、改竄できず頑健な分散台帳が実現する。

経産省野村総研の調査資料

仮想通貨とブロックチェーンに関する基盤整備と動向調査の資料も良く纏まっていて参考になる。社会へのインパクト、誰が何に使えるか、政府の対応、等まで検討しているのはさすが。

http://www.meti.go.jp/press/2016/04/20160428003/20160428003-2.pdf

富士ゼロックスの漆嶌さんの講演資料

JSSECのフィンテックセミナーで講演された際の資料。ハッシュ関数楕円曲線公開鍵暗号やデータ構造まで説明されていて、仮想通貨の理解に役立つ。

http://www.meti.go.jp/press/2016/04/20160428003/20160428003-2.pdf

Bitzenyを採掘する

Bitzeny

日本発のオルトコインの一つ。主要取引所では扱いが無いマイナーな草コインで、日本円への換金にはやや難があるもののまだ20円/コインと単価が安く採掘効率は相対的に良い。あとCPUで採掘できるハッシュアルゴリズムを使っているので、他のGPUで採掘するコインと並行して同じマシンで採掘できる。下記の記事を参考にした。

www.flying-gadget.com

ウォレットを手元で動かす手順となっているけれど、プールマイニングするなら手元にウォレット(BitZeny Core)を置かないで、オンラインウォレットを使っても問題ない。

bitzeny.jp

SSLライブラリを入れる

Bitzeny公式からwin64-sseのWindows 64bit 11/10版のマイナーを取得して起動すると、libeay32.dllとssleay32.dllが無いと言われたので探してきて同じフォルダに置いたら起動はできた。

エラーコード0xc000007b

その後も、0xc000007b のエラーが出てマイニングが始まらない。

このエラーは、実行ファイルとDLLが32bit用と64bit用でミスマッチしているときに出るもののようだ。今回はlibcurl.dllが32ビットだったようなので下記のものに差し替えたらマイニング開始できた。

www.dlldownloader.com

左側の「for 64 Bit (x64)」と書いてある緑色の0.21MBのリンクから取得した。

LA Monacoin Pool と LA Bitzeny Pool の Worker を住み分ける

LA Monacoin Pool では BitzenyのWorkerとMonacoinのWorkerは同一のリストで管理されているので、BitzenyとMonacoinのWorkerのuser名は重複しないようにする必要があることに注意。他のプールプラットフォームでも同じかも。

モナコインを採掘する

モナコイン

日本では早くから2chなどで流通が始まっていてコミュニティがあり、仮想通貨の先駆けとして興味は持っていた。 近年のビットコインの高騰もあり、VRやってない時にグラボを使えることもあってモナコインの採掘を試すことにした。 仮想通貨の採掘方法は、ソロ採掘、プール採掘、クラウドマイニング、が主なパターンで、手元のグラボ使えるのはソロかプール。 ソロは掘れない日が続くことがあるけどプール用のアカウント登録などが要らず、外部との通信も気にしなくて済むのでとりあえずソロで試すことにした。 下記のブログが参考になった。

fuwa-moco.com

ウォレットを起動して1日かけてハッシュを同期して、同時にCUDAを入れて、最後にccminerを起動するだけ。案外簡単だ。 やってみたところ、GTX1070を使ったハッシュレートは約31.3MH/s程度になった。

ccminerを更新

上記にあったccminerはCUDA8用のようだったので、CUDA9に対応したものに更新してみた。

github.com

2.2-mod-r2-CUDA9.binary.zip を使用。ご提供ありがとうございます。 ただGTX1070を使ったハッシュレートは約32MH/sでほぼ変わらなかった。

採掘レートを試算してみる

下記のサイトの右側の「採掘資源量を登録する」に自環境の採掘レートを入れると、一日平均何Monaが採掘できるか確認できる。

Monacoin Charts

たとえば、「採掘資源量」に「32,300KH/s」(32.3MH/s)を入れると「予想採掘量/day 0.24MONA (311円相当)」となる。 いまモナコインの採掘報酬は25コインごとなので、ソロで掘り当てたら一気に25モナが手に入ることになる。 しかし、ソロだと、当たらなければいつまでもゼロ収入が続く。25を0.24で割ると100以上になるので、当たるまで平均100日はゼロ収入で採掘を続ける計算になる。 一方でプール採掘だと、掘り当てたコインをプールの皆に分配しなければならないので、プール採掘中に自分が25モナを掘り当てても独り占めできなくなるけれど、プールの誰かが掘り当てたときに少しずつ分け前を貰えるので、収入をこまめに継続的に得ることができるようになる。プール採掘にしたほうが心の安定が保てそうだから、移行することにする。 バクチ好きな人はソロで続けるハートもあるかもだけど、普通のPC環境の人はおとなしくプール採掘にするのがよさそう。

プールに参加する

下記のページを参考にプールに登録してみた。

www.flying-gadget.com

参加したのは下記のプール。プールのダッシュボードで、自マシンのworkerが稼働しているのがわかれば、OK。

LA Monacoin Pool - Home

SpaceFaucetでモナコインをもらう

モナコインのウォレットに入金ができるか試すため、少量のモナコインを貰ってみた。数秒で着金できた。ありがとうございます。 http://utyuu.space/spacespace-faucet/