スマート・コントラクトのデプロイ
イーサリアムネットワークのユーザーが利用できるようにするには、スマート・コントラクトをデプロイする必要があります。
スマート・コントラクトをデプロイするには、受信者を指定せずに、スマート・コントラクトのコンパイル済みコードを含むイーサリアムのトランザクションを送信するだけです。
前提条件
スマート・コントラクトをデプロイする前に、イーサリアムネットワーク、トランザクション、およびスマート・コントラクトの構造について理解しておく必要があります。
コントラクトはブロックチェーン上に保存されるため、デプロイにはイーサ(ETH)のコストもかかります。そのため、イーサリアムのガスと手数料について理解しておく必要があります。
最後に、デプロイする前にコントラクトをコンパイルする必要があるため、スマート・コントラクトのコンパイルについて必ず読んでおいてください。
スマート・コントラクトのデプロイ方法
必要なもの
- コントラクトのバイトコード – これはコンパイルによって生成されます
- ガス用のETH – 他のトランザクションと同様にガス・リミットを設定しますが、コントラクトのデプロイには単純なETHの送金よりもはるかに多くのガスが必要になることに注意してください
- デプロイ用のスクリプトまたはプラグイン
- 独自のノードを実行するか、パブリックノードに接続するか、またはノードサービスを使用してAPI鍵経由でイーサリアムノードへアクセスすること
スマート・コントラクトをデプロイする手順
具体的な手順は、使用する開発フレームワークによって異なります。たとえば、コントラクトのデプロイに関するHardhatのドキュメント (opens in a new tab)や、スマート・コントラクトのデプロイと検証に関するFoundryのドキュメント (opens in a new tab)を確認できます。デプロイされると、コントラクトは他のアカウントと同様にイーサリアムのアドレスを持ち、ソース・コード検証ツールを使用して検証できるようになります。
関連ツール
Remix - Remix IDEは、イーサリアムのようなブロックチェーン向けのスマート・コントラクトの開発、デプロイ、管理を可能にします
Tenderly - スマート・コントラクトの開発、テスト、監視、運用のためのデバッグ、可観測性、インフラストラクチャの構成要素を提供するWeb3開発プラットフォーム
- tenderly.co (opens in a new tab)
- ドキュメント (opens in a new tab)
- GitHub (opens in a new tab)
- ディスコード (opens in a new tab)
Hardhat - イーサリアムソフトウェアのコンパイル、デプロイ、テスト、デバッグを行うための開発環境
- hardhat.org (opens in a new tab)
- コントラクトのデプロイに関するドキュメント (opens in a new tab)
- GitHub (opens in a new tab)
- ディスコード (opens in a new tab)
thirdweb - 単一のコマンドを使用して、任意のEVM互換チェーンに任意のコントラクトを簡単にデプロイします
Crossmint - スマート・コントラクトのデプロイ、クレジットカードおよびクロスチェーン決済の有効化、APIを使用したNFTの作成、配布、販売、保存、編集を行うためのエンタープライズグレードのWeb3開発プラットフォーム。
- crossmint.com (opens in a new tab)
- ドキュメント (opens in a new tab)
- ディスコード (opens in a new tab)
- ブログ (opens in a new tab)
関連チュートリアル
- 初めてのスマート・コントラクトのデプロイ – イーサリアムのテストネットワークに初めてスマート・コントラクトをデプロイするための入門。
- Hello World | スマート・コントラクトのチュートリアル – イーサリアム上で基本的なスマート・コントラクトを作成してデプロイするためのわかりやすいチュートリアル。
- Solidityから他のコントラクトと対話する – 既存のコントラクトからスマート・コントラクトをデプロイし、それと対話する方法。
- コントラクトのサイズを縮小する方法 - コントラクトのサイズを制限内に抑え、ガスを節約するためにサイズを縮小する方法
参考文献
- https://docs.openzeppelin.com/learn/deploying-and-interacting (opens in a new tab) - オープンツェッペリン
- Hardhatを使用したコントラクトのデプロイ (opens in a new tab) - Nomic Labs
役に立つコミュニティリソースをご存知ですか?このページを編集して追加してください!