皆さん、こんにちは レノボ・エンタープライズ・ソリューションズ 小宮です。本日はBlockchainのその2と題して、オープンソースのブロックチェーン技術のHyperledgerについての簡単なご紹介と、ソリューションにおけるアーキテクチャをご紹介したいと思います。
1.Hyperledger Fabricについて
Hyperledger Fabricはブロックチェーンフレームワークの実装であり、The Linux FoundationがホストするHyperledgerプロジェクトの1つです。モジュラーアーキテクチャを備えたアプリケーションまたはソリューションを開発するための基盤として、Hyperledger Fabricを使用すると、コンセンサスサービスやメンバーシップサービスなどのコンポーネントをプラグアンドプレイできます。Hyperledger Fabricはコンテナ技術を活用して、システムのアプリケーションロジックを構成する「チェーンコード」と呼ばれるスマートコントラクトをホストします。Hyperledger Fabricは、最初のハッカソンの結果として、当初はDigital AssetとIBMから提供されました。
オープンソース、エンタープライズグレード、許可された分散型台帳テクノロジープラットフォーム であり、高度なモジュール化および構成可能なアーキテクチャにより、幅広いユースケースに対応した革新性、汎用性、 最適化を実現します。
各メンバーが見ることができる台帳のトランザクションを制限するために、チャネルを持つ許可されたネットワークを作成する機能を有し、Goで記述され、Dockerコンテナで実行されるチェーン コード(スマートコントラクト) で構成されます。
2.Hyperledger Fabricのコンポーネント
Hyperledger Fabricのコンポーネントは以下の3つから構成されます。
CA(Certificate Authority:認証機関)
- IDの登録、証明書の発行、証明書の更新と取り消し
オーダーサービス
- 承認されたトランザクションを受け入れ、ブロックに順序付けし、ブロックをコミットしているピア(対等者)に配信します
ピア(対等者):
- 台帳のインスタンスとチェーンコードのインスタンスをホストします
- ピアの承認
- トランザクションのシミュレーションと承認
- ピアのコミット
- トランザクションをブロックチェーンにコミットする前に、承認されたトランザクションを検証し、 トランザクション結果を検証します
それでは、ブロックチェーンにブロックが追加されるフローについて、イメージで紹介したいと思います。
2.ブロックチェーンにブロックを追加
認証機関とオーダーサービスおよびピアの承認とピアのコミットおよびクライアントアプリケーションをイメージのように配置されていたとします。
クライアントアプリケーションからトランザクションをブロックチェーンに送信します。
ピアの承認に関して、ブロックチェーンの現時点の状態からトランザクションをシミュレートして、Read/Writeのセットを生成してクライアントアプリケーションに応答を返します。
クライアントアプリケーションはRead/Writeのセットを取得して、その情報をオーダーサービスに転送します。
オーダーサービスは送信されたRead/Writeのセットをブロックに配置します。
オーダーサービスはピアに対してブロックの情報を送信します。
ピアのコミットからRead/Writeのセットを実行して、トランザクションがまだ有効かどうか確認し、有効な場合はブロックチェーンにコミットするか、無効なトランザクションを送り返します。
ブロックチェーンの状態の終わりがクライアントアプリケーションに返送されます。
これらの一連の動作がブロック追加時に行われます。
次にブロックチェーンのソリューションを利用するときに必要なアーキテクチャについてお話したいと思います。
ブロックチェーンを利用する際に利用するプラットフォームとして、主に利用されるのがKubernatesのコンテナになります。
Kubernetes(K8s)は、コンテナ化されたアプリケーションの展開、スケーリング、管理を自動化するためのオープンソースシステムであり、アプリケーションのグループ化、デプロイ、スケーリング、自己修復が可能です。
Kubernatesは以下のもので管理されています。
チャート
- Kubernatesコンポーネントを定義するテンプレートのバンドル
Helm(パッケージマネージャ)
- チャートをパッケージ化、検索、および展開を可能にします
3.ソリューションアーキテクチャ
Kubernatesレイヤにおけるアーキテクチャをお話します。
今回はThinkAgile HXにフォーカスしてお話したいと思います。
ThinkAgile HXで利用可能なコンテナプラットフォームとしては、Nutanix KarbonおよびRedhat Openshiftの2つになります。
こちらの二つに関しての特徴は以下の通りです。
Nutanix Karbon
- 効率的なワンクリックKubernates
- 高可用性な導入が可能
- 永続的なストレージのサポート:Volumes / FilesをサポートしたCSI
Red Hat OpenShift
- レノボのリファレンスアーキテクチャ
- 高可用性な導入が可能
- 永続的なストレージのサポート:NFS
Karbonについては、Nutanixプラットフォームの使いやすさの兼ね備えたコンテナプラットフォームであり、Redhat Openshiftについてはレノボのリファレンスアーキテクチャになっています。
こちらが揃ったら、次にアプリケーションを搭載していきます。
コンテナ上にブロックチェーンに必要なアプリケーションのPodsを作成し、その中で認証機関のパッケージをインストールしてIDを作成します。
次にオーダーサービスをインストールします。オーダーサービスに相当するものはApache Kafka(スケーラビリティに優れた分散メッセージキュー)およびFabric Orderer(クライアントから送付されたトランザクションの順序付けをし、ブロックチェーンネットワーク内の Peer に送信)になります。
インストール後はOrder IDをセットアップします。
最後にインストールするのが、Peerに関するアプリケーションになります。Apache CouchDB(ドキュメント指向のオープンソースデータベース。NoSQLの分類に属します)とFabric Peerになります。
こちらをセットアップ後にChannelを作成して、Channelに参加することでブロックチェーンを利用できます。
最後にHyperledgerの画面をご紹介しておきます。
【メイン画面】
【Script File】
【Transaction Record】
以上、よろしくお願い致します。