1. HOME
  2. ブログ
  3. IT技術
  4. 【中編】Blockchain Data Managerを使ってみた~準備編~

【中編】Blockchain Data Managerを使ってみた~準備編~

中編~Blockchain Data Managerとは~

「Azure Blockchain Service」は、Azure上でブロックチェーン技術を使うためのプラットフォームです。

「Blockchain Data Manager」は、「Azure Blockchain Service」のトランザクションデータについて、キャプチャ」「変換」「配信」という3つの連続した操作を統合します。

今回は、前回に引き続き、Blockchain Data Managerを使ってみたいと思います!

前編をご覧になってない方は、まずはそちらからお読みください。

こちらの記事もオススメ!

Ⅰ.ブロックチェーンアプリケーションの追加

Blockchainアプリケーション作成準備

「HelloBlockchain」ブロックチェーンアプリケーションを Blockchain Data Manager に追加して、イベントとプロパティーの状態をデコード(復号)できるようにします。

アプリケーションを追加するために、Visual Studio Code で HelloBlockchain.json と HelloBlockchain.sol 上からスマートコントラクト ABI とバイトコードを取得し、アプリケーションで設定します。

(1) スマートコントラクトABIの取得

Visual Studio Code 上で HelloBlockchain.json からスマートコントラクト ABI を取得します。

まず、右クリックで [Copy Contract ABI] を選択します。

次に、データーをコピーした abi.json ファイルを作成し、プロジェクトフォルダーに保存します。

※次工程の「2.ストレージアカウントの作成」で、ここで作成した Contract ABI URL を利用します。

(2) バイトコードの取得

(1) と同じように、Visual Studio Code 上で HelloBlockchain.json からトランザクション Bytecode を取得します。

まず、右クリックで [Copy Transaction Bytecode]を選択します。

次に、データをコピーした bytecode.json ファイルを作成しプロジェクトフォルダーに保存します。

2.ストレージアカウントの作成

ストレージアカウント内のコンテナーに、スマートコントラクト ABI(abi.json)と、バイトコード(bytecode.json)をアップロードして、URL を作成します。

これで、Blockchain アプリケーションを作成するための準備が完了です。

ストレージアカウントは、HTTP または、HTTPS 経由でデータにアクセスできる機能(BLOB、ファイル、キュー、テーブル、ディスク)がパックで提供されています。

画面イメージ

ビッグデータの取り扱いについて

Azure データストレージでは、ビッグデータを扱う事ができます。

<詳細>ー<Data Lake Strage Gen2> より『有効』を選択してください。

参考ページ

ストレージアカウントの種類・その他の設定の詳細については、下記ページをご覧ください。

なお、ストレージアカウント内の全てのオブジェクトは、グループとしてまとめて課金されます。

【Microsoft Docs:ストレージアカウントの概要】
https://docs.microsoft.com/ja-jp/azure/storage/common/storage-account-overview

3.コンテナーの作成

「1.Blockchain アプリケーション作成準備」で作成したスマートコントラクト ABI とバイトコードを使用し、コンテナーを作成します。

コンテナーは、セキュリティートークンを作成するためのものです。

(1) メニューの選択

Data Lake Storage の[コンテナー]を選択します。

(2) コンテナーを作成

[+コンテナー]をクリックし、[新しいコンテナーを作成]を選択します。

(3) BLOBのアップロード

作成したコンテナーを開き、BLOB(abi.json、bytecode.json)をアップロードします。

(4) アップロードしたファイルの編集

画面中央にアップロードした BLOB が表示されます。

チェックボックスで選択すると、上部のタブに[表示または編集]が表示されます。

(5) SASの生成

[SASの生成]を選択し、[SASトークン及びURLの生成]します。

(6) SASトークン、URLの作成完了

作成された SAS トークンと URL は、「Ⅲ.Blockchain Applications の作成」で ABI Contract URL と Bytecode Contract URL として使用します。

Ⅱ.Blockchain Data Managerインスタンスを作成する

Blockchain Data Manager インスタンスは、データベースにイベント操作でデータ送信する EventGridTopic 機能を使えるようにするプログラムです。

インスタンスを設定することで、データベースとコントラクトを接続し、アプリケーションにデータを送り、分析できるようになります。

1.ブロックチェーンメンバーの作成

まず、Azure Blockchain Serviceでブロックチェーンメンバーを作成します。

設定項目は、下図を参考にしてください。

一部のリージョンでは、機能が利用できない場合があるため、場所はヨーロッパか、米国で設定してください。

ブロックチェーンメンバー作成の詳細については、下記のページを参考にしてください。

【Microsoft Docs:Azure portal を使用して Azure Blockchain Service ブロックチェーンメンバーを作成する】
https://docs.microsoft.com/ja-jp/azure/blockchain/service/create-member

2.インスタンスの作成

Blockchain Data Service 画面の左の項目から、Blockchain Data Manager を選択します。

[追加]を選択して、[Add a Blockchain Data Manager]から情報を入力します。

エンドポイントの設定は、Relay での設定後にドロップダウンで選択できるようになります。

また、Transaction NodeEvent Grid Endpointは、CosmosDB 内のデータエクスプローラー設定後に、ドロップダウンで選択できるようになります。

Blockchain Data Managerによるセキュリティ強化について

Blockchain Data Manager は、Azure のMarketplace から開発に必要なアプリを選択し、設定して使います。

セキュリティーに関するものやフロントエンドとの連携に関するものなど、様々なアプリを組み合わせることができます。

