記載日2024/01/26
備忘録で、Ethereumのノード(サーバ)をローカル環境で立ち上げる手順を記載します。
MetaMaskをローカル環境につなぐ手順も記載します。
hardhatとは
Ethereumをより簡単に環境構築したり運用するための環境開発ライブラリ。
環境
・OS : Ubuntu22.04
・curl : 7.81.0
・yarn : 1.22.21
・nodejs : 20.7.0 (私の環境ではnodenvを使っています)
npm : 10.1.0
手順
hardhatの決まり事
hardhatは、デフォルトで以下の設定になっている。これらの値は後々使うので頭の片隅に入れておく。
サーバのポートは8545 (参考)
チェーンIDは31337 (参考)
1. hardhatライブラリのインストール (5分)
毎回npx hardhat ~
と入力するのは手間なので、
yarnの場合
yarn add --dev hardhat && \
sudo apt-get update && \
npx hardhat init
npmの場合
npm install --save-dev hardhat && \
sudo apt-get update && \
npx hardhat init
いくつか質問されるので、適宜選択する。私は、よくCreate a TypeScript project
を使う。.gitignoreの作成や、yarnでの必要なライブラリ追加はy
で進めるのが良いかと思う。
2. コントラクトのコンパイルとノード起動 (5分)
手順1でEthereum環境は用意できたので、ノードを起動してみる。
まずコントラクトをコンパイルする。
npx hardhat compile
次にローカル環境にノードを起動する。
hardhatのおかげで、20アカウントがサンプルとして既に有る状態で、Ethereumノードが起動する。
npx hardhat node
3. 【yarnの場合】今後の操作を楽にするために(package.jsonの編集) (2分)
毎回npx hardhat ~
と入力するのは面倒なので、ショートカットコマンドを使えるようにする。
package.jsonを開く。"dependencies"と同じ階層に"scripts"がないかと思うので、以下のようなscriptを追記する。"scripts"がすでにある場合には、その中にスクリプト部分を追記する。
これで、yarn compile
と入力すればコンパイルできるし、'yarn noderun'でノード起動できる。
{
"scripts":
{
"compile": "npx hardhat compile",
"noderun": "npx hardhat node",
},
"dependencies": {
~
},
~
}
4. MetaMaskでアクセスしてみよう
MetaMaskはEthereum系ブロックチェーンの通貨やNFTを操作管理するためのツールで、ブラウザの拡張機能で使うことができます。ウォレットアプリと呼ばれるようです。MetaMask以外にもTrust WalletSafePalなどがあったり、各仮想通貨取引所がアプリ提供していると思います。
今回はMetaMaskをローカル環境のノードにつないでみようと思います。
4.1. MetaMaskインストール (5分)
4.2. MetaMaskの初期設定 (15分)
MetaMaskを起動し、初期設定を行う。
こちらの手順①と②が参考になる。
4.3. MetaMaskでローカルネットワークを設定する (10分)
左上にあるネットワーク設定ボタンを押し、”ネットワークを追加”を押す。
ネットワーク追加画面が表示されるので、下の方にある”ネットワークを手動で追加”を押す。
ネットワークのコンフィグ画面が表示されるので、ローカルのhardhat環境の値を設定する。設定後、”保存”を押す。
- ネットワーク名:自由に設定する
- 新しいRPC URL:hardhatサーバのURL。ポートをデフォルトから変更している場合は、変更したポートを使う。
- チェーンID:31337
- 通貨記号:Eth
トップ画面の左上にあるネットワーク設定ボタンから、ローカル環境を選択すると切替完了。
4.4. ローカル環境のアカウントを追加 (10分)
hardhatでは、サーバ起動時に自動で20アカウントを用意している。その中から使いたいアカウントを追加する。
hardhatでEthereumサーバ起動時に、コンソールにアカウントIDと秘密鍵のセットが表示されているので、追加したいアカウントに対応する秘密鍵を入力する。入力後、”インポート”ボタンを押す。
アカウントが追加される(10000Ethを持った状態)。
複数のアカウントを追加するとお互いに送金できるので、試してみると実感がわく。(ローカル環境のEthを使っているだけなので、費用はかからない。)
参考にさせて頂いたサイト
・hardhatホームページのドキュメント
https://hardhat.org/hardhat-runner/docs/getting-started#overview
・yarnのインストール手順
https://chore-update--yarnpkg.netlify.app/ja/docs/install#linux-tab
・MetaMaskの初期設定
https://matsumoto-inc.co.jp/nft-media/metamask/