ビギナーでもできる!話題の通貨GrinをMacPCでCPU-miningしてみる!!
2019年、話題の仮想通貨技術MimbleWimbleとBeam&Grin
2019年は仮想通貨(暗号資産)界で、一つの大きなイノベーションが起こると言われています。これまで匿名性を確保して仮想通貨の取引をすることは不可能だったのです。しかしながら今年匿名性を確保しつつ、これまた難しいと言われている多数の取引にリアルタイムに対応するスケーラビリティを可能にする革新的な技術MimbleWimbleを搭載した新しい通貨BeamとGrinが登場することになったからです。
MimbleWimbleについては仮想通貨投資家としてtwitterやテレグラムでも有名なRyuさんのブログが詳しいのでそれをみていだくとして、
Confidential Transacsonという取引の関係者にのみ送付する仮想通貨の量を見えるようにしつつブロックチェーンをシンプル化するという戦略がとられ、それをexpress k*Gという特殊な署名方式によって担保するという技術とされます。
ギークな通貨Grin
このMimbleWimble通貨であるBeamとGrinについてはBeamが一月初旬にメインネットになり、Grinが2019年Q1にメインネットになる予定になっています。Beamのほうはイスラエルのグループを中心にユーザーフレンドリーな開発をめざしていますが、Grinのほうは元々がGithubを中心にオープンソースの開発コミュニテイ主導で開発が行われ、Antioch Peverell, Gary Yu, Hashmap, Ignotus Peverell, Quentine Le Sceller, Yastolumeなどのビットコインコミュニティ出身のギークな技術者が参加していると言われています。
非常に高い技術力を開発陣でありこれは強みでもあるのですが、ギークな人たちなので、BeamだとGUIのソフトウエアが用意されている一方、Grinだとコマンドラインのソフトウエアしか用意されていません!しかしながらちょっと興味があったので勉強がてらMacBookpro環境構築してみることとしました。
Grinの環境構築をやってみる
まずGrinノード、マイナー、ウォレットのインストールおよび環境構築がUnixかLinuxなので、windowsだとUbuntu上でLinuxをうごかすなどの対応をしないといけません。Macだとそのままunixがterminalで使えるので、Mac(MacBook Pro 2.9GHz, Core i5 X 8GB memory)でインストールをためしてみることにしました。
まずMacの開発者ツールであるXcodeのインスール!
場合によってはMacOXの最新版のインストールが必要かもしれません
そのあとGrinをインストールするための環境構築が必要になります。Grinのサイトのインストラクションに従って進めばいいはずなのですが、いくつか落とし穴が。。
基本的には
をイントールすればいいのですが、このうちclangとllvmがすでにxcodeにふくまれているのでMacではいりません。あとlinux-headersも結局linux環境で必要なだけなので、いらないです。
rustのインストール
curl https://sh.rustup.rs -sSf | sh; source $HOME/.cargo/env
ncursesのインストール
brew install ncurses
zlib libsのインストール
brew install zlib
pkg-configのインストール
brew install pkg-config
libssl-devのインストールです
brew install openssl
これで環境構築は終わり次にgrinのインストールにはいります。
Grinのインストール
grinのインストールは
git clone https://github.com/mimblewimble/grin.git
cd grin
cargo build --verbose
とやるのですが、これが結構うまくいかなくてはまりました。結局のところllvmをbrew installでインストールしていたのがappleのllvmと重複して良くないようでした。また場合によってはcommandline tool kitのアップデートが必要になるかももしれません。Command line toolnのダウンロードは
から
またインストール方法は
を参照ください。
ここがうまくいったら、あとは割とスームスに行くと思います。
次にPATHを通さないといけないので、環境設定ファイルを読み込んで
nano ~/.bash_profile
これででてきた環境変数ファイルに
export PATH=/Users/USERNAME/grin/target/debug:$PATH
を追加してpathをセーブして通してあげてください。
このあとおまじない
source ~/.bash_profile
それで使えるはずです。
次に
grin server config
と動かし
$nano grin-server.toml
でてきた環境設定ファイルのサーバーの部分を
enable_stratum_server = true
とします。
Grin minerのインストール
Grin minorのインストール方法は
brew install cmake
git clone https://github.com/mimblewimble/grin-miner.git
cd grin-miner
git submodule update --init
cargo build
このあとPATHを通すのに、
nano ~/.bash_profile
これででてきた環境変数ファイルに
export PATH=/Users/USERNAME/grin-miner/target/debug:$PATH
を追加してpathを通してあげてください。
このあとおまじない
source ~/.bash_profile
で大体の機能がつかえるようになっています。
まだテストネットなのですが、walletの初期化を
grin --floonet wallet ini
これでシードフレーズが提示されるので、紙に書くなどしてそれを取っておいてください。
実際の使用
実際の使用はまずは
grin walletの立ち上げ
grin --floonet wallet listen
これでwineのノードが立ち上がります. 特にターミナルが途中でとまったようになるのですが、そのまま続けてください。
次にgrinの立ち上げ
grin --floonet
最後にgrin-minerの立ち上げです
cd ~/grin-miner
grin-miner
これでうまく行くと二つのウィンドウがでてき、マイニングが開始されます、
とGrinマイニングの開始です。マイニング自体初めてなのでちょっと感動的でした!なおCPUマイニングは非常におそいので、これ以上何かはっきりとした変化は3−4時間マイニングしただけではわかりませんでした。
メインネット後
1月15日よりGrinメインネットになりました。メインネット後にインストールした方はそのままでよいのですが、メインネット前にインストールした方はアップデートが必要です。
sudo rm -r ./grin
git clone https://github.com/mimblewimble/grin.git
cd grin
cargo build --release
と
cd ~/grin-miner
git fetch && git pull
cargo clean
cargo build
をするとアップデートできます。
cd ~/grin
git fetch origin; git rebase origin/master
cargo build --release
でもいいみたいですね(grin-minerも同様!)。
その後は
cd ~/grin
grin server config
と動かし
$nano grin-server.toml
でてきた環境設定ファイルのサーバーの部分を
enable_stratum_server = true
とします。
grin wallet init
grin wallet listen
grin
cd ~/grin-miner
grin-miner
で多分マイニングできるのではないかと
以下のようにGoogle cloudで環境設定して試してみるとよいのかもしれません。
なおここまでスムーズにいっているかのようにかいているのですが、実はかなりつまずき、Grinのコミュニティに助けられました。
これらGitterサイトで、チャットで質問を投げると、どんなに素人のような質問でも、Grinのコミュニティは活発なのとわりと親切なようで、少なくとも数時間以内に答えてくれます。
一度どんな質問(素人質問にも)対応できるすごい詳しくて親切な人がいるなとおもったら、開発者の一人hashmapさんでした。Grinは技術者のコミュニティとしても、すごくいいコミュニティですね。
今度はgoogle cloudマイニングかpoolマイニングを試していこうと思います!