• トップ
  • ブログ一覧
  • Azure Blockchain Development Kit でコントラクト作成
  • Azure Blockchain Development Kit でコントラクト作成

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

    IT技術

    Azure Blockchain Development Kit とは?

    「Azure Blockchain Development Kit」は、Visual Studio Code の機能拡張です。

    Blockchain コントラクトの作成に必要なツールがパッケージ化され、ワンクリックでインストールができます。

    Blockchain コントラクトの作成には、準備しなければならない言語が多く、言語同士の接続プログラムも個別に違います。

    それに対し、デバッカーで確認できるようになるため、開発作業が効率的になります。

    また、Azure Blockchain は、データベースとの連携までを一連の操作で完結できます

    そして、フロントエンド、バックエンド共に、グループで開発できる環境を整えることが可能で、dApps の製作をするときに必要なツールも揃っています。

    バックエンドの環境設定をする

    今回は、「Azure Blockchain Development Kit」を使い、バックエンドの環境設定をしていきます

    また、「Azure」「Node.js」「npm」「Solidity」「Truffle」「Ganache」 に関する機能拡張も併せてご紹介したいと思います。

    Azure Blockchain Service の設定

    初めに、Azure Blockchain Service の設定を行います。

    まず、Visual Studio Code を使い、Azure Blockchain Service コンソーシアムネットワークに接続します。

    Azure Blockchain のアカウント作成をする

    Blockchain 設定画面

    【すべてのサービス】>【ブロックチェーン】を選択します。

    その後、【Azureサービス】>【その他のサービス】を選択します。

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

    次に、【基本】タブから、以下の項目を設定します。

    サブスクリプションサービスの購入形態
    リソースグループ名前を決めます。リソースは、json ファイルが保存されるコンテナーです。
    領域東日本

    その後、【確認および作成】ボタンをクリック。

    すると、【ブロックチェーンメンバーの作成】画面が表示。

    【作成】をクリックすると、「デプロイが完了しました」と表示されます。


    次に、【リソースに移動】ボタンをクリックして【操作の詳細】を確認します。

    リソースのテンプレートを作成する

    リソースのテンプレートを作成するため、以下を設定します。

    variables(変数)」を設定します。

    画面上部のタブから【ライブラリ】に追加し、それから【デプロイ】してください。

    (Visual Studio Codeで連携後にダウンロード後に編集できます。)

    リソースのテンプレートは、設定用の json ファイルを作成し、テンプレートとして保存・出力して、Visual Studio Code で編集することもできます。

    Visual Studio Code の設定

    Visual Studio Code を Azure Blockchain と連携するため、npm の設定をしたのち、Visual Studio Code の機能拡張から「Azure Blockchain Development Kit」をインストールします。

    Visual Studio Code で Workspace を作成

    Visual Studio Code を開き、Workspace を作成します。

    Workspace 上でパスを設定

    Workspace 上で、パスを設定します。

    workspace でパスを設定して再起動すると、自動で Azure Blockchain Network が表示されます。

    Visual Studio Code のターミナル設定

    npm を構成

    Visual Studio Code との連携で、ターミナルから npm を構成します。

    【Macの場合】
    Mac では、ターミナルから設定した後に Visual Studio Code を開き、Azure Blockchain Development Kit for Ethereum 機能拡張をインストールした後に再設定します。

    【Windowsの場合】
    Windows では、node-gpy モジュール用にインストール済みのC++コンパイラが必要です。MSBuild Tools を使用して、npm を構成する必要があります。

    Visual Studio 2017 の場合

    以下のコマンドを使用して、npmを構成します。

    1npm config set msvs_version 2017 -g

    Visual Studio 2019 の場合

    以下のコマンドを使用して、npm に対して、MSBuild Tools のパスを設定します。

    1npm config set msbuild_path "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe"

    上記以外の場合

    上記以外の場合は、管理者権限を持つコマンドシェルで以下を実行。

    1npm install --global windows-build-tools

    スタンドアロンの、VS ビルドツールをインストールします。

    ログインし直す

    ターミナルから、管理者権限のある OS アカウントにログインし直します。

    Azure Blockchain Development Kit をインストール

    Visual Studio Code の機能拡張から、「Azure Blockchain Development Kit」をインストールします。

    Azure Blockchain Development Kit を使って設定する

    次は、Azure Blockchain Service にログインした状態で、Visual Studio Code を再起動します。

    すると、以下のようなWelcome ページが表示されます。

    機能拡張で「Azure Account」をインストールしておくと、既に Azure Blockchain Service の設定はしてあるので、Visual Studio Code から Azure Blockchain にサインインできるようになります。

    Azure Blockchain に接続

    この Welcome ページから、「Node.js」「Git」「Python」「npm」「Solidity」「Truffle」「Ganache CLI」 のボタンをクリックすれば、インストールできます。

    サインイン後には、左サイドバーのエクスプローラーに Azure Blockchain ネットワークが表示されます。

    表示されている【Connect to Network】をクリックすると、コマンドパレットが自動的に開くので、Azure Blockchain Service を選択します。

    Visual Studio Code 機能拡張について

    「Node.js」「Git」「Python」「npm」「Solidity」「Truffle」「Ganache CLI」 に関する機能拡張をご紹介します。

    Azureに関する機能拡張

    Azure PipelineVS Code 上で Azure の操作ができます。
    Azure AccountVS Code から Azure Blockchain にログインできます。
    Azure Blockchain Development Tools for Ethereum上記で使用した機能拡張で、Welcome ページからインストールするだけで、必要な言語や外部アプリへ接続できるようになります。
    Azure CLI ToolsVS Code 上から Shell を使用し、リソースグループや Blockchain メンバーを作成することができます。
    Azure Resource Manager(ARM) Toolsテンプレートを使用して、インフラストラクチャーを作ることができます。

    Node.jsに関する機能拡張

    • Node.js
    • Node Debug
    • VS Code for Node.js

    npm に関する機能拡張

    • npm

    Truffle/Solidityに関する機能拡張

    • Solidity
    • Solidity Extented
    • solidity_macos
    • Solidity Debugger

    Ethereumに関する機能拡張

    • Ethereum Security Bunddle
    VyperMist で Solidity と Vyper を選択することができます。

    その他機能拡張

    Japanese Language Pack for Visual Studio CodeVisual Studio Code を日本語のインターフェイスにしたい方は、必ずインストールして下さい。

    設定を確認をする

    Azure Blockchain へのログイン後は、設定を画面右下部のパネルから接続を確認することができます。

    パネルの【ターミナル】タブからは、パスを設定したディレクトリへのログインを確認する事が出来ます。

    また、「Azure Blockchain Development Kit」でインストールしたものは、【出力】タブからバージョンを確認することができます。

    Azure Blockchain Development Kitで簡単!コントラクト作成!

    Visual Studio Code の機能拡張「Azure Blockchain Development Kit」は、出力されたファイルのデータに変更を加えるだけで、コントラクトを作成できます

    Azure Blockchain に接続

    Azure Blockchain に接続し、エクスプローラーの Azure Blockchain から【Connect Network】を選択します。

    コマンドパレットを選択

    【メニュータブ】>【表示】>【コマンドパレット】を選択します。

    Azure Blockchain: New Solidity Projectを入力

    コマンドパレットに「Azure Blockchain: New Solidity Project」を入力します。

    Create Basic Projectを選択

    【Create Basic Project】を選択します。

    プロジェクトのフォルダを決定

    【Select New Project Path】ボタンをクリックし、フォルダ指定します。

    新たにフォルダを作成したい場合は、【新規フォルダ】ボタンをクリックします。

    フォルダ名を入力

    フォルダ名を入力します。

    プロジェクト作成を決定

    パスを確認し、【Select New Project Path】ボタンをクリックします。

    コントラクト作成完了

    コントラクトファイルのパッケージが、新規に作成したフォルダに出力されました。

    このように、Visual Studio Code の場合は、一括で build フォルダが作成され、contract フォルダごと、同時にコントラクトも出力されます。

    ローカルで Mac ターミナルからコンパイルすると、build フォルダが出力され、フォルダの中に contract フォルダ中のコントラクトも出力されます。

    コントラクトのコンパイル

    次は、コントラクトをコンパイルします。

    【HelloBlockchain.sol】上で右クリックし、【Build Contract】を選択します。

    コンパイルが完了すると、contract と同じディレクトリに build フォルダーが出力され、contract フォルダの中に【HelloBlockchain.sol】と【Migrations.sol】のコントラクトが入っています。

    コントラクトのデプロイ

    スマートコントラクトをデプロイします。

    Truffle では、migration スクリプトを使用してデプロイしますが、Visual Studio Code 上ではマウスクリックだけでデプロイ可能です。

    また、生成されるニーモニックを、「.env」形式でプロジェクトフォルダーに保存します。

    Deploy Contracts を選択

    【HelloBlockchain.sol】上で右クリックし、メニューから【Deploy Contracts】を選択します。

    すると、コマンドパレットが自動的に開きます。

    ニーモニックの生成

    【Generate mnemonic】(ニーモニックの生成)を選択します。

    すると、プロジェクトフォルダーが開くので、ファイル名を決めて保存します。

    まとめ

    Visual Studio Code で  Blockchain コントラクトの作成をするメリットは

    機能拡張をインストールすれば、コントラクトを Azure ネットワークにデプロイするまでの工程を簡略化し、デバッカーでエラーを見つけやすいこと

    です!

    Blockchain は、サーバー設定からブラウザでの表示まで、使用するプロクラミング言語やアプリ、ライブラリが多いので、バージョンチェックは必須となります。

    バージョンが変わると、コードを修正しなければならなくなる事もあるので、気をつけて下さい。

    今回作成されたコントラクトは、「Azure Blockchain Development Kit」で自動で生成されたものなので、Azure Blockchain Network との連携が上手くいかないことがあります。

    その場合には、Azure コンソーシアムの設定、npm の構成を確認して下さい。

    Truffle Suite は、Blockchain コントラクト作成フレームワークの定番になりつつあります。

    Visual Studio Code の機能拡張にも便利なツールが豊富に揃っているので、色々試してみてくだいね!

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

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

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

    広告メディア事業部

    広告メディア事業部

    おすすめ記事

    GitHubActionsのランナーに触れてみた

    こやまん(エンジニア)

    こやまん(エンジニア)

    2024.03.28

    IT技術

    Azure Data FactoryでSlackへ通知をしてみる

    たかやん(エンジニア)

    たかやん(エンジニア)

    2024.03.28

    IT技術

    GCP Secret Managerを使ってみた

    たなゆー(エンジニア)

    たなゆー(エンジニア)

    2024.03.21

    IT技術

    Bitriseのパイプラインと環境変数

    加納(エンジニア)

    加納(エンジニア)

    2024.03.11

    IT技術