ラズベリー農家のすすめ/NEM Harvesting on Raspberry Pi 3 B

f:id:Ocknamo_crypt:20161105231141j:plain

この記事を読む前に必要な前知識をざっくりと説明(詳しい人は飛ばしましょう)

  1. NEMという仮想通貨があります
  2. ビットコインでいう採掘(マイニング)がそんなにでかい計算力や電力なくてもできるので、ビットコインより分散性が高くなるんじゃないかと注目してる人がいます
  3. ざっくりいうと採掘(マイニング)とは仮想通貨のインフラを支える仕事をする代わりにその通貨で報酬をもらえる仕組みのことです
  4. NEMでは採掘ではなく収穫(ハーベスト)と呼び、NEM通貨(単位はXEM)を報酬でもらえます
  5. 実際のところ報酬はどこから来るのかというと、通貨のやり取りの際の手数料です
  6. 日本人が農耕民族だからかは知りませんがなんか日本でNEMにはまってる人たちが多いです
  7. とりあえずそれ用のソフト(ウォレット)を入れてXEMを買ってウォレットに入れていろいろやるとバーべストができ報酬(収穫?)がもらえます

ラズベリー農家の会とは

さて、計算力や電力がいらないというなら、どうせならRaspberry Pi3でハーベストしてやろうと考えた人とかがなんかゆるく作った。
「ラズベリーパイでハーベストして報酬をツイートしていいねする」だけの会です(俺じゃなくてミジンコさんが作りました)

 

登録するとブロックチェーンからの情報でハーベスト結果を報告してくれるボットもミジンコさんが作ってくださいました。俺にはそんな技術はございません。

NEM東京様にもなぜか取り上げられました(内部リーク+ゴリ押しだけど)

Raspberry Pi 3(B)でハーベストする方法/How to Harvest

早速セッティング方法について説明します。*1

Raspberry Pi 3自体の初期設定については過去記事参照してください。

アップデートします

f:id:Ocknamo_crypt:20161106000901p:plain

Firefox(iceweasel)をインストール

デフォルトで入っているブラウザではウォレットに入ることもできす白画面が表示され途方に暮れることになります。
そこでFirefoxをインストールします。(Chroniumについては私は試していません)
インストール方法はターミナルを起動して

$ sudo apt install iceweasel

y/nと聞かれたらyを入力してEnter
インストールできていれば、Menu→インターネットの中に「Firefox ESR」が入っているはずです。

NEM公式ウォレット/NCC・NISのインストール

以下のリンク先にウォレットがあるのでダウンロードします。(最新版:nis-ncc-0.6.82.tgz)
http://bob.nem.ninja/

