NEM NANO wallet 導入方法・Walletのインポート方法(Nano Wallet Beta 1.1.11)

(NEM/XEMについては過去記事等参照してください)
ラズベリー農家のすすめ/NEM Harvesting on Raspberry Pi 3 B
NEM – ビットコイン2.0 | Bitcoin日本語情報サイト

 

しばらく前にNEMの新しいデスクトップクライアントであるNANOWalletが発表になりましたね。
これまで使用していたスタンドアローンクライアントNISとNCCはフルノード版でブロックチェーンの情報すべてをダウンロードする必要がありましたが、NANOwalletは軽量クライアントのため起動が速いという利点があります。
そのほかアポスティーユなどの新機能もNANO Walletなら使用できるようです。
今後追加される新機能はNANO Walletへ、NCC/NISはスーパ―ノード運営やハーベストなどのネットワーク維持管理機能に特化させる、みたいになっていくのではないでしょうか。
NIS/NCCは使いにくい部分もあったのでNANOWalletに期待です。

ダウンロード

https://www.nem.io/install.htmlwww.nem.io
こちらからDesktop Clientをダウンロードします。
OSX, Windows, Linuxに互換性があるためどのOSを使用している場合でも同じソフトを使用します。

起動

Zipファイルを適当な場所に展開して
“start.html”をクリックすればデフォルトのブラウザで起動します。
f:id:Ocknamo_crypt:20161120132934p:plain
(raspberry pi3のデフォルトブラウザであるepiphanyではうまく動かないのでfirefoxなどを使用しましょう。)

ウォレットを新しく作成する場合

  1. メニューからsign upを選択
  2. とりあえずsimple walletを選択しフォームを入力します。(金庫の鍵みたいなものなのでパスワードは長めにしましょう)
  3. 一番下はMainnetを選択。
  4. 作成したらメニューからLOGINに移動。プルダウンメニューから開きたいウォレットを選んでパスを入れて開きます。

ウォレットをNCCからインポートする場合

すでにNCCでXEMを保有してて、同じウォレットをNANOWalletで使用したい場合。

NCCを起動して”右上の”設定メニューからExport for Litewalletを選択。
f:id:Ocknamo_crypt:20161120135611p:plain
f:id:Ocknamo_crypt:20161120135650p:plain
適当なところに保存します。
保存した拡張子が.jsonのファイルをわかりやすいところに移動。(NANOwalletのディレクトリの中とか)
次にNCCを閉じてNANOWalletを起動しLOGINからImportwalletを選択。先ほど作った.jsonファイルを開きます。
ロードが成功するとプルダウンメニュー内にウォレット名が表示されます。
これを選択してログイン(パスワードはNCCで使ってたやつ)
f:id:Ocknamo_crypt:20161120140428p:plain
するとアップグレードするように指示されるのでUpgradeWalletを選択。
f:id:Ocknamo_crypt:20161120135949p:plain
無事ログインできました。
f:id:Ocknamo_crypt:20161120140710p:plain

その他メモ

  1. BrainWalletは「パスワードとアカウント名さえわかればどこからでも入れるウォレット」,Private key walletは「秘密鍵と公開鍵がわかれば入れるウォレット(入れるのは当たり前だが)」かな? SimpleWalletはその場で秘密鍵を生成するタイプのexportファイルがないと入れないウォレットだと思われる。
  2. フルノードないのでローカルハーベストはできない。
  3. アポスティーユやってみたいけど手数料安くなるハードフォークまで待ったほうがいいかもしれません。(12月中かな?)

_______________________________

黄金虫ブログは寄付を募っています↓XEMでの寄付は以下のアドレスまで!
NCWX3R-KAOT4D-ITPEKG-ZX5SNG-ICKKGV-ZLVT2E-KKI6

BTC,CPトークンは以下までお願いします!
1MupdofmXC8vrRLLJQBKq6NLAp1sRmfAqt

NEM MobileWalletによるマルチシグの実行方法

f:id:Ocknamo_crypt:20161108001813j:plain
ついにNEMのMobileWalletがリリースされましたね。
導入方法についてはいろいろと話を聞くのですがネイティブで実装されているという、マルチシグアドレス機能については(日本語の)解説をあまり見ないので
週末に自分でいろいろといじってみました。
(NEMについては前回の記事の冒頭を参照してください。)
ラズベリー農家のすすめ/NEM Harvesting on Raspberry Pi 3 B

マルチシグってなに?

正直、自分も実際にいじってみるまでちゃんと把握できていませんでした。
マルチシグとは複数人の署名がそろうと実行されるトランザクション(取引)ですが、実際やってみると複数人で管理する仮想通貨の口座(マルチシグアドレス)という認識のほうがわかりやすいです。

なんかいいことあんの?

今のところは透明性の高い資金運用って感じでしょうか。
複数人で共有したい資金ってありますよね。
でもそういう資金ってどこに保管すればいいのかとか参加者の誰かがネコババしないかとかの心配がつきもの。
金額が高くなるとそのリスクが急上昇するのでマルチシグアドレスで保管しましょう。

動作

参加者でマルチシグアドレスにお金を入れるのは誰の許可なしでもできますが、アドレスからお金を移そうとするとほかの参加者に許可を求めるリクエストが自動的に送られてきます。
必要な人数が確認(署名)するとそのお金の移動(何らかの購入とかの支払いの取引)が実際に行われます。

使用例(妄想)

