自分だけのコインを発行・運用しよう!
この記事はピクシブ株式会社 Advent Calendar 2017 5日目の記事です。
こんにちは!17年度新卒のkobakenです。iOSアプリ開発を生業としており、現在、pixiv、pixiv SketchのiOSアプリの開発をしております。
好きな声優は伊波杏樹さんです。可愛いですね^^
今回は、最近よく話題になっているBlockchainを扱って簡単なアプリを作ってみようと思います。
この記事の対象者
- 「最近Blockchainというものが流行っているみたい」「自分もすこし触れてみたい」と思っている人
- 自分のコインを作ってみたいという人
今回話さないこと
- Blockchainに関する説明
- 「いろは(Iroha)」(以後、Irohaとします)以外のBlockchainの説明
- Irohaの詳細な説明(アーキテクチャやホワイトペーパー、Irohaの現状に関する事)
- Irohaのsetup手順
- これに関しては、Dockerで動かすデモをしてくれている人がいるのでそちらか、もしくは公式のDocumentを参照してください
- Irohaのクライアントライブラリに関する詳細な説明(内部実装、利用方法)
- Android Studioの細かい導入手順
- Androidエミュレータに関する事
今回使うBlockchainについて
Blockchainにも様々な種類が存在しますが、今回はIrohaを利用します。
Irohaとは、Linux Foundation のOSSプロジェクト「Hyperledger」に登録されているブロックチェーンのひとつで、あのIBMの「fabric」の構造に合わせて開発されている模様です。
Irohaは特徴として スマホ対応 が挙げられており、Android, iOS用のライブラリが提供されているので、簡単にブロックチェーン(Iroha)とつなげることが出来ます。
実装してみる
今回はデモ用に公開されているIroha(https://point-demo.iroha.tech/)を利用します。この場合Irohaに関しては、特に設定することはありません。楽ですね^^
それでは実際にクライアント側を実装していき、自分だけのコインを運用していきましょう!
※思いの外記事が長くなってしまいそうなので、iOSに関してはまた別でお話させてもらおうと思います!今回はAndroidのみということになってしまいますがご了承ください🙇
それではやっていきましょう💪
環境
- macOS Sierra 10.12.6
- Android Studio 3.0
Build #AI-171.4408382, built on October 21, 2017
Android Studioの導入
Android Studio(Androidアプリを開発するための環境)がまだない人はここから始めていきましょう。もう既にAndroid Studioがインストールされており、且つ以下の必要なSDK toolsが揃っている人は読み飛ばしてしまっても構いません。
ここからAndroid StudioをDLしてきましょう。
起動した後、PreferencesのAppearance&Behavior>System Settings>Android SDK>SDK Tools
を開き、CMake
とNDK
にチェックを入れてOKしましょう。
場合によっては再起動が必要なってくると思います。
以上で開発環境の設定は終わりです。
iroha-androidをclone
任意のディレクトリに移動してiroha-androidをcloneしてきましょう。
git clone https://github.com/hyperledger/iroha-android
とりあえず実行してみる
Android Studioを起動して、Open an existing Android Studio project
で先程cloneしてきたプロジェクトを開いてみましょう。
実行対象のmoduleがiroha-android-sample
になっていることを確認して、実行ボタンを押してみましょう!
問題がなければ、アプリが起動しているはずです。
コイン(Asset)の単位を変えてみる
さて、アプリは起動しました。あとは自分好みにカスタマイズしていくのみです!
まず、アプリに自分のコインの単位を反映させていきましょう!
今回私はkobaコイン(単位はKOB)にしてみようと思います
iroha-android-smaple/src/main/res/values/strings.xml
の該当箇所を修正していきましょう。
<resources> ~略~ <!-- Replace IRH to KOB --> <string name="message_send_asset_successful">You sent %2$s KOB to %1$s</string> ~略~ <!-- Replace IRH to KOB --> <string name="has_asset_amount">"%1$s KOB"</string> ~略~ </resources>
これで(表面上のみですが)コインの単位を変えることが出来ました。
お好みに任せて...
アプリのテーマカラーを変えてみましょう。自分の好きな色が変えれば、より一層自分のコインに愛着が持てます^^
iroha-android-sample/src/main/res/values/colors.xml
の該当箇所に好きな色のカラーコードを入力しましょう。
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="colorPrimary">#705DA8</color> <!-- バイオレット --> <color name="colorPrimaryDark">#705DA8</color> <!-- バイオレット --> <color name="colorAccent">#43A047</color> <!-- 緑 --> ~略~ </resources>
実行
さぁ、実際に出来上がったアプリでkobaコインのやり取りをしてみましょう!
起動後、任意のユーザ名を登録してアカウントを作成します。(個人を特定できるようなusernameにしないように気をつけましょう🆖)
カメラでQRを読み取ることでkobaコインのやり取りが出来ていることを確認できました!やったね☆
終わりに
Blockchainを駆使した、自分だけのコインアプリケーションが簡単に実装出来ました。
IrohaはOSSのため、誰でもcommitできます。もし興味があればContributeしてみてはどうでしょうか。
Android, iOS, Webのクライアント側ライブラリも公開しているので、気になるところがあったらPRを送ると良いかもしれません。
ピクシブ株式会社 ではクリエイターに向けて価値を提供していきたいエンジニアを募集しています!
明日は、@shimashimaさんで「Karate入門:Karateを使ったREST APIテスト 」です。お楽しみに! qiita.com
P.S.
今日は、声優の伊藤静さんの誕生日です。 ハヤテのごとく!の桂ヒナギクやアマガミの森島はるかを担当されていました。 2017年3月3日に渋谷のWWWにて、伊藤さん個人主催で開催された「Daisy!!」は記憶に新しいです。控えめに言って最高でした。俺が産まれてきた理由です。お誕生日おめでとうございます!!