自分コインで採掘ごっこをしよう
やりたいこと
暗号通貨の採掘をしたい!!!
でも、今更採掘しても報酬が少ないらしい。
ゴールドラッシュを体験したい!!!
よし、自分でコインを作って、ザックザック掘ってやるぞ。
コードはここ。
github.com
あそびかた
注意事項
- 採掘して得たコインは使い道がありません(!)
- 採掘中はハッシュ探索の処理をしているのでCPUに負荷がかかります(!!)
- アカウント管理をしていないのでリフレッシュすると残高がなくなります(!!!)
- ほぼテストしてないので、バグがあるかもしれないです(!!!!)
遊び方(シングルプレイ)
Java 8以上で動かしてください。
Jarファイルを落としてくる
↓からtsuramichain-0.0.1-SNAPSHOT.jar
をダウンロードする。
Release 0.0.1 · takedasan/tsuramichain · GitHub起動する
tsuramichain-0.0.1-SNAPSHOT.jar
がおいてあるディレクトリまで移動して、↓のコマンドを実行する。
java -jar tsuramichain-0.0.1-SNAPSHOT.jar
Webページを開く
http://localhost:HOGE/
で開きます。
HOGE→ログの中にポートがあるので、それを入れる。
2018-01-02 22:47:02.186 INFO 7496 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 51095 (http)
↑こんなの、このログ場合はhttp://localhost:51095/
で開く。採掘開始!
赤枠のスイッチをonにすると採掘開始で、コインがザックザックです。
遊び方(マルチプレイ)
(本来、こっちがブロックチェーン的には正しい遊び方よね)
サービスを複数起動する
シングルプレイと同じようにJarから起動する。
マルチプレイなので2つ以上やっておく。
(ポートはランダムで振られるので多分衝突しないはず…)Webページをそれぞれひらいて、ノードを登録する
一方のページでもう一方のサービスのホスト:ポート
を入れて、Regist
ボタンを押す。
もう一方のほうも同じくノードを登録しておく。採掘開始!
スイッチonで採掘開始。
掘りまくってライバルに差を付けろ。
使ったもの
今回、この記事を参考にKotlinで作っています。
個人的には、実際に作るって本を読むよりもはるかに勉強になるので、こういうシンプルで、わかりやすいプログラム例があるのはほんとありがたい。
https://hackernoon.com/learn-blockchains-by-building-one-117428612f46
ワタクシ英語が苦手なので実際はこちらの翻訳版記事を読んでおりました。
ありがたや。
動作の中身はここを見たほうが早いと思うので割愛…
Spring Boot/Spring MVC/Vue.js
だんだん、使い慣れてきて実家のような安心感。
REST APIでクライアントとやりとりします。
あと参考にしたプログラムに加えて、使いやすいようにWeb上で使えるGUIを付けました。Kotlin
今回、Kotlinのお勉強も兼ねております。
まずは、Javaっぽく書いて→Kotlinっぽく書き直せるところは直すって感じでやっておりました。
初めからガチガチにKotlinっぽいコードとは何か!!とやってると、いつまでたっても機能ができあがらんのでこっちのほうが性にあってます。
苦労したところ
KotlinでSpring MVCのコードを書いていてハマったのが、これ。
qiita.com
同じところでまる一日悩んでいました。
あとは、おもったよりスイスイ書けて、動いてしまってびっくり。