はじめに
ブロックチェーンベースのプロダクトを開発している方の中には、「Microsoft」が提供する「Azure Blockchain Service」を活用している方も多いのではないでしょうか?
本記事では、2019年10月下旬のAzure Blockchain Serviceのアップデートについて紹介していきます。
【重要】
従来、Azure上で提供されてきたマネージドBaaS(Blockchain as a Service)の「Azure Blockchain Service」ですが、2021年9月10日を以って提供終了となります(2021年5月10日以降は新規メンバーの作成やデプロイはサポート対象外となりました)。
移行先の選択肢については公式ドキュメントで案内されており、2021年5月現在、開発フェーズに応じて下記が提示されています。
【運用またはパイロット段階のプロジェクト】
・Consensysの提供するマネージドBaaS「Quorum Blockchain Service」
・Azure IaaS VM(ブロックチェーンリソース管理テンプレートが用意されている)
【新規または評価フェーズのプロジェクト】
・Azure Marketplaceで提供されているQuorumテンプレートまたはBesuテンプレート
参考:Azure Blockchain Service を移行する
Azure Blockchain Serviceとは?
まずはAzure Blockchain Serviceについて簡単におさらいします。詳細については下記から、既にご存知の方は次の章からご覧ください。
▼詳細はこちら
Azure Blockchain Serviceにおけるブロックチェーン アプリ開発手法
Azure Blockchain Serviceは、エンタープライズ向けのブロックチェーンネットワークの構築や開発、ガバナンスをサポートするフルマネージドサービスです。主に以下の機能が提供されています。
- ネットワークの簡単なデプロイと運用
- コンソーシアム管理
- Truffleなどの使い慣れた開発ツールによるスマートコントラクトの開発
Azure Blockchain Serviceは2019年5月にローンチしたサービスであり、ローンチ後最初にサポートされるプラットフォームとしては、企業向けイーサリアムの標準化団体「The Enterprise Ethereum Alliance」(EEA)の開発する「Quorum」が選択されました。
参考:What is Azure Blockchain Service?
なお、Quorumの概要やユースケースは以下の記事で解説しています。
▼詳細はこちら
許可型ブロックチェーンQuorumとは?事例&特徴を解説
Azure Blockchain Serviceがアップデート、Corda Enterpriseに対応
10月23日、Microsoftの公式リリースで、Azure Blockchain Serviceが「Corda Enterprise」のサポートが発表されました。
Cordaとは?
Cordaはソフトウェア企業「R3」(R3CEV LLC)が開発を主導する分散型台帳基盤です。トランザクションをネットワーク全体で共有しない仕組みになっているため、同一コンソーシアム内であってもプライバシーが担保されています。
また、「バンク・オブ・アメリカ」や「みずほ銀行」など、200以上の企業・団体がR3コンソーシアムに参加しています。Cordaの概要については、以下の記事をご覧ください。
▼詳細はこちら
分散型台帳基盤の「Corda」とは何か?特徴やユースケースを解説
マネージドサービスAzure Blockchain ServiceでCordaをサポート
2016年以降、MicrosoftとR3は協働しており、既にAzure上ではCordaベースのアプリケーションが稼働しています。代表例としては、海洋保険のブロックチェーンプラットフォーム「Insurwave」や、貿易金融(トレードファイナンス)の電子化プロジェクトである「Marco Polo」が挙げられるでしょう。
これまでもCordaの開発環境がAzureで提供されていましたが、クライアントからの最大のリクエストはマネージドサービスであるAzure Blockchain Serviceで、Cordaをサポートすることだったようです。2019年10月のアップデートはこうした顧客ニーズに応えたものだと言えるでしょう。
今回のアップデートで提供されるのは、適切なCordaネットワークに接続し、ノードの健全性を管理、ノードや基盤となるソフトウェアの両方の更新を行うCordaノードをセットアップするサービスです。
それそれ簡単に紹介していきましょう。
Cordaノードのデプロイとネットワークへの接続が大幅に簡素化
Azure Blockchain Serviceでは、Corda Enterpriseの最新バージョンをサポートしており、ノードのプロビジョニングに加えて、ノードを適切なネットワークに自動接続します。選択されるネットワークは、Cordaネットワーク(Livenet/Testnet/UAT環境)またはプライベートCordaネットワークのいずれかです。
Azureポータル内または、REST APIやCLI、PowerShellを通じたプログラムによって、Cordaノードを構成しデプロイできるようになったため、Cordaノードのデプロイと接続が大きく簡素化されています。
APIでCordaノードとCorda分散アプリケーション(CorDApps)の管理を簡素化
Azure Blockchain Serviceでは、CordaノードとCordaベースの分散アプリケーション(CorDApps)を管理するためのAPIが提供されています。また、「Corda node management」がノードへのアクセス制御やノードのスケールアップ・スケールダウンなどを行う機能を提供し、「CorDapp management」を使うことでCorDAppsを簡単に追加、管理、バージョン化することが可能です。
CordaノードとCorDAppsの健全性やモニタリング、ログ情報を統合
Corda on Azure Blockchain Serviceでは、CordaノードやCorDAppsのモニタリングできる「Azure Monitor」が提供されています。Azure Monitorを使用することで、ログとイベントに基づいたアラートとアクションをカスタマイズ可能です。
さらに、ヘルスデータや監視データに基づき、自社システムに特化したビジュアル化とダッシュボードの作成ができます。
参考:Introducing Corda Enterprise on Azure Blockchain Service
OpenZeppelinのライブラリがMicrosoft Azureに統合
Azure Blockchain ServiceにCordaが追加されたニュースとほぼ同時期に、「OpenZeppelin Contracts」とMicrosoft Azureの統合も発表されました。
「OpenZeppelin」は、ブロックチェーン向けのセキュリティ監査・開発ツールのサービスプロバイダです。より安全なスマートコントラクトを実装する際のフレームワークとして多くの開発者に利用されています。
今回、OpenZeppelinとMicrosoftがローンチした「OpenZeppelin Audited Smart Contract library」は、「Microsoft Azure Blockchain Development Kit VSCode」のプラグインの一部として提供されます。この統合によって、VSCode(Visual Studio Code)上でOpenZeppelin のライブラリを利用しながら、安全で監査しやすいスマートコントラクトを実装できるようになりました。
参考:Microsoft integrates OpenZeppelin Contracts into Microsoft Azure
なお、Azure Blockchain Development Kitを使ったプロジェクトの生成〜スマートコントラクトのビルド&デプロイの流れは以下の記事で解説しています。
▼参考
Azure Blockchain Development Kitでサクッとを構築してみた
まとめ:フルマネージドサービスの拡張によって効率的な開発をサポート
エンタープライズ向けの分散型台帳基盤として、Corda上では多くのプロジェクトが開発されています。フルマネージドサービスであるAzure Blockchain Serviceへの対応は、Cordaベースのアプリケーション開発者にとって朗報と言えるでしょう。
さらに、OpenZeppelin ContractsがMicrosoft Azureに統合されたことで、より専門的で安全な開発を効率的に行える環境が整備されました。今後もAzure Blockchain Serviceのアップデートには要注目です。