コースの紹介
はじめに
🎉 コースの紹介
このワークショップは、Scaffold-ETH 2とThe Graphを中心に構築されています。以下の内容を学びます:
- Scaffold-ETH 2とThe Graphを使用して、dappの開発環境をセットアップする方法
- スマートコントラクトの更新とデプロイをする方法
- The Graphにサブグラフを作成してデプロイする方法
- フロントエンドを編集して、スマートコントラクトとサブグラフの両方とやり取りする方法
🏗 Scaffold-ETH 2 とは 🏗
🧪 イーサリアムブロックチェーン上で分散型アプリケーション(dApps)を構築するためのオープンソースの最新ツールキットです。開発者にとって、スマートコントラクトの作成・デプロイ、およびそれらのコントラクトとやり取りを行うユーザーインタフェースの構築がより簡単に行えることを目的としています。
⚙️ NextJS、RainbowKit、Hardhat、Wagmi、Typescriptを使用して構築されています。
- ✅ コントラクトのホットリロード: スマートコントラクトを編集すると、フロントエンドが自動的にそれに適応します。
- 🔥 バーナーウォレット&ローカルフォーセット: バーナーウォレットとローカルフォーセットを使用して、アプリケーションを素早くテストします。
- 🔐 ウォレットプロバイダーとの統合: 異なるウォレットプロバイダーに接続し、Ethereumネットワークとやり取りします。
Scaffold-ETHについてもっと知りたい場合は、Github リポジトリ や Scaffoldeth.io をご覧ください。
🧑🏼🚀 The Graph とは?
The Graph は、GraphQLを使用してEthereumとIPFS上でdAppを素早く構築するためのプロトコルです。
- 🗃️ 分散型インデックス作成: The Graphは、効率的にブロックチェーンデータをインデックス化・整理するためのオープンAPI(「サブグラフ」)を可能にします。
- 🔎 効率的なクエリ: プロトコルは、GraphQLを使用してブロックチェーンデータを効率的にクエリできます。
- 🙌 コミュニティエコシステム: The Graphは、開発者がサブグラフを構築・デプロイ・共有できることで、コラボレーションを促進します!
詳しい手順と背景については、Getting Started Guide をご覧ください。
🧱 何を構築するのか
イベントデータのデータストレージにThe Graphプロトコルを利用するスマートコントラクトとフロントエンドを構築します。
https://sendmessage-tau.vercel.app
🌍 プロジェクトをアップグレードする
この学習コンテンツは、UNCHAIN License のもとで運用されています。
プロジェクトに参加していて、「こうすればもっと分かりやすいのに!」「これは間違っている!」と思ったら、ぜひpull request
を送ってください。
GitHubから直接コードを編集して直接pull request
を送る方法は、こちらを参照してください。
どんなリクエストでも大歓迎です 🎉
また、プロジェクトを自分のGitHubアカウントにFork
して、中身を編集してからpull request
を送ることもできます。
👋 UNCHAIN-projects
にpull request
を送る! ⏩ UNCHAIN の GitHub にアクセス!
⚡️ Issue
を作成する
pull request
送るほどでもないけど、提案を残したい! と思ったら、こちら にIssue
を作成してみましょう。
Issue
の作成方法に関しては、こちらを参照してください。
pull request
やissue
の作成は、実際にチームで開発を行う際に重要な作業になるので、ぜひトライしてみてください。
UNCHAINのプロジェクトをみんなでより良いものにしていきましょう ✨
必要条件
必要条件
✅ 必要なもの
始める前に、以下のツールをインストールする必要があります:
Scaffold-ETH 2のセットアップ
Scaffold-ETH 2 のセットアップ
🖥️ サブグラフパッケージのセットアップ
まず、Edge and NodeのSimonが作成し たScaffold-ETH 2の特別なビルドを使って始めましょう。ありがとう、Simon! 🫡
Scaffold-ETH 2とThe Graphをセットアップするために、合計4つの異なるウィンドウが必要になります。
git clone -b subgraph-package \
https://github.com/scaffold-eth/scaffold-eth-2.git \
scaffold-eth-2-subgraph-package
これをあなたのマシンにチェックアウトしたら、ディレクトリに移動し、yarnを使用してすべての依存関係をインストールします。
cd scaffold-eth-2-subgraph-package && \
yarn install
次に、スマートコントラクトをデプロイしてテストするために、ローカルブロックチェーンを起動する必要があります。Scaffold-ETH 2はデフォルトでHardhatを使用しています。チェーンを起動するには、次のyarnコマンドを入力します。
yarn chain
このウィンドウを開いたままにしておくと、hardhat コンソールからの出力を確認できます。🖥️
次に、フロントエンドアプリケーションを起動します。Scaffold-ETH 2はデフォルトでNextJSを使用しており、単純なyarnコマンドで起動することもできます。新しいコマンドラインを開き、次のコマンドを入力します。
yarn start
こ のウィンドウも常に開いておくと、NextJS に加えたコード変更のデバッグ、パフォーマンスのチェック、またはサーバーが適切に動作しているかを確認できます。
次に、スマートコントラクトをデプロイするための第三のウィンドウを開きます。Scaffold-ETHには他にも便利なコマンドがあります。デプロイを行うには、単に以下を実行します…
yarn deploy
デプロイにかかったガスの量と共に、トランザクションとアドレスが表示されるはずです。⛽
http://localhost:3000 にアクセスすると、NextJSアプリケーションが表示されます。Scaffold-ETH 2のメニューや機能を探索してみましょう! 緊急事態ですね、これはすごい! 🔥
setGreeting関数にアップデートを送信してテストすることができます。これを行うには、右上のバーナーウォレットアドレスの隣にある現金アイコンをクリックしてガスを入手する必要があります。これにより、フォーセットから1 ETHが送られます。
次に、「Debug Contracts」に移動し、setGreetingの下の文字列フィールドをクリックしてお好きな文字を入力 し、「SEND」をクリックします。
これが完了すると、成功したことを確認するために展開できるTransaction Receiptが表示されます。
The Graphのセットアップ
The Graph のセットアップ(Docker)
🚀 The Graph 統合のセットアップ
ブロックチェーンを起動し、フロントエンドアプリケーションを始動し、スマートコントラクトをデプロイしたので、次はサブグラフを設定し、The Graphを利用しましょう!
まず、古いデータをクリアするために以下のコマンドを実行します。すべてをリセットしたい場合にこれを行ってください。
yarn clean-node
これでグラフノードを起動する準備ができました。以下のコマンドを実行しましょう… 🧑🚀
yarn run-node
これにより、docker-composeを使用してThe Graphのすべてのコンテナが起動します。"Downloading latest blocks from Ethereum..."と表示されたら、完了です。
前述の通り、Docker からのログ出力を確認するためにこのウィンドウを開いたままにしておいてください。🔎