Ponz Dev Log

ゆるくてマイペースな開発日記

Hyperledfer Fabricのクライアントアプリケーション設計で使える資料集

お仕事でHyperledger Fabricを使ったクライアントアプリケーションを構築した時に参照していた資料リンクの備忘録です。 社内で全世界のブロックチェーン猛者が集まる場で事例紹介をすることになったので、 当時のアプリ設計で考えていたことの整理と、今ならこれみておけば良かったなと感じた資料も合わせてまとめます。

この記事では「ブロックチェーン」とはHyperledger Fabricのことを指します。

Hyperledger Fabricの基本

アプリケーション設計

アプリケーションはHyperledger Fabricの性質を押さえて設計する必要があります。 Hyperledger Fabricの基本を押さえたら、アプリ設計に反映すべきポイントを以下の資料で確認します。

実装パターンとプラクティス

主にデータ配置・設計と合わせてアプリを設計するときの資料です。 アプリ構築当時の悩みとしてブロックチェーンRDB的に使おうとするとパフォーマンスに問題がありました。 キー検索は良くても範囲検索や集計・分析するには遅すぎて使い物にならないレベルでした。 その時に参照した/しておけば良かった資料たちです。

  • Using CouchDB - hyperledger fabric

    • 自分が構築していたときのHyperldger FabricのステートDBはCouchDBだったので参照しました。
    • クエリのベストプラクティスとして、インデックスを付与すること、そもそも集計・分析用途はオフチェーンにコピーすることは公式に書いてありました。
    • 集計用途で頑張って数件ずつ並列で取得してクライアントアプリ側で集計するような設計にしたことがありましたけど、今考えるとオフチェーンに逃した方が良かったですね。ちゃんと公式ドキュメントは読もう。
  • Blockchain development design patterns

  • fabric-samples/off_chain_data

    • 上記のデザインパターンでも出てきたオフチェーンへのコピーのサンプル実装です。
    • ブロックイベントを読み取るサンプルなので、割とそのまま使えそうです。

他にも出てきたら追記します。

以上。