Azure Blockchain Development Kit でコントラクト作成
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 Pipeline | VS Code 上で Azure の操作ができます。 |
Azure Account | VS Code から Azure Blockchain にログインできます。 |
Azure Blockchain Development Tools for Ethereum | 上記で使用した機能拡張で、Welcome ページからインストールするだけで、必要な言語や外部アプリへ接続できるようになります。 |
Azure CLI Tools | VS 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
Vyper | Mist で Solidity と Vyper を選択することができます。 |
その他機能拡張
Japanese Language Pack for Visual Studio Code | Visual 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 の機能拡張にも便利なツールが豊富に揃っているので、色々試してみてくだいね!
こちらの記事もオススメ!
2020.08.14ブロックチェーン特集知識編ブロックチェーンとコンセンサスアルゴリズム実装編【Blockchain Data Managerを使ってみたEt...
2020.07.17ライトコード的「やってみた!」シリーズ「やってみた!」を集めました!(株)ライトコードが今まで作ってきた「やってみた!」記事を集めてみました!※作成日が新し...
ライトコードでは、エンジニアを積極採用中!
ライトコードでは、エンジニアを積極採用しています!社長と一杯しながらお話しする機会もご用意しております。そのほかカジュアル面談等もございますので、くわしくは採用情報をご確認ください。
採用情報へ
「好きを仕事にするエンジニア集団」の(株)ライトコードです! ライトコードは、福岡、東京、大阪、名古屋の4拠点で事業展開するIT企業です。 現在は、国内を代表する大手IT企業を取引先にもち、ITシステムの受託事業が中心。 いずれも直取引で、月間PV数1億を超えるWebサービスのシステム開発・運営、インフラの構築・運用に携わっています。 システム開発依頼・お見積もり大歓迎! また、現在「WEBエンジニア」「モバイルエンジニア」「営業」「WEBデザイナー」を積極採用中です! インターンや新卒採用も行っております。 以下よりご応募をお待ちしております! https://rightcode.co.jp/recruit
おすすめ記事
immichを知ってほしい
2024.10.31