1. HOME
  2. ブログ
  3. IT技術
  4. Azure Blockchain Development Kit でコントラクト作成
azure-blockchain-development-kit-contract-creation

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

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を構成します。

Visual Studio 2019 の場合

以下のコマンドを使用して、npm に対して、MSBuild 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 の機能拡張にも便利なツールが豊富に揃っているので、色々試してみてくだいね!

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

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

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

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

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

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

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

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

採用情報はこちら

関連記事