building of openblockchain
TRANSCRIPT
はじめに
いわゆるバズワードである、Fintech、ブロックチェーンが2016年現在非常に盛り上がりを見せている。ただ、それに反して実装論や具体的なビジネスへの利用への研究はまだこれからであり、今の所大部分は机上やペーパーで習得することなる。
これはIBMが中心となって提供している、ブロックチェーンAPI OpenBlockchainを利用して実際の環境構築を行い、APIを利用した簡単なアプリケーションを用いて、ブロックチェーンの基本的な仕組みを実際の動きから学習していこうというものである。
http://hyperledger-fabric.readthedocs.io/en/latest/
目的
この検証の目的は以下の2つ
1 スタンドアローン環境ではなく実際にサイトを構築する。現在用意されているdocker環境ではなく、ネイティブ環境を構築する。世界4拠点に構築する。異クラウドプロバイダ間を接続する。(IBM zSystems環境にも接続)
自在なコネクテビィティーと、サーバアーキテクチャの異なる接続にも問題ないことを確認。ミニマム環境ながら、この世界4拠点で稼働させた場合のレスポンス。
2 実際のブロックチェーンをオペレーションしながら確認していく。
分散台帳と言われるブロックチェーンを確認。1サイトからの更新が全サイトが同期する。チェインを更新すれば、ハッシュが生成される。参照であれば、ハッシュは生成されない。
構築したサイト
サイトvp0がIBM zSystems LinuxONE サーバーであり、他サイトのIAサーバーとアーキテクチャが異なる。 どちらもUnicodeを用いており文字コードレベルでの違いはないものの、アーキテクチャの違いとしてビックエンディアン(zSystems) リトルエンディアン(IA)と違いがあるので念のために影響がないのかを確認する。
検証方法
サイトvp0へREST接続を行い、JSONを用いてチェインコードデプロイと更新を実施。サイトvp1へREST接続を行い、JSONを用いてサイトvp0での結果を検証する。
REST クライアント vp0JSON
REST クライアント vp1JSON
検証 チェーンデータ更新後のハッシュ確認サイトvp0 ポケプシー
サイトvp1 シドニー
更新前ハッシュ
更新前currentBlockHashが更新後previousBlockHashに移動。代わりに更新後currentBlockHashに新たなハッシュが生成されたことが確認できる。
サイトvp0 vp1ともに同じ参照結果。このことにより、ビックエンディアン、リトルエンディアンの差異により影響は全くないと確認できた。
検証 チェーンデータ参照結果サイトvp0 ポケプシー
サイトvp1 シドニー
最後に当初想定した2つの目的については達成した。zSystems ⇄IA Cloudとの稼働検証において全く問題なく稼働したことが確認できた。
4サイト接続において全サイトが完全にチェーンが同期できるのに約1分程度かかることが確認できた。
サイト構築にあたってはdockerでの環境構築が推奨されており、docker外での環境については推奨されていない。IAにおいては、必要となるnode.js golang rocksDBなどはバイナリ入手可能であるが、zSystems版においては、一部ソースからのポーティングが必要となる。(golangについてはクロスコンパイル要)(zSystems向けdemo環境(docker版)では全て構築済み。)
基本的なブロックチェーンについては理解できた。ただ、ブロックチェーン自体はあくまで要素技術の一つにすぎないため、ここから利用方法について深める必要がある。従来の決済システムを完全に代替できるものでもない。