Amazon Managed Blockchain 〜コンソーシアム構築編〜

by 仲尾 和祥

はじめに

5/1にAmazon Managed Blockchainが一般公開されました。ブロックチェーンスタジオ内では、発表された当時から利用してみたいという話をしており、簡単なアプリケーションの構築をしてみました。本記事は、このアプリケーション構築の内容のうち、Amazon Managed Blockchainを利用してコンソーシアムを構築する手順と、Hyperledgerプロジェクトで提供されているツールとの比較結果を記載したいと思います。

Amazon Managed Blockchain

概要

Amazon Managed Blockchainは、Hyperledger FabricやEthereumのようなブロックチェーンネットワークの作成と管理を行なってくれるフルマネージド型のサービスです(2019/5/1時点では、Hyperledger Fabric v1.2のみサポートされています)。
特徴としては、ネットワーク構築を画面のクリックのみで作成し、ユーザやネットワークノードの管理ができ、他のAWSアカウントと連携したネットワーク構築が簡単に行えるようになっています。

Hyperledger Fabricの構成

Hyperledger Fabricの基本的なシステム構成は、下記の図のようになっています(IBM Hyperledger Fabric入門から引用)。Amazon Managed Blockchainは、このシステム構成のうち、CAとOrderer、およびPeerの管理を行なってくれます。

利用方法

ネットワークの構築

Amazon Managed Blockchainのトップ画面

AWS マネジメントコンソールからAmazon Managed Blockchainを選択し、下記の画面を表示する。

ネットワークの設定画面

「create network」ボタンを選択し、Hyperledger Fabricのネットワーク設定として、下記の内容を設定する。

  • 構築するブロックチェーンフレームワークの選択:
    現状、Hyperleger Fabric v1.2のみ
  • ネットワーク名:
    構築するブロックチェーンネットワークの名前
  • Voting Policy:
    ネットワーク内に新たに参加するAWSアカウントの承認を行う際の閾値。参加時に必要な承認数のパーセンテージと、参加表明から承認可否までの投票時間を設定できる。

メンバーシップの設定

Hyperledger Fabricのメンバーシップの設定として、下記の内容を設定する。

  • メンバーシップの名前
  • Adminユーザの名前とパスワード

メンバーシップとは:
Hyperledger Fabricにおけるメンバーシップとは、自身がどの組織に所属しているのかを表すIDである。Hyperledger Fabricはコンソーシアム型のブロックチェーンであり、複数の組織によって構成される。さらに、各組織ごとにPeerノードのアカウントやユーザのアカウントが独立しているため、各アカウントがどの組織に所属しているか設定するユニークなIDが必要であり、このIDをメンバーシップと呼ぶ。

設定確認

ネットワークの管理画面

Peerの追加

Peerの作成ページ

「Membersタブ」からMembers owned by youのネットワーク名を選択(今回はblockchain-studio-admin)し、下記のページを表示する。

Peerの設定

Peerノードのリソース設定を行い、Peerを作成する。

Peerの追加完了確認

他のネットワークとの連携

追加する組織の設定

Membersタブの「Propose Invitation」ボタンを選択すると、下記の画面が表示され、Hyperledger Fabricのネットワークに組織をAWSのアカウント単位で追加設定することができる。

追加組織の承認/否認

設定完了

ネットワークに参加している各組織が投票した結果、ネットワーク作成時に設定したvote proposalの割合が超えた、もしくは超えなかったことが確定した時点で組織の追加設定が完了する。なお、Yesの数が超えた場合はApproved、超えなかった場合はRejectedとしてCompletedの欄に表示される。

Invitationの承認(新たに参加するアカウント)

以降の処理は、追加する組織のAWSアカウントを使って実行する。ProposalがApprovedになると、Amazon Managed BlockchainのInvitationsページにAccept待ちのProposalが表示される。

メンバーシップの設定(新たに参加するアカウント)

ネットワークの確認(新たに参加するアカウント)

メンバーシップの設定が完了すると、Networksのページから、参加したブロックチェーンネットワークの情報を確認することができる。

Hyperledger Cello & Explorerとの比較

Hyperledger Celloとは

Hyperldger Celloは、Hyperledger Fabricのクラスタを構築・管理できるツールです。システム構成としては、下記の図のようにMaster NodeとWorker Nodeの2つがあり、Master NodeからWorker Nodeに対してクラスタの起動や稼働状況の監視を行うことができます。
なお、Worker Nodeにデプロイされるコンポーネントは、Explorer、Orderer、各組織のPeer、および各組織のFabricCAとなっています。

Hyperledger Explorerとは

Hyperledger Explorerとは、Hyperledger Fabricのネットワーク状況をモニタリングできるツールです。なお、モニタリングできる内容は下記になります。

  • トランザクション、およびブロックの情報
  • Chaincodeの数
  • PeerやOrdererのステータス
  • Channelの組み合わせ

比較結果

  • Amazon Managed Blockchainが優れている点
    • コンポーネントの構成が柔軟:
      Hyperledger Celloは、開発が追いついていないため、デプロイできるコンポーネントが固定されています。具体的には、fabric-samplesのbasic-networkの構成しか起動できないので、Peerの追加や削除、およびネットワーク構成の柔軟な設定ができる点でAmazon Managed Blockchainが優れていると言えます。
    • 組織の追加が容易:
      AWSアカウントを指定することで、柔軟にネットワークに参加する組織をフルマネージドで行なってくれます。特に、OrdererとPeerの間のTLS設定等を運用者が実施する必要がない点については優れていると感じました。
  • Amazon Managed Blockchainが使いにくい点
    • モニタリング機能が貧弱:
      Hyperledger Explorerと比較し、モニタリングできない項目として下記があります。これらについては、クラスタ構築後にExplorerを起動すればモニタリングできますが、フルマネージド型のサービスであればモニタリングしていて欲しいと感じました。
    • トランザクション、およびブロックの情報
    • Chaincodeの数

おわりに

今回の記事では、Amazon Managed Blockchainを用いてネットワークを構築する手順と、同じことが実現できるツールであるHyperledger Cello、およびHyperledger Explorerとの比較について記載しました。Hyperledger Fabricはネットワークを拡大していく部分を運用者が行う手順が面倒な上、インターネットを跨って構築するのが難しいという側面があるので、この部分が自動化されているAmazon Managed Blockchainは使いやすいサービスだと感じました。一方で、モニタリング要素が貧弱な部分があるので、この部分の改善がされるとありがたいと感じました。

次の記事では、Amazon Managed Blockchain上へアプリケーションをデプロイする手順や、実際の開発に利用するにあたっての感想を記載したいと思います。

Contact

Contact