これはなに?
- 下記の内容を日本語(Google翻訳)にしたもの=備忘録です
- https://hyperledger-fabric.readthedocs.io/en/release-1.4/blockchain.html
- 説明がまだまだ不足していて、頭の整理も出来ていないです・・・
用語の簡易的な説明
- Hyperledger Fabric
- Linux Foundation が2015年にHyperldgerプロジェクトを設立。
- Fabricは、そのうちブロックチェーンプロジェクトの一つ。
- コンソーシアム(許可)型
- PKI(公開鍵基盤)
- デジタル証明書
- 証明書の所有者に関する一連の属性を保持している文書
- X.509証明書 ≒ 変更が不可能なデジタルIDカード
- 公開鍵と秘密鍵
- 安全な通信を可能にする暗号の魔法
- 鍵間の独特の数学的関係は、対応する公開鍵だけが一致することができ、かつ同じメッセージについてのみ、秘密鍵を使用してメッセージに署名を作成できる
- 認証局(CA)
- デジタル証明書を発行する
- アクターを、そのアクターの公開鍵と結びつけて、証明書を発行している
- Fabric CA:組み込みのCAコンポーネント
- デジタル証明書を発行する
- 証明書失効リスト(CRL)
- 何らかの理由で失効された証明書の参照リスト
- デジタル証明書
- Membership Service Provider(MSP)
- 組織内の有効なIDを管理し、規則を定義するコンポーネント
- PKI(公開鍵基盤階層モデル)を採用
- どのネットワークに参加している特定の組織のメンバーであるかを示す
- 組織(Organizations)
- メンバーの管理グループ
- X.509証明書で定義されている組織とは異なる
- 組織に対して、MSPを複数定義することができる
- 組織単位(OU:organizational units)
- 組織はOUに分割される
- チャンネルMSP
- チャンネルレベルで管理者権限と参加者権限を定義する
- →チャンネルに参加しているすべての組織にMSPを定義
- チャンネルレベルで管理者権限と参加者権限を定義する
- ローカルMSP
- クライアント(ユーザ)とノード(PeerとOrderer)に定義
- ノードローカルMSP:そのノードに対するアクセス権を定義
- ユーザローカルMSP:チャンネルのメンバ、システムへの特定ロールの所有者として認証出来る
- クライアント(ユーザ)とノード(PeerとOrderer)に定義
- 要素(9つ)
- ルートCA
- 中間CA
- 組織単位
- 管理者
- 失効した証明書
- ノードの識別情報
- キーストア(秘密鍵の場合)
- TLSルートCA
- TLS中間CA
- 共有元帳(Shared Ledger)
- world state
- 特定時点の元帳の状態を表す。≒ DB
- transaction log
- world stateの更新履歴(トランザクション)を記録する
- DB
- デフォルト:LevelDB
- world state
- スマートコントラクト
- チェーンコードで記述
- 外部のアプリケーションが元帳と対話するときに呼び出される
- 基本的に、トランザクションログとは対話しない
- Golang、Node.jsがサポート(2019/02/04現在)
- アイデンティ
- 各アクター(Peer、Orderer、管理者など)は、「X.509デジタル証明書」にカプセル化されたデジタルIDを持つ。
- デジタルID
- プリンシパル(柔軟に設定可能なパーミッション)を持つ
必要な技術
- Docker
- 3種類のノード(Peer、CA、Orderer)を、1台のサーバで動かすために必要
- 最小構成
- Peer:2台
- CA:1台
- Orderer:1台
- Golang、Node.js、Java
- チェーンコード(≒スマートコントラクト)の記述に必要
- V1.4でJavascript(Node.js)のSDKとチェーンコードのプログラミングモデルの改善が行われ、より直感的に開発できるようになった。
まとめ
細かく説明されすぎていて、結局よくわからない〜(;´∀`)という事象に陥る罠。
シンプルに説明できるようになりたい。
自分の言葉で説明できるようになりたい。
今回はここまでです。
ありがとうございました。