それによって、フロントエンドとバックエンドの連携のセキュリティーを強化できます。

Ⅲ.Blockchain Applicationsの作成

Blockchain Applications は、Blockchain Data Manager 上で動作するコントラクトとデータベースを繋げるためのアプリケーションです。

アプリケーションを追加するには、前項の「Ⅱ.3 コンテナーの作成」で生成した Contract ABI と Contract Bytecode が必要です。

アプリケーションの追加手順

Ⅳ.Relayの設定

Relayとは

「Relay」は、Azure Blockchain の Marketplace で提供されている有料のアプリケーションです。

イベントベースのデータトランザクション設定を、Event Grid Topic 上で実行します。

機能として、セキュリティで保護されたオープンプロトコル仕様の進化版である「Hybrid接続」を利用できることが特徴です。

また、管理権限設定やポリシーの設定など、セキュリティーを強化できるアプリケーションです。

「Relay」の概要は、以下のページもご覧ください。

【Microsoft Docs:Azure Relayとは】
https://docs.microsoft.com/ja-jp/azure/azure-relay/relay-what-is-it

RelayでHybrid接続URLとポリシーを設定する

では、「Relay」を使って、Hybrid接続URLとポリシーを設定してみましょう。

[Event Gridトピック]ー[イベントサブスクリプションの作成]でエンドポイントの設定の際に、「リレー名前空間」の設定があります。

そこで、「Relay」を使用して設定を行います。

手順は、以下のとおりです。

(1) Relayの検索

[Marketplace]ー[統合]ー[Relay]を検索し、[作成]します。

(2) 名前空間の作成

(3) Hybrid接続URLの作成

(4) 共有アクセスポリシーの作成

SAS ポリシー(Root Manage Shared Accesskey)を設定します。

[主キー][プライマリ接続文字列]は、「Ⅸ.3 Relayを使用しトランザクションデータを Node.js で確認する場合」で使用します。

Ⅴ.Azure Cosmos DBの作成

Azure Cosmos DBとは

Azure Cosmos DBは、Azure Blockchain 用のデータベースです。

データベースとコンテナーを追加します。

データエクスプローラーや Visual Studio Code にコンソールを接続してから、トランザクションデータを確認する事ができます。

Azure Cosmos DBの作成手順

(1) Cosmos DBアカウントの作成

Cosmos DBのアカウントを作成します。

(2) デプロイ完了!

アカウントの作成が完了すると、ポータルページに「デプロイが完了しました」と表示されます。

(3) コンテナーの作成

データエクスプローラーでコンテナーを作成します。

(4) DB作成完了!

作成した新しいデータベースとコンテナーが、データエクスプローラーに表示されます。

また、Blockchain Data Service のトランザクションノードに作成したノードが表示されます。

(5) 接続確認

データエクスプローラーでサンプルアプリを使い、接続を確認します。

クイックスタートを使用すると、ローカルホスト(http://localhost:3000)でトランザクションデータの確認ができます。

クイックスタートでは、「.NET」「Xamarin」「Java」「Node.js」「Python」のサンプルアプリをダウンロードして利用できます。

(6) データファイルの編集

Visual Studio Code でアプリの開発をする場合、機能拡張からノードに接続してデータファイルの編集かできます。

Visual Studio Code から AzureBlockchain のノードに接続する時には、トランザクションノードのパスワードが必要になります。

なお、本項で使用した機能拡張は、以下のものです。

  1. Azure Blockchain
  2. Logic Apps
  3. CosmosDB

後編へつづく!

(株)ライトコードは、WEB・アプリ・ゲーム開発に強い「好きを仕事にするエンジニア集団」です。
ブロックチェーン関連のシステム開発依頼・お見積もりはこちらまでお願いします。
また、ブロックチェーンエンジニアを積極採用中です!詳しくはこちらをご覧ください。

※現在、多数のお問合せを頂いており、返信に、多少お時間を頂く場合がございます。

後編はこちらになります。

前編はこちら

こちらの記事もオススメ!

ライトコードよりお知らせ

にゃんこ師匠にゃんこ師匠
システム開発のご相談やご依頼はこちら
ミツオカミツオカ
ライトコードの採用募集はこちら
にゃんこ師匠にゃんこ師匠
社長と一杯飲みながらお話してみたい方はこちら
ミツオカミツオカ
フリーランスエンジニア様の募集はこちら
にゃんこ師匠にゃんこ師匠
その他、お問い合わせはこちら
ミツオカミツオカ
   
お気軽にお問い合わせください!せっかくなので、別の記事もぜひ読んでいって下さいね!

一緒に働いてくれる仲間を募集しております!

ライトコードでは、仲間を募集しております!

当社のモットーは「好きなことを仕事にするエンジニア集団」「エンジニアによるエンジニアのための会社」。エンジニアであるあなたの「やってみたいこと」を全力で応援する会社です。

また、ライトコードは現在、急成長中!だからこそ、あなたにお任せしたいやりがいのあるお仕事は沢山あります。「コアメンバー」として活躍してくれる、あなたからのご応募をお待ちしております!

なお、ご応募の前に、「話しだけ聞いてみたい」「社内の雰囲気を知りたい」という方はこちらをご覧ください。

ライトコードでは一緒に働いていただける方を募集しております!

採用情報はこちら

書いた人はこんな人

ライトコードメディア編集部
ライトコードメディア編集部
「好きなことを仕事にするエンジニア集団」の(株)ライトコードのメディア編集部が書いている記事です。

関連記事