bitbank techblog

RemixでEthereumスマートコントラクト開発環境構築

はじめに

こんにちは、びっとぶりっとです。
以前はEthereumのスマートコントラクト用意するのすごい難しそうだなあと思ってました。
実際にRemixを触ってみたらとにかくスマートコントラクトを用意するだけなら難しくなかったので紹介したいと思います。

Remixとは?

Ethereumのスマートコントラクトを書く言語、 Solidity 用のIDE(統合開発環境)です。
Solidityソースコードのエディット、コンパイル、デプロイ、デバッグがこれ一つで行うことができます。
Remix公式でホスティングしてくれているのでとても便利です。

前提となる環境

  • Chrome
  • node
  • npm

がすでにインストールされていることとします。

Metamaskをインストールする

MetamaskはChromeのエクステンションでこちらからインストール&有効化します。有効化するとChromeに狐のアイコンが表示されるのでクリックしてガイドに従い秘密鍵の作成を行います。 特に難しい点はありません。
秘密鍵作成が完了したら、下の画像の通りネットワーク選択のドロップダウンメニューから Ropstenテストネットワーク を選択しておきます。

以降の手順はmetamaskがこの状態にあることを想定しています。

注: Metamaskのご利用については各自の自己責任でお願い致します

テスト用Etherを入手する

テスト用として使うRopstenのEtherはFaucetから入手可能です。

Googleで "Ropsten faucet" で検索して出てきたWebページでもらえます。
MetamaskがアクティブになっていればだいたいWebページにあるボタンを押すだけで送られてきます。

無事Metamaskに反映されたら入手完了です。

注: Faucetのご利用については各自の自己責任でお願い致します

Remixをインストールする

以下のコマンドを実行します。

$npm install -g remixd

Remixを起ち上げる

$mkdir contracts
$touch contracts/test.sol
$remixd -s ./contracts --remix-ide https://remix.ethereum.org

ブラウザで https://remix.ethereum.org を表示します。
表示された画面にある下図の赤枠で囲われた鎖アイコンを押します。

これにより、先程 $mkdir contracts で作成した contracts ディレクトリにブラウザで表示しているremixからアクセスできます。
remix.ethereum.org上で作成したファイルが contracts ディレクトリに生成されます。そのファイルに修正を加えると contracts ディレクトリ配下に生成されたそのファイルが連動して修正されます。

簡単なスマートコントラクトをコンパイル

remix上にて先程touchコマンドで作成したtest.solファイルを開き以下のソースコードをコピー&ペーストします。

pragma solidity ^0.4.25;
contract HelloBitbank {
    string message;
    constructor() public {
        message = 'hello bitbank!';
    }
    function set(string new_message) public{
        message = new_message;
    }
    function get() public constant returns (string out_message){
        return message;
    }
}

右側のペーンにある Compile タブを開きます。 Select new compiler version と書かれたドロップダウンメニューから 0.4.25+commit.59dbf8f1 を選択します。

Start to compile ボタンを押すとコンパイルが始まります。問題がなければ以下の画像のような結果が出力されます。

簡単なスマートコントラクトをデプロイ&動かす

Run タブを開き Environment が Injected Web3 Ropsten(3) 、 Account に何らかアドレスが表示されていることを確認し Deploy ボタンを押します。

デプロイ ボタンを押すと下図のmetamaskの画面が表示されるので、 確認 ボタンを押します。

しばらく待つとこのスマートコントラクトがEthereumのブロックに取り込まれデプロイが完了します。
デプロイが完了すると、 Deploy Contracts に今デプロイした HelloBitbank というコントラクトが表示されているので押します。
set と get というボタンがあります。
とりあえず get を押すと hello bitbank! という文字列が表示されます。 get はブロックチェインのデータを参照するだけなのでいくら実行してもタダです。

set の隣のテキストボックにダブルクウォートで囲った何か文字列を入れて set ボタンを押すと再度metamaskが開き確認 ボタンを押します。

しばらく待つと今の更新がブロックに取り込まれ、再度 get を押すとさきほど set で入力した文字列になっているのが確認できます。

以上をもちましてRemixでEthereumスマートコントラクト開発環境構築は終了です。
スマートコントラクトの開発環境を用意するのはすごく面倒なイメージだったのですが、こうしてみるととても簡単ですね。
FLOCブロックチェーン大学校ではエンジニアコース スマートコントラクト開発科というカリキュラムを用意しています。より深くEthereumのスマートコントラクトについて知りたい方はぜひこちらもご検討されてみてはいかがでしょうか?

expand_less