• トップ
  • ブログ一覧
  • 【中編】Blockchain Data Managerを使ってみた~準備編~
  • 【中編】Blockchain Data Managerを使ってみた~準備編~

    広告メディア事業部広告メディア事業部
    2020.09.01

    IT技術

    中編~Blockchain Data Managerとは~

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

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

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

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

    featureImg2020.08.28【前編】Blockchain Data Managerを使ってみた~知識編~前編~Blockchain Data Managerとは~Azure Blockchain Serviceとは「Azu...

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

    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

    後編へつづく!

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

    featureImg2020.09.03【後編】Blockchain Data Managerを使ってみた~データ送信編~後編~Blockchain Data Managerとは~「Azure Blockchain Service」は、Az...

    前編はこちら

    featureImg2020.08.28【前編】Blockchain Data Managerを使ってみた~知識編~前編~Blockchain Data Managerとは~Azure Blockchain Serviceとは「Azu...

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

    featureImg2020.08.14ブロックチェーン特集知識編ブロックチェーンとコンセンサスアルゴリズム実装編【Blockchain Data Managerを使ってみたEt...

    featureImg2020.07.17ライトコード的「やってみた!」シリーズ「やってみた!」を集めました!(株)ライトコードが今まで作ってきた「やってみた!」記事を集めてみました!※作成日が新し...

    ライトコードでは、エンジニアを積極採用中!

    ライトコードでは、エンジニアを積極採用しています!社長と一杯しながらお話しする機会もご用意しております。そのほかカジュアル面談等もございますので、くわしくは採用情報をご確認ください。

    採用情報へ

    広告メディア事業部

    広告メディア事業部

    おすすめ記事

    エンジニア大募集中!

    ライトコードでは、エンジニアを積極採用中です。

    特に、WEBエンジニアとモバイルエンジニアは是非ご応募お待ちしております!

    また、フリーランスエンジニア様も大募集中です。

    background