見出し画像

ビギナーでもできる!話題の通貨GrinをMacPCでCPU-miningしてみる!!

2019年、話題の仮想通貨技術MimbleWimbleとBeam&Grin

2019年は仮想通貨(暗号資産)界で、一つの大きなイノベーションが起こると言われています。これまで匿名性を確保して仮想通貨の取引をすることは不可能だったのです。しかしながら今年匿名性を確保しつつ、これまた難しいと言われている多数の取引にリアルタイムに対応するスケーラビリティを可能にする革新的な技術MimbleWimbleを搭載した新しい通貨BeamGrinが登場することになったからです。

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マイニングを試していこうと思います!


いいなと思ったら応援しよう!