Ganacheでローカルブロックチェーンを作成しRemixからデプロイする


概要

Ethereumのスマートコントラクトの開発のために、Ganacheでローカルの開発環境を用意し、Remixからスマートコントラクトをローカル環境にデプロイしてみます。

Ganache

https://truffleframework.com/ganache
Ethereum のローカル開発環境。GUI版とCLI版があります。
今回はGUI版で試してみます。
公式サイトからダウンロードして起動するだけです。
本記事時点ではv2.0.1です。

Remix

https://remix.ethereum.org/
スマートコントラクトにはSolidityという言語を使用します。
RemixはブラウザベースのSolidity用のIDE(統合開発環境)です。
Solidityソースコードのエディット、コンパイル、デプロイ、デバッグを行うことができます。

Remixでスマートコントラクトを書く

helloWorld.sol
pragma solidity >=0.4.0 <0.6.0;

contract Hello {

    function helloWorld () public pure returns (string memory) {
        return "Hello World";
    }
}

HelloWorldを出力するコントラクトを書いてます。
Solidityについて調べるとv0.4.0系の記事が多いのですが、v0.5.0から引数に明示的にmemoryを宣言する必要があるみたいです。
参考
Solidity v0.5.0 Breaking Changesでの変更点をコントラクトべースで見てみる

Ganacheにデプロイする

先にGanacheを起動しましょう。

Remixの右側のタブにある、Start to compileを押してコンパイルします。

Runタブに切り替えてEnvironmentをWeb3 Providerに切り替えます。
Are you sure you want to connect to an ethereum node?
というのが出るのでOKを押します。
Web3 Provider EndpointはデフォルトではCLI版のhttp://localhost:8545になっていますが、
GanacheをGUIで起動した場合はhttp://localhost:7545で起動していると思うので書き換えてOKを押しましょう。

そしたら、Deployを押します。

Ganacheで確認する


Ganacheで確認すると新しくトランザクションが作成されていると思います。
おめでとうございます。これでローカルの環境にスマートコントラクトをデプロイすることができました!