はじめに
先日、数人のメンバーとビットコイン(他の仮想通貨も含む)の勉強会に参加しました。
今回は勉強会の内容を簡単に紹介します。
発表内容
今回は2つのセッションがありました。
1つ目は「ビットコインを支えるインフラについて」というタイトルでビットコインの入出金確認のためのソフトウェアの紹介。
2つ目は「しっかり学ぶICOのベストプラクティス」というタイトルでICOの課題および開発方法についての紹介です。
ビットコインを支えるインフラ
登壇者はビットバンク株式会社の@you21979氏
インフラが必要な理由
ビットコインのインフラというとbitcoindが思い当たると思いますが、
bitcondで管理しているアドレス以外の入出金データを取得する方法が標準では提供されていません。
(bitcoindはRPCのためのビットコインプロトコルを実行するためのプログラムです)
発表ではこの問題を解決するためのOSSプロダクトを2つ紹介しています。
insight
Bitpayが開発したオープンソースのブロックエクスプローラ(ブロックチェーンに記録された取引情報を見るための手段)です。
https://github.com/bitpay/insight/
insightの大きな特徴としてはREST-APIで情報を取得できる点が挙げられます。
これにより必要なデータはだいたい一度のリクエストで取得できるメリットが有ります。
また、プラグインシステムのため集計システムなどの付随したサービスを作成することも容易です。
反面、最新版への追従のしにくさやDB容量が大きいなどといった問題があります。
また、bitcoindに独自のパッチを当てているため、オルトコインに対応するには手間がかかります。
electrumx
electrum-serverの後継サーバ(作者はkyuupichan氏)でウォレットソフトelectrumのサーバサイド実装です。
https://github.com/kyuupichan/electrumx
初めからオルトコインを想定した作りになっており発表時点で約30種類のオルトコインに対応しています。
(新しいコインを追加する場合は設定ファイルを追加すれば良い)
難点としては、必要なデータを取得するためにはいくつかを組み合わせなければならない。
自分でトランザクションを解析する必要がある。
定期的にメンテナンスが必要(カウンタをリセットする必要があるもよう)でダウンタイムが発生する等が挙げられます。
しっかり学ぶICOのベストプラクティス
ICOはInitial Coin Offeringの略で、プロジェクトを立ち上げる際の資金調達方法の一つです。
登壇者はDRI代表の@syrohei氏
ここではEthereumを用いたICOについて発表がありました。
ICOの技術的な課題
技術的な課題としては下記があります。
- ICOのためのスマートコントラクトが必要
- ICOの規格が統一されていない
- 開発コスト(学習コストを含む)が高い
(スマートコントラクトとは契約の自動化でありそのための実装が必要)
http://gaiax-blockchain.com/smart-contract
実装に関するTipsとフレームワーク
スマートコントラクトの実装はコントラクト思考言語であるSolidityで行います。
発表では実装の際の注意点や、フレームワーク(RICO、Truffle)についての紹介がありました。
RICOはDRIが開発している「ICOに最適化されたオープンソースフレームワーク」で、
デモではコマンドを実行することで必要なコードのテンプレートが自動で生成されていました。
TruffleはEthereumの為のIDEのようなもので開発環境、テストフレームワーク、アセットパイプラインが含まれます。
https://github.com/trufflesuite/truffle
Truffleを使ったICOコンストラクタが量産されてきており、グローバルスタンダードになりつつあるようです。
さいごに
勉強会の内容は想像していた以上に専門的で、私自身に仮想通貨に関する知識があまり無いためわからないことも多々ありましたが、
久しぶりに勉強会に参加したことでいい刺激になりました。