開発用ネットワーク
最終編集者: @HiroyukiNaito(opens in a new tab), Invalid DateTime
スマートコントラクトを使用するイーサリアムアプリケーションを構築する場合は、デプロイする前にローカルネットワーク上で実行して動作を確認することをお勧めします。
ウェブ開発において自分のコンピュータ上でローカルサーバを実行する場合と同様に、開発用ネットワークを使用してローカルブロックチェーンのインスタンスを作成し、dapp をテストできます。 このイーサリアムの開発用ネットワークには、パブリックテストネットワークと比較して反復処理を大幅に迅速化する機能があります (たとえば、テストネットフォーセットから ETH を取得する必要がありません)。
前提知識
開発用ネットワークについて学ぶ前に、イーサリアムスタックとイーサリアムネットワークの基本を理解する必要があります。
開発用ネットワークとは
開発用ネットワークは、基本的にはローカル開発のために設計された専用のイーサリアムクライアント (イーサリアムの実装) です。
標準的なイーサリアムノードをローカルで実行してみましょう。
そのままノードの実行に進むことも可能ですが、開発用ネットワークは開発用に構築されているため、多くの場合に以下のような便利な機能が搭載されています。
- ローカルブロックチェーンにデータを確定的にシードする (ETH 残高を持つアカウントなど) 機能
- 受け取ったトランザクションごとに、順序どおり遅延なく即時にブロックを生成する機能
- デバッグとロギングの拡張機能
利用可能なツール
注: ほとんどの開発フレームワークには、組み込みの開発用ネットワークが含まれています。 フレームワークのローカル開発環境のセットアップから始めることをお勧めします。
Ganache
テストの実行、コマンドの実行、状態の調査に使用できる専用のイーサリアムブロックチェーンを迅速に起動し、チェーンの動作を制御します。
Ganache は、デスクトップアプリケーション(Ganache UI)とコマンドラインツール(ganache-cli
)の両方を提供しています。 Truffle Suite というツールスイートに組み込まれています。
Hardhat Network
開発用に設計されたローカルイーサリアムネットワークです。 コントラクトのデプロイ、テストの実行、コードのデバッグを可能にします。
Hardhat Network には、プロフェッショナルのためのイーサリアム開発環境である Hardhat が組み込まれています。
ローカルビーコンチェーン
一部のコンセンサスクライアントには、テスト用にローカルビーコンチェーンをスピンアップするためのツールが組み込まれています。 Lighthouse、Nimbus、Lodestar での手順は、以下で確認できます。
- Lodestar を使用したローカルテストネット(opens in a new tab)
- Lighthouse を使用したローカルテストネット(opens in a new tab)
- Nimbus を使用したローカルテストネット(opens in a new tab)
公開イーサリアムテストチェーン
また、イーサリアムには Goerli と Sepolia という、2 つの維持されている公開テスト環境の実装もあります。 長期的なサポートが受けられる推奨テストネットは Goerli です。Goerli は、誰でも自由に検証できます。 Sepolia は、より新しい小規模なチェーンであり、当面は維持されると予測されています。許可されたバリデータのみがアクセスできます(つまり、このテストネットには、新規のバリデータは通常アクセスできません)。 Ropsten チェーンは、2022 年の第 4 期に廃止される予定です。Rinkeby チェーンは、2023 年の第 2 期または第 3 期に廃止される予定です。
Kurtosis イーサリアムパッケージ
Kurtosis は、マルチコンテナテスト環境のビルドシステムで、デベロッパーがブロックチェーンネットワークの再現可能なインスタンスをローカルで起動できるようにします。
イーサリアム Kurtosis パッケージでは、複数の異なる実行レイヤー(EL)およびコンセンサスレイヤー(CL)クライアントと n 個のノードをサポートし、コンテナ化されたパラメータ化可能なイーサリアムテストネットをローカルでインスタンス化します。 Kurtosis によって、すべてのローカルポートマッピングとサービス接続を適切に処理することで、dApp やスマートコントラクトのプロトタイピングとテストを容易にします。
- イーサリアムネットワークパッケージ(opens in a new tab)
- ウェブサイト(opens in a new tab)
- GitHub(opens in a new tab)
- ドキュメント(opens in a new tab)
参考文献
役に立ったコミュニティリソースがあれば、 ぜひこのページに追加してください。