3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Ethereumのローカルノードを立ち上げて、MetaMaskも使ってみる (hardhat)

Last updated at Posted at 2024-03-24

記載日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分)

ブラウザの拡張機能からMetaMaskをインストールする。

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/

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?