スマートコントラクトの導入
最終編集者: @HiroyukiNaito(opens in a new tab), 2024年4月23日
イーサリアムネットワークのユーザーがスマートコントラクトを利用できるようにするには、それをデプロイする必要があります。
ブロックチェーン上でのスマートコントラクトのデプロイとは、要するにスマートコントラクトのコンパイル済みのコードが格納されたイーサリアムトランザクションを、受信者を指定せずに送信するということです。
事前に
スマートコントラクトをデプロイする前に、イーサリアムネットワーク、トランザクション、スマートコントラクトの構造を理解する必要があります。
コントラクトはブロックチェーンに保存されているため、デプロイする際にイーサ(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)
- Discord(opens in a new tab)
Hardhat - イーサリアムソフトウェアのコンパイル、デプロイ、テスト、デバッグができる開発環境。
- hardhat.org(opens in a new tab)
- コントラクトのデプロイについてのドキュメント(opens in a new tab)
- GitHub(opens in a new tab)
- Discord(opens in a new tab)
サードウェブ - 単一のコマンドを使い、任意のコントラクトを任意のEVM互換チェーンに容易にデプロイ
関連チュートリアル
- 最初のスマートコントラクトのデプロイ - イーサリアムテストネットワークに最初のスマートコントラクトをデプロイする方法の紹介
- Hello World | スマートコントラクトチュートリアル – 基本的なスマートコントラクトの作成と、イーサリアムへのデプロイ方法を学ぶための、わかりやすいチュートリアル
- Solidityを使用した他のコントラクトとの連携 - 既存のコントラクトからスマートコントラクトをデプロイし、それを扱う方法
- コントラクトのサイズを小さくする方法 - コントラクトコードのサイズをリミットよりも下げて、ガスを節約する方法
参考文献
- https://docs.openzeppelin.com/learn/deploying-and-interacting(opens in a new tab) - OpenZeppelin
- Hardhatを使用したコントラクトのデプロイ(opens in a new tab) - Nomic Labs
役に立ったコミュニティリソースがあれば、 ぜひこのページに追加してください。