Hyperledger Fabricについてがんばって短くわかりやすくまとめようと思います。
今回はHyperledger Fabricの概要とピア編です。
###Hyperledger Fabricとは
- Linux Foundationが開発するオープンソースのHyperledgerプロジェクトを元に開発されているブロックチェーンプロジェクト。
- 開発はIBMが主導。
- 主にエンタープライズ向けの用途を想定されている。
- コンソーシアム型ブロックチェーン
###コンソーシアム型ブロックチェーン
- 不特定多数のノードから構成されるパブリックブロックチェーンとは異なり、参加を許可された組織間で構成されている。
- パーミッションドブロックチェーンの一つ
###Hyperledger Fabricネットワークの用語
#####まずこれだけはわかればいいっていう用語
- ピア・・・チェーンコードの処理、ブロックの承認などを行うノード。必ずどこかの組織に属する
- オーダラー・・・ブロックの順序づけを行うノード
- CA・・・ネットワークに参加するための証明書を発行するノード(証明書自体は外部発行のものでも良いので別に無くてもいい)
- チェーンコード・・・スマートコントラクトの呼び方
#####知っとくといいかもな用語
- 組織(Amazon Managed Blockchainではメンバー)・・・ネットワークに参加する組織や個人
- チャネル・・・ネットワークを分割した単位。複数の組織の集合体。
- MSP・・・証明書とか秘密鍵とか色々合わせたもの。ネットワーク内で使用する情報が詰まってるIDだと思うとわかりやすい。
####ピア
ピアは各組織で最低一つ以上参加させるノードです。
ピアの中にはワールドステート(LevelDB、もしくはCouchDB)とブロックチェーンが保存されています。
ワールドステートはネットワークの現在の状態、ブロックチェーンはワールドステートに到るまでの全てのトランザクションの履歴です。
ピアの役割は主に2つあって、どちらの役割もこなせるピアと、一つしかできないピアがいます。
Endorsingピアはチェーンコードのシミュレーションとブロックの承認をどちらも行えます。
Committingピアはブロックの承認のみ行えます。
トランザクションが処理される細かい過程はトランザクション編(?)で書こうと思います。
特殊なピア
アンカーピア、リーダーピアという特殊な役割をするピアがいます。
Hyperledger Fabricはスケーラビリティを確保するためにゴシッププロトコルという通信プロトコルを使用しています。
同じチャネルにいる各組織間で効率的に通信するためのプロトコルです。
アンカーピアには最初から他の組織のアンカーピアのアドレス情報が組み込まれている、というか設定する、ので他の組織のピアとの通信を容易にして組織間での情報共有を効率的に行う役割を果たしています。
リーダーピアはオーダラーからの情報を組織の中で最初に受け取るピアです。
指定しなければランダムで選ばれます。
####まとめ
今回はピア編でした。
もっと書く事ある気がするけど1分でって言っちゃったからなあ
ソースは主に公式ドキュメントです:https://hyperledger-fabric.readthedocs.io/en/latest/whatis.html