Hyperledgerプロジェクトの要点まとめ

# はじめに
先日Blockchain Engineer Nightというイベントに参加しました。
そこでHyperledgerプロジェクトの動向について説明がありました。
Hyperledger関連はFabricは触ったことがあり、それ以外はIrohaを知っている程度でした。
あまりにも知らないことが多かったので、イベントで説明のあった内容や自分で調べた内容を残します。

# 記事の内容
Hyperledgerプロジェクトのページに掲載されているGreenhouseをもとに要点や参考になるサイトをまとめます。

[Hyperledgerプロジェクト](https://www.hyperledger.org/)

# Distoributed Ledgers

## Hyperledger BESU(ハイパーレジャー・ベイス)
Javaで作られたEthereumクライアント
Ethereumのパブリックネットワークやテストネット、プライベートネットワークへの接続が可能
コンセンサスアルゴリズムはPoWだけでなく、PoA、IBFTを選択することが可能
https://www.hyperledger.org/projects/besu

## Hyperledger BURROW(ハイパーレジャー・バロー)
Ethereumスマートコントラクトの実行基盤
EVM（Ethereum Virtual Machine）の仕様を満たすように作られた、パーミッション型のスマートコントラクト実行基盤
コンセンサスアルゴリズムにはPoS（プルーフ・オブ・ステーク）を採用
BURROWだけでブロックチェーンネットワークを構成する訳ではなく、FabricやSawtoothなどと組み合わせて使用される
https://www.hyperledger.org/projects/hyperledger-burrow

このサイトに仕組みや構成など詳しく記載されています
https://gaiax-blockchain.com/burrow

## Hyperledger Fabric
IBM社が進めるブロックチェーン
許可されたメンバーのみが参加する許可制のブロックチェーンです。
https://www.hyperledger.org/projects/fabric

こちらのチュートリアルに沿って学習すると基本的な構成が理解出来ると思います。
https://www.ibm.com/developerworks/jp/cloud/library/cl-hyperledger-fabric-basic-1/index.html

## Hyperledger INDY
分散ID管理ブロックチェーン：SSI（Self-Sovereign Identity）自己主権型アイデンティティ管理の実現。W3CのDIDsへの対応
DID対応のためのライブラリやツール、再利用可能コンポーネントを提供

INDYはプライバシー保護テクノロジーとして、Hyperledgerコンソーシアム内だけでなく、他のブロックチェーンネットワークでも利用可能
ドキュメントが豊富
https://www.hyperledger.org/projects/hyperledger-indy

## Hyperledger Iroha
デジタル資産や個人ID管理に必要不可欠な機能を備えている。
また、企業のニーズに対応可能な、効率的で信頼性が高い。
迅速にノード起動が出来るという点は非常にポイントだと思います。

このドキュメントに環境構築手順が載っています。
専用の仮想マシンを１０分程で完了できました。
https://iroha.readthedocs.io/ja/latest/

##Hyperledger SAWTOOTH
モジュラー型アキテクチャを念頭に設計されており、コンポーネントが部品化されている。
部品化されたコンポーネントは置き換えが可能となっている。

コンセンサスアルゴリズムにはPoET(Proof of Elapsed Time)と開発・検証用の「Dev Mode」がある。
PoETはEnclaveによって決められた時間が一番短いノードが選ばれる。

こちらのサイトが非常に分かり易く纏められてありました。
https://akiyoko.hatenablog.jp/entry/2017/12/17/053426
https://gakumura.hatenablog.com/entry/2018/12/29/023459

#Libraries
## Hyperledger ARIES
ブロックチェーンクライアント用の暗号化されたwalletやブロックチェーンとのインターフェースを提供
セキュアな秘密鍵の管理にHyperledger Ursaのライブラリをサポート
Indyのインターフェイスを実装
Fabric,Ethereumへの対応予定
https://www.hyperledger.org/projects/aries

## Hyperledger QUILT
ブロックチェーン間を繋げる技術（FabricとSawtoothなど）
この論文（英語）に詳しい概念が載っているらしいです。
https://interledger.org/interledger.pdf

https://www.hyperledger.org/projects/quilt

## Hyperledger TRANSACT
スマートコントラクトの実行基盤を提供
スマートコントラクトをTRANSACT上で実行し、Fabricなどのブロックチェーンネットワーク上でコントラクトを実行させる。
TRANSAT上でコントラクトを実行させ、ブロックチェーンネットワークに送信することにより、ブロックチェーンプラットフォーム毎にコントラクトの言語が異なるという不便さを吸収することができる。
https://www.hyperledger.org/projects/transact

## Hyperledger URSA
共通の暗号ライブラリを提供
LibUrsa：単純なデジタル署名、暗号化方式、および鍵交換などの暗号化を提供する
LibZmix：ゼロ知識証明（SNARKs）を提供するライブラリ
https://www.hyperledger.org/projects/ursa

# Tools

## Hyperledger AVALON
オフチェーンで信頼済みのネットワークを構築するトラステッド・コンピューティングのツール。
オフチェーンはブロックチェーンに記録されない取引であるため、このやり取りを信頼性の高いものにすることで、FabricやSawtooth、Besuなどのスケーラビリティの課題を解決が期待される。

https://www.hyperledger.org/projects/avalon

## Hyperledger EXPLORER
ブロックチェーンネットワークのViewer
ブロックの高さ/トランザクション/ノードのステータスなどを可視化
Fabric v1.3に対応
https://www.hyperledger.org/projects/explorer

## Hyperledger CELLO
ブロックチェーンネットワークのデプロイメントツール
ネットワークのライフサイクル（構築、開始、停止、削除）管理機能を提供
Docker,Kubernetesをサポート
ドキュメントが揃っていないので環境構築は大変らしい
https://www.hyperledger.org/projects/cello

## Hyperledger CALIPER
ブロックチェーンのベンチマーク測定ツール
TPSやレイテンシー、リソースの使用量の測定、測定結果のレポーティング機能を提供
https://www.hyperledger.org/projects/caliper

# Domain-Specific

## Hyperledger GRID
ブロックチェーンをサプライチェーンで活用するためのフレームワーク
GRIDだけでブロックチェーンネットワークを構築するためのものではなく、FabricやSawtoothで構築したブロックチェーンネットワークに接続して利用する。
サプライチェーンに特化した内容であれば、Fabricで一から設計するよりも簡単に利用できる。
https://www.hyperledger.org/projects/grid

#最後に
気付いたらプロジェクトの数が凄く増えてたなという印象です。
調べた内容はかなり表面的な内容なので、引き続き情報収集をしていこうと思います。

調べていると環境構築の手順はそこそこあるなと感じましたが、そこから先の資料はまだ少ないです。
個人的に私の仕事で使えそうだなと思ったのはSawtoothとGRIDの組み合わせかな感じてます。
なので、ここら辺の学習を進めて記事として残していければなと思います。