はじめに
こんにちは、びっとぶりっとです。
以前は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のスマートコントラクトについて知りたい方はぜひこちらもご検討されてみてはいかがでしょうか?