Azure Blockchain Serviceを試してみる1(チェーン構築編)


Azure Blockchain Serviceとは

Azure Blockchain Serviceは、Azureが提供するフルマネージドなブロックチェーンサービス(2019/8/30時点でプレビュー版)で、コンソーシアムチェーンの構築及び管理等を行うことが出来ます。
ブロックチェーン自体には、Quorumという米大手銀行JPモルガンが開発するエンタープライズ向けブロックチェーンが利用されています。
Quorumのコア部分はEthereumがベースになっており、GethをForkした実装になっています。それゆえ、Ethereumのエコシステムをそのまま利用出来るという大きなメリットがあります。さらには、Quorumはコンソーシアムチェーンで利用可能な様々なプライバシー関連の機構を搭載しています。 

ブロックチェーンを作成する

リソースの選択

Azure Blockchain ServiceはMarketplace内のサービスとして提供されています。

チェーンの構築

リソースの選択後、いくつかチェーンの設定情報を入力します。
「Review + create」をクリックすると、チェーンが立ち上がります。とっても簡単です

設定情報の説明

  • PROJECT DETAILS
    • リソースグループとリージョンを指定します。
  • BLOCKCHAIN DETAILS
    • Consortium
      • 作成するコンソーシアムの名称です。新しくコンソーシアムを作成するか、既存のコンソーシアムを選択して参加することができます。
    • Protocol
      • 2019/8/30時点ではQuorumのみサポートされています。
  • MEMBER DETAIL
    • Name
      • 新たにコンソーシアムに参加するメンバーの名称です。
    • Member account password
      • 作成するメンバーアカウントに設定するパスワードです。
    • Pricing
      • 価格プランです。開発環境用のBasicと、本番環境用のStandardの2種類から選択できます。
    • Transaction node password
      • トランザクション送信用のノードに設定するパスワードです。

構築されたチェーンの確認

「Review + create」をクリック後、10分程度でチェーンのデプロイが完了します。
デプロイが完了すると下記の画面が表示され、ブロック数やトランザクション数などの基本的なメトリクスを確認できます。

ノードの構成

チェーンを構築すると、検証ノードとトランザクションノードと呼ばれる2種類のノードが立ち上がります。
検証ノードはブロックの生成及び検証を行い、トランザクションノードはチェーンに対してトランザクションを送信する際のエンドポイントを提供します。
立ち上がるバリデータノードの数は選択した料金プランによって異なり、Basicを選択した場合は1ノード、Standardの場合は2ノードで固定となります。トランザクションノードはどちらの料金プランでも1ノードですが、こちらは後から追加が可能です。

CLIによるチェーンの構築

1. azure-cliのインストール
brew update && brew install azure-cli
2. ログイン
az login
3. グループの作成
az group create --name リソースグループ名 --location リージョン
4. チェーンの構築
az resource create --resource-group リソースグループ名 --name メンバ名 --resource-type Microsoft.Blockchain/blockchainMembers --is-full-object --properties "{ \"location\": \"リージョン\", \"properties\": {\"password\": \"トランザクションノードのパスワード\", \"protocol\": \"Quorum\", \"consortium\": \"コンソーシアム名\", \"consortiumManagementAccountPassword\": \"メンバアカウントのパスワード\" }, \"sku\": { \"name\": \"価格プラン\" } }"

※ 価格プランはStandardはS0, BasicはB0を指定する

ARMテンプレート(IaC)によるチェーンの構築

AzureではARMテンプレートを利用することで、インフラの構成をコード化することが可能です。
しかし、Azure Blockchain Serviceは2019/8/30時点ではまだARMテンプレートに未対応です。
今後対応されることを待ちましょう。

終わり

ブロックチェーンの構築をEC2上等に行う場合、冗長化やノード間の接続など何かと手間が掛かりますが、Azure Blockchain Serviceを使うことで非常に簡単に構築を行うことが可能です。この導入の簡単さはフルマネージドサービスを使う大きなメリットの1つです。

さて、次回の記事では構築したチェーンに対して、コントラクトのデプロイを行います