卑近な例
・卒業旅行の会費をマルチシグアドレスに参加者がそれぞれ送り、溜まった分から宿泊費としてそこから直接支払う。全員がお金の動きを確認できる。
・寄付をマルチシグアドレスに募り、送ってきた人の金額上位何%かを署名者にする。何に使用するか寄付者が直接決める権利を持つ。
・共同出資者とコンサートを計画しマルチシグアドレスを作る。チェロ奏者に出演を依頼し出演料を送金する。共同出資者がその送金を許可する。
www.youtube.com
(考えてみると全く親近感のわかないPVですね。一生のうちに「複数人でお金をためチェロ奏者に40万円だして演奏を頼む」なんてことがあるとは全く思えない(笑))

 

・家族の共有口座として使用。大きな買い物をするときは家族みんなの確認が必要。
・投資基金とかを簡単につくる。投資も利益分配も透明性が確保できる。
とかでしょうか?

マルチシグを実際にやってみましょう

さていつも通り前置きが長くなりましたが、実際にスマートフォンにモバイルウォレットをいれてマルチシグをテストしてみました。

 

androidのアプリは以下からダウンロードできます。
NEMウォレット – Google Play の Android アプリ
IOS版はまだのようです。

導入方法はクリプトストリームさんで紹介されています。手軽なので気軽に入れてみましょう。
【画像アリ】遂に出ました!NEMモバイルウォレット導入方法 – クリプトストリーム

 

1.マルチシグ用のアカウントを作る

アカウント作成メニューからアカウントを作ります。
f:id:Ocknamo_crypt:20161111020524p:plain:w300
ご覧のとおりいくらでも作成できます。
自分のメインのアカウントはマルチシグアカウントにはしないように注意しましょう。

マルチシグ化するのに手数料としてXEMが必要なのであらかじめマルチシグ用のアカウントにXEMを入金しておきます。
現状だと署名者一人で12XEM必要です(署名者一人につき6XEM,マルチシグ化手数料で6XEMでしょうか)
署名者の追加や送金などにも当然手数料が必要なので、いろいろいじりたいならある程度入れておいたほうが良いです。

2.アカウントをマルチシグアドレスに転換する

アカウント作成した時点では通常のアドレスなので、マルチシグアドレスへの転換が必要です。転換するには署名人になるその他のアカウントの「公開鍵」が必要です。
公開鍵は、署名人の署名が本物かどうかをマルチシグアドレスが確認するための鍵です。その名の通り公開しても問題はありません(秘密鍵は絶対に公開してはいけません)

 

まず自分のメインのアドレスの公開鍵を調べます。
”もっと”からアカウントのエクスポートを選択。(エクスポートが目的ではないのでパスワードは何でもよい)
一番下に表示されるパブリックキー(公開鍵)をコピーします。
f:id:Ocknamo_crypt:20161111021525p:plain:w300

次に、マルチシグにしたいアカウントに入り、”もっと”からマルチシグネチャに移動

f:id:Ocknamo_crypt:20161111021304p:plain:w300

署名者の最小限の数はとりあえず1にしておいて、
“アドレスかラベルを入力してください”とありますが、先ほどコピーした公開鍵を入力します。
f:id:Ocknamo_crypt:20161111022050p:plain:w300

アドレスを入力するとこのようにエラーになります。
f:id:Ocknamo_crypt:20161111023525p:plain:w300

 

最後に転換をクリックします。転換すると元には戻せないので注意してください。
f:id:Ocknamo_crypt:20161111024049p:plain:w300

 

数分待つと手数料分の残高が減り、
f:id:Ocknamo_crypt:20161111024121p:plain:w300

マルチシグネチャの設定メニューに入れなくなります。
f:id:Ocknamo_crypt:20161111024158p:plain:w300

これで転換は完了です。

3.署名者の追加

さきほど署名者に指定したメインのアカウントからマルチシグネチャの設定メニューに入ります。
f:id:Ocknamo_crypt:20161111024709p:plain:w300
追加したい署名人の公開鍵と署名者の最小限の数を入力(2人なのでとりあえず2にします)
f:id:Ocknamo_crypt:20161111024824p:plain:w300
”署名者を取り除く”のタブを見ると追加できていることがわかります
f:id:Ocknamo_crypt:20161111025206p:plain:w300

4.マルチシグを実行する

アドレス帳もしくはダッシュボードから、”新しい取引”を開き、送信者を今のアカウントではなくマルチシグアカウントに変更します。
f:id:Ocknamo_crypt:20161111025845p:plain:w300
f:id:Ocknamo_crypt:20161111030242p:plain:w300
あとは普通に金額を入れて送信すればマルチシグのアカウントからの送金のリクエストが行われ、署名者に通知がいきます。

 

自分にきた通知の例ですが、このような感じで来ます。
f:id:Ocknamo_crypt:20161111030515p:plain:w300
showをクリックすると、内容が表示されます。確認してくださいをタップすると署名が完了します。
f:id:Ocknamo_crypt:20161111030602p:plain:w300
必要な署名者の人数に達すれば送金が行われます。

 

マルチシグの実行はこれで完了です。
ぜひ実際に動かしてみてください!

感想

  1. 公開鍵の入力は教えてもらうところも含めて面倒です。アドレスで何とかできないのかな……アップデートに期待。
  2. 操作感はよい。デザインもシンプルで割と好き。
  3. 手数料低めでもわりと取引のスピードが速い。
  4. 裏技がある。わかるわけない(笑)
  5. 開く度にパスワード求められるのがストレス。まだ無理だと思うけど指紋認証したい。そのうちお願いします。(17/10/25追記:現在対応してます!)

P.S.
ご協力いただいたミジンコさんtomotomoさんありがとうございました。

ラズベリー農家のすすめ/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に設定して効果はある様子