Hyperledger Fabric 2.0:次世代ブロックチェーン
Hyperledger Fabricは、かなり前から企業に存在しています。実際には、ブロックチェーンのユースケース向けのクリエイティブなプラットフォームの1つを提供します。しかし、時間の経過とともに改善されないテクノロジーは、すぐに時代遅れになります。そのため、Hyperledgerは新しいHyperledger Fabric2.0リリースを提供してくれました.
基本的に、以前は、同社はFabricバージョン1.4を提供していました。しかし今、私たちの中には次世代のブロックチェーンがあります。私たちのような新しいリリースにワクワクしているなら、このガイドをチェックしてください。今日は、新しいHyperledger Fabric 2.0のリリース内容と、それによって導入されたすべての機能について説明します。.
ただし、始める前に、HyperledgerFabricプラットフォームとは何かおよび最初に提供された機能を振り返ります。.
それでは、始めましょう!
HyperledgerFabricとは何ですか?
Hyperledger Fabricは、汎用性、モジュール性、およびパフォーマンスを備えたエンタープライズグレードのソリューション向けの分散型台帳プラットフォームです。したがって、ご存知のように、許可のないプラットフォームもあります。しかし、ファブリックはそれとは異なります.
誰もがプラットフォームにエントリーできるわけではありません。むしろ、システムで権限を持つユーザーに許可されたアクセスを提供します。さらに、スケーラブルで安全なパフォーマンスのためのデータプライバシーとスマートコントラクトも提供します.
そのため、どの業界でも、あらゆる種類のソリューションにHyperledgerFabricを使用できます。機会は無限であり、企業は常に分散型台帳プラットフォームから最高の出力を得るでしょう.
ネットワークシステム内のユーザーは協力しますが、企業は特定の対話のためにプライバシーを維持する必要があります。それは業界が基づいているものです。たとえば、購入者がさまざまなベンダーにさまざまな価格帯で製品を販売している場合があります。.
しかし、購入者はそれについてプライバシーを維持する必要があります。そして、これがHyperledgerFabricが役立つ場所です.
実際には、個別の販売者のトランザクションで個別のチャネルを簡単に作成できます。また、プライベートデータオプションを使用して、情報を静けさのレベルに保つことができます.
HyperledgerFabricが選ばれる理由?
実際には、Hyperledger Fabricは、主にエンタープライズグレードのユースケースに焦点を当て、オープンソースコミュニティの助けを借りて時間とともに進化しました。さらに、企業が頻繁に要求する多くの機能を提供するようになりました。それで、これらが何であるかを見てみましょう–
- モジュール式で許可されたアーキテクチャ.
- すべての取引組織間のコンセンサスのための非常に柔軟な承認ソリューション.
- 構造化データ、アカウントモデル、非構造化データ、UTXOモデルなど、さまざまなデータモデルとソリューションをサポートできる柔軟でオープンなスマートコントラクト.
- トランザクションとブロックを注文するためのプラグ可能なコンセンサスプロトコルオプション.
- トランザクションの分離またはプライベートデータモデルを使用した必要な情報のみの共有のための完全なデータプライバシー.
- JavaScript、Java、Goなどの複数のプログラミング言語のスマートコントラクトサポート.
- スマートコントラクトのバージョン管理とガバナンス.
- Solidityのサポート.
- イーサリアム仮想マシンのサポート.
- 継続的な更新、エンタープライズオペレーション、非対称バージョンのサポート.
- 範囲クエリ、キー付きクエリ、オンチェーンJSONクエリなどの4倍化可能なデータ.
Hyperledger Fabric 2.0:新機能?
初めてのHyperledgerFabricリリースはv1.0に戻りました。そして今、2番目のメジャーHyperledger Fabric2.0リリースがあります。今回は、プラットフォームのユーザーとオペレーターの両方のために多くの新機能と改善された機能が付属しています.
Hyperledger Fabric 2.0リリースにはプライバシーパターンが含まれており、新しいアプリケーション、オペレーティングノードの新機能、スマートコントラクトの強化されたガバナンスシステムなどをサポートしています。.
ただし、まだ準備ができていない場合は、最新のHyperledger Fabric2.0にアップグレードする必要はありません。したがって、準備ができたとき、または会社が移行の準備ができたときにアップグレードするオプションがあります.
これは、Hyperledger Fabric2.0の大きなプラスポイントです。.
新しいリリースのハイライトのいくつかをチェックしてみましょう–
スマートコントラクト分散型ガバナンス
Hyperledger Fabric 2.0には、特にスマートコントラクトのための分散型ガバナンスが付属しています。また、ピアにチェーンコードをインストールしてチャネルで開始できる新しいプロセスも提供します。したがって、新しいチェーンコードライフサイクル管理により、複数の組織がチェーンコードのパラメータに基づいて合意に達することができるようになりました。.
したがって、基本的には、元帳とのやり取りにチェーンコード承認ポリシーを使用します。以前のチェーンコードライフサイクルプロセスに対して他にどのような改善が提供されているか見てみましょう–
チェーンコードのパラメータへの同意
基本的に、以前のリリースでは、チェーンコード内の1つの組織のみが、他のチャネルメンバーに対してもパラメーターを設定できました。しかし、他のメンバーはチェーンコードの取得を拒否し、トランザクションプロセスに参加しない可能性があります。したがって、それを呼び出す.
ただし、新しいHyperledger Fabric 2.0は、チェーンコードに対してより柔軟なルートを提供します。今では、集中型チェーンコードモデルと分散型チェーンコードモデルの両方をサポートしています。分散型バージョンでは、チャネルでアクティブになることができるようになるために、企業はチェーンコードについて合意に達する必要があります.
慎重なチェーンコードのアップグレード
以前は、1つの組織のみがトランザクションをアップグレードできました。ただし、チェーンコードがインストールされていない場合、他のチャネルメンバーは危険にさらされます。したがって、新しいHyperledger Fabricバージョン2.0では、十分な数のメンバーが問題なくアップグレードに同意した後にのみ、チェーンコードをアップグレードできます。.
プライベートデータ収集と簡単な承認ポリシーの更新
新しいHyperledgerFabricバージョン2.0は、チェーンコードを再インストールせずにプライベートデータ収集またはポリシー構成をアップグレードできる新しい承認ポリシーを提供します。さらに、チャンネル上の膨大な数のユーザーからの同意が必要なため、ユーザーは承認ポリシーを利用できます。.
実際には、メンバーが元帳に乗るか、元帳を離れるたびにポリシーが更新されます.
検査可能なチェーンコードパッケージ
現在、Hyperledger Fabricバージョン2.0には、チェーンコード用の読みやすいtarファイルが付属しています。チェーンコードファイルを簡単に検査し、他の組織全体のインストールを決定するのに役立ちます.
チャネル上の複数のチェーンコード
以前のバージョンでは、パッケージのインストール時に指定されたバージョンと名前を使用してすべてのチェーンコードを定義するために使用されていたライフサイクル。ただし、現在では、単一のチェーンコードパッケージのみを使用して、ネットワーク上で毎回複数の名前で複数回デプロイできます。また、異なるチャネルまたは同じチャネルでそれを行うことができます.
チャネルメンバー間のチェーンコードパッケージ
Hyperledger Fabricバージョン2.0では、ユーザーは自分のユースケースに合わせてチェーンコードを拡張できます。たとえば、組織は自社内で検証用のチェーンコードを拡張できます。ただし、組織からの要件は最小限です。したがって、十分な承認が可能な場合、トランザクションは検証され、元帳に配置されます。.
したがって、ネットワーク全体を危険にさらすことなく、会社が自分の時間で問題を自動的に修正するのに役立ちます.
新しいチェーンコードライフサイクルの使用
Hyperledger Fabricバージョン2.0は、完全に新しいチェーンコードライフサイクルを提供するようになりました。ただし、新しい変更の準備ができていない場合は、HyperledgerFabricバージョン2.0で以前のライフサイクルを引き続き使用できます。.
実際には、新しいライフサイクルは、機能をv2.0に更新した場合にのみアクティブになります。.
新しいチェーンコードアプリケーションパターン
基本的に、Hyperledger Fabric 2.0ロードマップでは、独自のチェーンコードアプリケーションにも同じ分散型コンセンサス方式を使用できます。元帳にコミットする前に、組織がデータトランザクションに同意していることを確認します.
自動チェック
組織は、元帳でトランザクションを承認する前に、より多くの情報を検証するために、自動チェックをチェーンコードに追加できます。.
地方分権協定
最良の部分は、Hyperledger Fabric 2.0ロードマップを使用すると、チェーンコードで人間の意思決定をモデル化して、複数のトランザクションにまたがることができることです。ただし、契約の条件を操作するには、組織の他のユーザーが必要になります.
次に、最後に、チェーンコードの提案により、すべてのユーザーの条件が満たされていることを確認し、それに基づいてトランザクションを決済できます。.
機能
Hyperledger Fabric2.0ロードマップには特定の機能があります。これらが何であるか見てみましょう–
アプリケーションV2_0: チェーンコードに記載されているように、オペレーターの新しいチェーンコードライフサイクルを開始します.
チャネルV2_0: 基本的には変更はありませんが、注文した機能レベルとアプリケーションとの整合性を維持するために使用できます.
注文者V2_0: これはUseChannelCreationPolicyAsAdminsを制御し、通常のチャネルトランザクションの検証方法を変更します。これを-baseProfileオプションと組み合わせると、オーダーシステムで以前に継承された値を変更できます。.
ただし、機能レベルを更新するときは、常にピアバイナリも更新することを忘れないでください。また、OrdererおよびChannel機能を更新する前に、Ordererバイナリを更新してください.
プライベートデータの機能強化
Hyperledger Fabric 2.0ロードマップには、すべてのプライベートデータを一度に収集せずに共有し、それに基づいてチャネルメンバーを結合するための新しいパターンも付属しています。具体的には、個人情報をユーザーの集まりと共有することなく、単一の組織と共有することができます。.
ただし、Hyperledger Fabric 2.0のドキュメントについてもう少し詳しく説明する前に、Hyperledgerでプライベートデータが実際に何を参照しているかを見てみましょう。.
プライベートデータとは?
多くの場合、企業は特定の情報を他の企業からのチャネルで非公開にする必要があります。したがって、情報を個別に表示できる組織のみで新しいチャネルを作成する必要があります。しかし、それはまた、追加の管理、ポリシー、メンバーシップアクセスなどが必要になることを意味します.
さらに、すべての関係者が情報の一部を見ることができ、他の関係者は非表示のままであるユースケースでは、チャネル参加者がシステムを使用することもできません。.
ただし、Hyperledger Fabric 2.0ロードマップは、プライベートデータコレクションの作成に役立ちます。ここでは、すべてのケースに新しいチャネルを作成せずにプライベートデータを表示できる会社のサブセットを定義できます。.
プライベートデータ収集とは?
基本的に、コレクションは2つの異なる要素の組み合わせです–
ゴシッププロトコルを使用してピア間でブロードキャストされる実際の情報。しかし、ここでは、それを見ることが許可されている企業だけがこれを見ることができます。基本的に、このデータは、その組織のピアの元帳内のプライベート状態データベースにあります.
さらに、ここには注文サービスはなく、個人情報を見ることができません。とにかく、ゴシッププロトコルが1つのピアから別のピアに情報をブロードキャストするので、チャネルにアンカーノードを設定する必要があります.
また、チャネル内のすべてのピアの元帳に順序付けられ、承認され、書き込まれるプライベートデータのハッシュも含まれています。基本的に、これはチャネルでのトランザクションの検証の証拠として機能します。監査目的にも使用できます.
コレクションの使用
チャネル内
チャネル内の組織のグループからトランザクション全体を秘密にしておきたい場合は、チャネルを使用する必要があります.
セパレートチャンネル
Hyperledger Fabric 2.0のドキュメントによると、一連の企業から元帳の一部のみを秘密にする必要がある場合は、コレクションを使用できます。.
実際には、元帳に完全にアクセスできる組織もあれば、許可されているものだけを表示する組織もあります。トランザクションデータを注文サービスから隠したい場合は、機密保持のためにプライベートデータコレクションを使用できます.
例
状況をよりよく理解するために、Hyperledger Fabric2.0のドキュメントの例を確認してみましょう。.
たとえば、取引プラットフォームでは、チャネルに5つの企業があります.
- 商品を売る農民
- それらの商品を移動するディストリビューター
- 二者間で商品を移動する荷送人
- ディストリビューターから商品を購入する卸売業者
- 卸売業者や荷送人から商品を購入する小売業者
基本的に、ディストリビューターはすべての場合で異なる料金を請求することができます。したがって、彼は小売業者や卸売業者と他の取引をしている可能性があるため、荷送人や農民との取引を非公開にしたいと思うかもしれません。.
また、流通業者は小売業者よりも卸売業者に請求する金額が少なくなります。したがって、彼はそれを小売業者から秘密にしておきたいかもしれません.
一方、卸売業者は、荷送人や小売業者と私的な関係を持つこともできます。しかし、個人情報ごとに個別のチャネルを作成したい場合、システムははるかに複雑になります.
そうするのではなく、メンバーごとに異なるプライベートデータコレクションまたはPDCを使用できます。.
といった,
Private-Data-Collection-1: 荷送人、農民、および販売業者
Private-Data-Collection-2: 荷送人、小売業者、および卸売業者
Private-Data-Collection-3: 卸売業者および販売業者
Hyperledger Fabric 2.0のドキュメントによると、すべてのディストリビューターピアには、Shipper、Farmer、およびDistributorの関係とWholesaler、およびDistributorの関係のプライベートデータを含むプライベートデータベースがあります。.
データパターンの機能強化
Hyperledger Fabric 2.0のドキュメントによると、新しいプライベートデータパターンが実際に機能することを可能にするいくつかの拡張機能があります。これらは –
プライベートデータの共有と検証
受信側は、GetPrivateDataHash()APIを使用して、2つのシナリオで共有されているプライベートデータが本物かどうかを確認できます。
- コレクションのメンバーではないチャネルユーザーと個人情報を共有する場合.
- 1人以上のメンバーが付属する別のコレクションと共有する場合.
コレクションレベルの承認ポリシー
コレクション内のキーの他のチェーンコードレベルのポリシーを上書きできる承認ポリシーを使用して、プライベートデータコレクションを定義できるようになりました。基本的に、これを使用して、他の企業がコレクションに書き込むことを制限し、チェーンコードのライフサイクルとアプリケーションパターンを有効にすることができます。.
たとえば、大多数の企業が同意すれば取引を開始できるという承認が必要な場合もありますが、場合によっては、特定の組織からの同意が必要になることがあります。.
暗黙の組織ごとのコレクション
Hyperledger Fabric 2.0のドキュメントによると、いずれの場合も、組織ごとのプライベートデータパターンを使用する場合は、新しいバージョンでコレクションを定義せずにチェーンコードを展開できます。これは、Hyperledger Fabric2.0の主要な機能の1つです。.
外部チェーンコードランチャー
ザ・ 外部チェーンコードランチャー は、Hyperledger Fabric2.0のすばらしい機能の1つです。主に、選択したテクノロジーのチェーンコードを起動することを選択できるようになったため、オペレーターに権限を与えます。さらに、外部のランチャーやビルダーを使用する必要はなく、DockerAPIを使用してチェーンコードを実行します。.
基本的に、ピアはチェーンコードを実行または構築するためにDockerデーモンにアクセスする必要がなくなります。実稼働環境では、これは絶対に望ましくありません。そのため、ピアはDockerデーモンへの依存を排除できるようになりました。.
これで、Dockerコンテナでチェーンコードを実行する必要がなくなり、チェーンコードを実行するために独自に選択した環境を訴えることができます。.
さらに、オペレーターは、ユーザーがチェーンコードを起動または構築する方法をオーバーライドするための外部ビルダー実行可能ファイルを提供できます.
以前は、ピアがチェーンコードを起動し、それがピアに接続されていました。しかし今、あなたはそれを外部サービスとして実行することができます.
CouchDBのパフォーマンスの向上
以前は、CouchDB状態データベースを使用する場合、検証と承認で読み取りの遅延に直面していました。そのため、パフォーマンスをできるだけスムーズにすることは困難でした。しかし今では、Hyperledger Fabric 2.0の機能により、長いルックアップを高速な出力に置き換える新しいピアキャッシュを利用できます。さらに、core.yamlプロパティcacheSizeを使用してそれらを構成できます.
アルパインベースのDockerイメージ
新しいHyperledgerFabric 2.0では、DockerイメージにAlpineLinuxを使用します。 Alpine Linuxは、ネットワークのパフォーマンスを簡単に向上させることができる、より安全で軽量なLinuxディストリビューションです。.
実際には、Dockerイメージのサイズが小さくなるため、ダウンロードや起動にかかる時間が短縮されます。もっとそう、これからもあまりスペースを取らないでしょう.
同社はセキュリティを念頭に置いてAlpineLinuxをゼロから設計し、このディストリビューションの最小限の機能によりすべての脆弱性を排除しています。.
サンプルテストネットワーク
これで、fabric-samplesリポジトリに新しいサンプルテストネットワークができました。これは、Hyperledger Fabric2.0の優れた機能の1つです。実際には、このテストネットワークはモジュール式で使いやすいです。そのため、ソリューションを起動する前にスマートコントラクトやアプリケーションをテストすることに問題はありません。.
さらに、cryptogenとともに認証局を使用してネットワークを展開することもできます.
Fabricv2.0にアップグレードする方法
メジャーリリースが発生するたびに、アップグレードに関する考慮事項が大量に発生します。多くの場合、新しいバージョンを最初からインストールする必要がありますが、ダウンタイムが発生する可能性があります。ただし、Hyperledger Fabric 2.0の機能の1つは、すでにバージョン1.4を使用している場合、ダウンタイムなしでバージョン2.0に直接アップグレードできることです。.
彼らはまた、あなたがチェックアウトするためにアップグレードドキュメントを作り直して拡張し、また彼らの中にスタンドアロンの家を持っています ドキュメント. アップグレードしたいですか?その後、彼らをチェックしてください ドキュメンテーション その上で.
基本的に、最新リリースへのアップグレードは4段階のプロセスです–
- まず、元帳とMSPをバックアップする必要があります.
- 次に、注文者のバイナリを最新バージョンにローリング方式でアップグレードし始めます.
- その後、ピアバイナリについても同じ更新プロセスに従います.
- 最後に、アプリケーションチャネルと注文システムチャネルが利用可能になったときに、それらを最新の機能に更新する必要があります。さらに、すべてのリリースで機能が強化されるわけではなく、大幅な機能強化が行われることもあれば、そうでないこともあります。.
チュートリアルのアップグレード
プロセスをアップグレードする前に、そのためのチュートリアルを確認することを検討する必要があります。また、Fabricチュートリアルを確認することもできます。とにかく、ここでその短いバージョンを提供します–
- 機能をアップグレードする前に、まずすべてのコンポーネントをアップグレードする必要があります。それらが最新バージョンであることを確認してください.
- また、チャネル全体を更新する前に、すべてのノードを最新バージョンに更新してください。.
- システムで新しいチェーンコードライフサイクルを開始するには、特定の会社の承認ポリシーを追加する必要があります.
ファブリックは、ノードのアップグレードと機能の向上を標準と見なすようになりました.
注意: SDKも最新バージョンにアップグレードすることをお勧めします。 SDKはHyperledgerFabricの同等のリリース以下のバージョンを処理できる必要がありますが、最新のFabric機能を効率的に使用できるため、SDKを更新することをお勧めします。.
それでもアップグレードプロセスについて混乱している場合は、そのドキュメントを確認してください。.
結論
バージョン2.0の最新リリースは、歴史のマイルストーンです。実際には、Fabric2.0は次世代のブロックチェーンテクノロジーと見なされています。さらに、多くの機会を提供するHyperledger Fabric2.0の機能がたくさんあります.
現在のところ、このテクノロジーがどのように機能するか、または新しいバージョンが最終的にブロックチェーンのマイナス面を取り除くことができるかどうかはまだわかりません。それでも、Hyperledgerファミリーとコミュニティの新しいマイルストーンは、多くの新しい機能強化をもたらしました。私たちは最高のものを期待することしかできません。.