(17/10/25追記:現在NCCは非推奨のためダウンロード出来ません。ウォレットを使用したい場合はNanoWalletをこちらからダウンロードしてください。またどうしてもローカルハーベストをしたい場合はこちらの記事を参考にしてください。

Raspberry Pi3の好きなところに展開するとPackageというディレクトリができます。
Packageディレクトリに移動して、ターミナルに以下のコマンドを入力すればNIS,NCCどちらも起動します。

$ ./nix.runMon.sh

このあとちゃんと起動すると以下のような画面に。
f:id:Ocknamo_crypt:20161106004417p:plain
写真だとNISがまだ動いていませんが、ほおっておくとP2Pネットワークからブロックチェーンの情報をダウンロードし始めます。
その期間1日から3日。直接ネットからデータベースをダウンロードしてしまうと早いらしいですが自分はやらなかったので説明しません。*2

アカウントの作成

上の画像の左側でアカウントを新しく作成します。
ここまで読んでる人に詳しく説明する必要はないと思いますので省略。
ただ、アカウント名はアルファベットが良いようです。

ハーベストの方法

RaspberryPiだからといって特別なことはしていません。
新しいアカウントを作成し、ブロックがすべてダウンロードできたら次は
f:id:Ocknamo_crypt:20161106010127p:plain
写真の赤丸=VestedBalanceが10000以上になるまで待たなくてはいけません。
そのためには10000XEM以上をウォレットに入金ししばらく待つ必要があります。(10万XEM程放り込むとすぐです)
詳しくはこちらをご覧ください。
NEMの説明書 – ハーベスティングとは

VestedBalanceが1000以上になったら「ハーべスティングを開始する」をクリックすればローカルハーベストが開始されます。

継続したバーべストのための対策

上記の方法でバーべストはできるのですが、一定時間でNISかNCCが落ちるという問題があります。
目下対策中ですがこれまでに効果があった対策についてまとめます。

熱対策

完全にハード面での対策ですが、ヒートシンク+冷却ファンでCPUの過熱の問題はかなり解決されます。
以下に説明する対策を行えば「FireFox起動してるだけでだんだん動かなくなる。」みたいな症状はだいぶ軽減されます。
まずヒートシンクはアマゾンで購入
f:id:Ocknamo_crypt:20161106011727j:plain
f:id:Ocknamo_crypt:20161106011749j:plain
f:id:Ocknamo_crypt:20161106011821j:plain
シールで張るだけです。
www.amazon.co.jp

冷却ファンは5Vの小型のものを秋葉原のマルツで購入。ラズパイの「3V」出力とつないで使用。(5Vだとうるさすぎるため)
ラズパイのケースに穴をあけてつけます。
缶コーヒーボトルのフタのサイズがぴったりだったのでそれで円をケガイて穴をあけました。
f:id:Ocknamo_crypt:20161106012902j:plain
f:id:Ocknamo_crypt:20161106013152j:plain
f:id:Ocknamo_crypt:20161106013205j:plain
f:id:Ocknamo_crypt:20161106013701j:plain
f:id:Ocknamo_crypt:20161106013256j:plain
f:id:Ocknamo_crypt:20161106013328j:plain
ファン固定用のねじを通す3.5mm穴をあけます。
f:id:Ocknamo_crypt:20161106013340j:plain
f:id:Ocknamo_crypt:20161106013352j:plain
f:id:Ocknamo_crypt:20161106013402j:plain
f:id:Ocknamo_crypt:20161106013459j:plain
ラズパイのI/Oはオスのピンなのでそれに合うブレッドボード用のメスのコネクタついているワイヤを適当に買ってきて、途中で切ってファンの配線とつなげて絶縁テープでも巻いておきます。
こういうの。
https://www.amazon.co.jp/dp/B00P9BVKOKブレッドボード用JPワイヤー 100mm×10本 10PS-MIXの通販ならマルツオンライン

f:id:Ocknamo_crypt:20161106013513j:plain
f:id:Ocknamo_crypt:20161106013527j:plain
ファンのカバーもあった方が良かったですが、ファンに間違えて指を突っ込んでも指は大丈夫です(ファンは多分壊れる)

 

温度の比較はやっておりませんが体感だと10°ぐらいは下がっているように感じます。
CPUの温度を取得するには以下のコマンドを使用します。

$ sudo vcgencmd measure_temp

この熱対策を行って24時間ほどNIS,NCCを起動した状態で測ったところ37.0度。
対策を行った結果、数時間から十時間ほどで落ちていたNISが1日は連続稼働するようになりました。

メモリの確保

NISが落ちるのはラズパイのメモリが足りないからだという提言をいただきメモリ対策をいろいろと行っています。
実験計画法に基づいた定量的定性的な評価は行えていませんが、おそらく効果があると考えられる方法について列挙します。

1.GPUメモリを64Mから16Mに変更

GPUに使用するメモリを減らすと、アプリケーションに使用できるメモリ量が増やせます。
ビデオ出力は遅くなるでしょうが、ハーベスト中はどちらにしろほかの操作ができる状態でないので関係ありません。削りましょう。
f:id:Ocknamo_crypt:20161107010904p:plain
MENUからraspberrypiの設定に移動。パフォーマンスのGPUメモリはデフォルトでは64Mになっています。
f:id:Ocknamo_crypt:20161107010812p:plain
16Mに変更。再起動すると反映されます。
Before
f:id:Ocknamo_crypt:20161107011616p:plain
After
f:id:Ocknamo_crypt:20161107011638p:plain
totalのメモリが925Mから973Mに増えています。

2.NISのメモリ上限を制限

RaspberryPi3は1Gのメモリを積んでいます。
一方でNISの使用メモリはというと、実行ファイルをテキストエディタで開いてみると、
f:id:Ocknamo_crypt:20161107013048p:plain
初期メモリ(Xms)が512M,最大メモリ(Xmx)が1Gです。明らかに大きすぎますね。
というわけでこのオプションを書き換えます。
f:id:Ocknamo_crypt:20161107013102p:plain
数値は512mとか640mとか諸説あるようですがXmxの値をXmsと同じにして1Gより下げるのが基本です。
*3

稼働時間の測定方法

これは直接の対策ではありませんが、NISの稼働時間を測定するためにメモリを監視する方法について書いておきます。
おそらくもっとスマートな方法がありますので、教えてください(おい)

まずNISとNCCを起動します。
次にターミナルをもう一つ起動してJavaの動いてるプロセスを取得するために以下のコマンドを使用。

$ jps

こういう感じに表示されます
f:id:Ocknamo_crypt:20161107014637p:plain
2つある’CommonStarter’がNISとNCCでどちらがどちらかわかりませんが、いろいろ調べてみると番号が若いほうがNISであるとわかります。
上の画像の場合は1093がNISのメモリです。
これを監視します。

$ jstat -gcutil 1093 3600000

「1093」は毎回違う数字なので起動するたびにjpsで確認しています。
その右の「3600000」は監視するインターバルをミリ秒で指定するオプションです。
3600000msはちょうど1時間なので1時間に1度NISのメモリ使用をリアルタイム監視してくれます。
実際にやるとこんな感じになります。
f:id:Ocknamo_crypt:20161107015507p:plain
一行が1時間なので、この行数を数えれば稼働時間がわかります。

現状報告

  1. 連続稼働は約44時間を確認しています。
  2. ラズパイでの収穫は全て合計して24xemです。

今後の課題

  1. 農家の過疎が深刻
  2. 40時間程度では短すぎる。無限に稼働できるようにするか自動的に再起動かけられるようにしたい
  3. ミスって電源が抜けたり停電で再起動することが多発するのでUPS自作したい
  4. nanoWalletへの移行
  5. 自然エネルギーを用いたハーベストへの挑戦
  6. 収穫少ない

……などなど

 

課題はたくさんありますが、めんどくさい分収穫の味は(多分)格別です!
皆さんぜひラズベリー農家になりましょう。

つづき
ocknamo-crypt.hatenablog.com

*1:しかし、これはあくまで2016年11月現在判明している設定方法であり最長で44時間しか連続稼働を確認していないのでさらに設定を探求する必要があります。

*2:ヒント:ウォレットのあったリンク先

*3:この方法については、オプションを書き換えた後でもリアルタイムで見てみるとメモリ1Gぎりぎりまで使用していたり(NIS+NCCですが)、NISを起動したときのログには「Xms512m,Xmx1G」と記述があったりよくわからないことが多い。ミジンコ氏によると両方512mに設定して効果はある様子

5 thoughts on “ラズベリー農家のすすめ/NEM Harvesting on Raspberry Pi 3 B”

  1. こんにちは。はじめまして。
    最近、RasPiの活用方法を模索しているうちに、こちらに辿り着きました。
    つい最近まで、RasPiで室温ログを取ってグラフ化していたのですが役割を終えて、
    次の活用方法として無謀にもラズパイにマストドンを入れようとして途中で挫折し、
    何となく彷徨っていたところ、ラズパイ農家様たちの存在を知ったところです。
    今、ローカルサーバとしてラズパイ上でNISを走らせるトコまでやってみました。
    ブラウザ上では、
    『NISはブロック71767を同期中で、約722日個ブロックを遅れています。 (現在同期しているブロック: 71767)』
    という愛嬌のある翻訳日本語が表示されています。
    ラズパイでまったりと農家してみようと始めてみたのですが、これ、最初のブロック同期が終わるには果たして何日かかるのでしょうか…
    気が遠くなりそうな気がしました。
    最初のブロック同期が終わらないと、ローカルハーベストも始められませんよね…

  2. はじめまして!
    ラズパイ生活の助けになれて嬉しいです。
    最近XEMがバブルで値上がりしすぎているのが悩ましいところではありますが余裕があればぜひやってみてください。その分ハーベストの旨味も上がりますし
    ブロックについては残念なお知らせが一つ。
    なんとNEMのブロックチェーンの最新のブロックは111万ブロックです;; 
    それでも3−4日くらいで全部ダウンロードして同期する気がします。
    良いお知らせとしては、
    http://bob.nem.ninja/
    ここから”nis5_mainnet-1002k.h2.db.zip”
    というのをダウンロードして、NISを止めてからnemフォルダの中のデータベースと入れ替えると、100万2千ブロック目から同期を始められます!
    本記事ではやりませんでしたが、ぜひここからダウンロードしてやることおおすすめします。

  3. ご丁寧なコメントありがとうございます!
    いやはや、正直申し上げると仮想通貨のことをほぼ調べないまま、目的が
    「ラズパイを24/365稼働し続けて何か役立たせること」
    だけに焦点を絞っていたので、ハーベストに必要な最低10,000XEMが何円相当なのか調べていませんでした。
    超初心者で、今ようやくXEM相場を見たのですが…
    これは初期投資するにはちょっとだけ勇気が要る金額ですね 笑
    軒並みアルトコイン相場が上昇しているので、もう少し時間経ってから購入してみようと思います。
    肝心のブロック同期ですが、RasPi3で48時間くらい放置していたらいつの間にか同期されてました。
    ありがとうございます。

  4. はじめまして、
    ラズパイでマイニングしてみたくて探していたらたどり着きました。
    今、アロハコインをマイニングしようと思い、やり方探してるのですが見当たらず
    https://github.com/GOLD-OCEAN-ENTERPRISE/AlohaCoin
    を発見したのですが翻訳しながら見てるのですが解らないのです。もしよければ
    ご教授おねがいします。

    1. コメントありがとうございます!アロハコインというのは存じないのですがgithubの内容ちらっと見るとビットコインのクローンっぽいですね。だとするとラズパイでマイニングは厳しいかもしれません。
      また更新が2年前から止まっているようなので開発実態がないのではないでしょうか? 他の情報も探してみたのですが正直「あまり印象は良くない」です。お気をつけください。

コメントを残す

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.