Hyperledger Fabric 入門 – Hyperledger Fabricとは、Hyperledger Fabricのコンポーネントの説明 –

こんにちは!サイオステクノロジーの安藤 浩です。今回はエンタープライズ向けブロックチェーンのデファクトスタンダードといわれているHyperledger Fabricについてご紹介します。入門として、Hyperledger Fabricの説明とHyperledger Fabricの各コンポーネントについて説明したいと思います。

Hyperledger Fabric とは

Hyperledger Fabric は、Linux Foundation の下で設立されたHyperledger プロジェクトのひとつであり、オープンソースのエンタープライズ向けの許可型(Permissioned) 分散台帳テクノロジー(DLT) プラットフォームです。

Hyperledger Fabric は金融、保険、ヘルスケア、人事、サプライチェーン、デジタル音楽配信などの幅広い業界のユースケースに利用可能です。

Hyperledger Fabricの特徴

Hyperledger Fabricの特徴としては以下が挙げられます。

1.許可型ネットワーク

Member Shipservice Provider(MSP)を使用してネットワークに参加するユーザーを管理し、許可されたメンバーのみがアクセスできます。

2.機密性の高い

共有したいデータのみを、共有したいメンバーに公開することが可能です。

3.Chaincode(スマートコントラクト)やFabric SDKでカスタム言語の習得は不要

Ethereum ではSolidity を利用するのが一般的かと思いますが、Hyperledger FabricのChaincode(スマートコントラクト)ではGo、Node.js、Java でコードが書けるので、独自の言語の習得は不要です。Fabric SDK(クライアントアプリケーションで利用)はNode.js、Javaの公式で提供されています。

ネットワークモデルによるブロックチェーンの分類

ブロックチェーンは、ネットワークモデルにより大きく以下の3つに分類されます。Hyperledger Fabricではプライベートブロックチェーンとコンソーシアムブロックチェーンの構築が可能です。

1. パブリックブロックチェーン
誰でも参加でき、全ての取引が公開されます。例としてはBitcoin, Ethereumです。

2. プライベートブロックチェーン
特定の組織内で利用され、アクセスが制限されています。例としてはHyperledger FabricやGoQuorumです。

3. コンソーシアムブロックチェーン
複数の組織が共同で運営し、参加メンバーが制限されています。例としてはHyperledger FabricやGoQuorumです。

主要なコンポーネントの説明

以下にHyperledger Fabricの主要なコンポーネントの説明をします。概念をつかみたいと思いますので、各コンポーネントの詳細はここでは省略します。(Hyperledger Fabric v2 系での説明)

Organization

コンポーネント(Peer, Orderer など)、ユーザが必ずいずれかのOrganizationに所属する。

Membership Service Provider (MSP)

ネットワーク上のすべてのコンポーネント(クライアントアプリケーション、Peer、Ordererなど)/ユーザーを管理および認証する。

クライアントアプリケーション

Hyperledger Fabricを利用するアプリケーションのこと。Fabric SDKを利用してPeer上のChaincodeを実行する。

Peer(ピア)

Chaincodeの処理やブロックの承認などを行うノードのこと。
Peerは以下の特徴がある。
・Ledger(台帳)を保持する
・Chaincodeを実行する

Ledger(台帳)

Organization間のトランザクションの履歴と現在の状態のデータのこと。
LedgerはBlockchainとWorldStateで構成される。Blockchainはトランザクションの履歴のことで、WorldStateはトランザクションの履歴が現在の状態に至ったデータのこと。※WorldStateは現在の状態しか持たない。
これはBlockchainのどの時点を切り取ってもWorldStateが生成できることを意味している。

Chaincode(チェーンコード)

Ledger(台帳)の更新、参照をするビジネスロジックのこと。異なるOrganizationの間のルール、規則をコードによって定義する。
一般的にブロックチェーンではSmart Contract(スマートコントラクト)というが、Hyperledger FabricではSmart ContractとChaincodeは同じ意味で使っている。クライアントアプリケーションは、台帳に記録されるトランザクションを生成するために、Fabric SDKを利用してChaincodeを呼び出す。

Orderer(オーダラー)

トランザクションの順序付けを行い、ブロックを生成するノードのこと。
Ordererは以下の特徴がある。
・Ordering Service(Orderer ノードの群のこと)を構成する
・トランザクションの順序を確定し、ブロックを生成する
・生成したブロックをPeerノードに配布する

CA(Certification Authority)

コンポーネントやユーザに対して、アイデンティティ(証明書)を発行するPKIの認証局のこと。通常、Fabric CAを使うが、ほかのCAを利用してもよい。

Channel(チャネル)

Hyperledger Fabricのネットワーク内に構成される特定のOrganizationの間で通信を行うためのサブネットワークのこと。

システム構成図

 

図の説明と注意

  • Organization: ORG1, ORG2, ORG3がHyperledger Fabricのネットワークに参加しています。
  • Channel: Channel1, Channel2 があり、Channel1にはORG1, ORG2が参加しており、Channel2にはORG1, ORG2, ORG3が参加しています。(Channel 内のChannel PolicyというものでMSPの設定がされるようです)
  • Client Appはクライアントアプリケーションのことです。Fabric SDKを利用して、Peer上のChaincodeを実行します。
  • Identityは CAによって発行された証明書です。各ノードには証明書があります。
  • CAは各Organizationに1つは必要なようですが、MSPやCAは現状よくわかっておらず、正確に表現できていない可能性があります。CAと通信する際はFabric CA Clientを利用して通信します。

チャネル内のLedger

 

各PeerにはChaincodeをインストールと有効化する仕組みがあり、Chaincodeに紐づくLedgerが生成されるので上記のシステム構成図ではChannel ごとに各PeerにLedgerが上記の図のように設定できるようになります。Channel1ではORG3が参加していないため、ORG1,ORG2に関するトランザクションのデータはORG3には共有されません。

まとめ

Hyperledger Fabricの特徴とコンポーネントの概略が把握できたかと思います。別の記事でHyperledger Fabricのトランザクションフローについて記載します。

※誤り等ありましたらコメントいただけますと幸いです。

参考URL

https://hyperledger-fabric.readthedocs.io/en/release-2.5/whatis.html

https://hyperledger-fabric.readthedocs.io/en/release-2.5/key_concepts.html

https://hyperledger-fabric.readthedocs.io/en/release-2.5/glossary.html

https://hyperledger-fabric-ca.readthedocs.io/en/latest/operations_guide.html#topology

https://go.oracle.com/LP=130709

 

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です