名前はまだない。

プログラミングのことや趣味のことに関して綴ります。

自分だけのコインを発行・運用しよう!

この記事はピクシブ株式会社 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)とつなげることが出来ます。

github.com

実装してみる

今回はデモ用に公開されているIroha(https://point-demo.iroha.tech/)を利用します。この場合Irohaに関しては、特に設定することはありません。楽ですね^^

それでは実際にクライアント側を実装していき、自分だけのコインを運用していきましょう!

※思いの外記事が長くなってしまいそうなので、iOSに関してはまた別でお話させてもらおうと思います!今回はAndroidのみということになってしまいますがご了承ください🙇

それではやっていきましょう💪

環境

Android Studioの導入

Android Studio(Androidアプリを開発するための環境)がまだない人はここから始めていきましょう。もう既にAndroid Studioがインストールされており、且つ以下の必要なSDK toolsが揃っている人は読み飛ばしてしまっても構いません。

ここからAndroid StudioをDLしてきましょう。 起動した後、PreferencesのAppearance&Behavior>System Settings>Android SDK>SDK Toolsを開き、CMakeNDKにチェックを入れてOKしましょう。

f:id:kobaken0029:20171203204158p:plainf:id:kobaken0029:20171203204205p:plain 場合によっては再起動が必要なってくると思います。
以上で開発環境の設定は終わりです。

iroha-androidをclone

任意のディレクトリに移動してiroha-androidをcloneしてきましょう。

git clone https://github.com/hyperledger/iroha-android

とりあえず実行してみる

Android Studioを起動して、Open an existing Android Studio projectで先程cloneしてきたプロジェクトを開いてみましょう。

f:id:kobaken0029:20171203204344p:plain

実行対象のmoduleがiroha-android-sampleになっていることを確認して、実行ボタンを押してみましょう!

f:id:kobaken0029:20171203205333p:plain

問題がなければ、アプリが起動しているはずです。

f:id:kobaken0029:20171203205529p:plain:w350

コイン(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にしないように気をつけましょう🆖)

f:id:kobaken0029:20171203220324g:plain

カメラでQRを読み取ることでkobaコインのやり取りが出来ていることを確認できました!やったね☆

終わりに

Blockchainを駆使した、自分だけのコインアプリケーションが簡単に実装出来ました。
IrohaはOSSのため、誰でもcommitできます。もし興味があればContributeしてみてはどうでしょうか。 Android, iOS, Webのクライアント側ライブラリも公開しているので、気になるところがあったらPRを送ると良いかもしれません。

github.com

ピクシブ株式会社 ではクリエイターに向けて価値を提供していきたいエンジニアを募集しています!

明日は、@shimashimaさんで「Karate入門:Karateを使ったREST APIテスト 」です。お楽しみに! qiita.com

P.S.

今日は、声優の伊藤静さんの誕生日です。 ハヤテのごとく!桂ヒナギクアマガミの森島はるかを担当されていました。 2017年3月3日に渋谷のWWWにて、伊藤さん個人主催で開催された「Daisy!!」は記憶に新しいです。控えめに言って最高でした。俺が産まれてきた理由です。お誕生日おめでとうございます!!

dic.pixiv.net

www.pixiv.net

www.pixiv.net