lesson-1_Avalancheネットワーク上でWEBアプリを構築しよう
👋 dApp 開発プロジェクトへようこそ!
このプロジェクトでは、Avalanche
にスマートコントラクトを実装して、スマートコントラクトとやりとりできる独自のWebアプリケーションを構築します。
このプロジェクトでは以下の技術が必要です。
- Terminal基本操作
- HTML/CSS
- TypeScript
- React.js
いますべてを理解している必要はありません。 わからないことがあったらインターネットで検索したり、コミュニティで質問 しながらプロジェクトを進めていきましょう!
また、Solidityでの開発が初めての方はETH dAppを先に進めることをお勧めします。
本プロジェクトでは、ETH dApp
で行うようなスマートコントラクト開発に加え、
テスト実装・Next.js
を用いたフロントエンド実装・Avalancheの利用など新しい知識が組み込まれているため、
一度に扱う情報量が多すぎないようにするためです。
また基礎知識として ブロックチェーン、スマートコントラクト、dappの説明に関してはこちらをご覧ください。
⛄ Avalanche
とは何か
Avalanche
とは分散型アプリケーションとブロックチェーンをデプロイ・運用・利用するためのオープンソースプラットフォームです。
高速かつ低コストなトランザクションが特徴で、多くのプロジェクトがAvalanche
上で展開され人気が高まっています。
また独自のブロックチェーンを作れるところも注目されています。
Avalanche
のネットワークはマルチチェーンフレームワークというも のを採用していて、3つのブロックチェーンによって構成されています。
重要な機能を分割し最適なデータ構造を採用することで、開発者により柔軟性と制御性のある環境を提供しています。
以下に簡単にまとめます。
C-Chain
(Contract Chain)。 スマートコントラクトのデプロイ・実行ができるブロックチェーンです。P-Chain
(Platform Chain)。 Subnet(独自ブロックチェーン)を作成できるブロックチェーンです。X-Chain
(Exchange Chain)。 デジタル資産の作成及びトレードに特化したチェーンです。
⛓️ C-Chain
とは何か?
C-Chain
(Contract Chain)はスマートコントラクトのデプロイ・実行ができるブロックチェーンで、Avalanche
を構成するネットワークの1つです。
C-Chain
は EVM 互換となっています。
つまりEthereum上で動作するスマートコントラクトをそのままAvalanche
のC-Chain
上にデプロイすることができます。
Ethereumはとても大きなプラットフォームですから、多くのブロックチェーン開発者にとって
既存のスマートコントラクトを高スループットなAvalanche
のブロックチェーン上で展開できるという点が人気の理由の1つです。
本プロジェクトもこのC-Chain
上にデプロイすることを想定して進めていきます。
⚠️ 本番環境ではなく、テスト環境であるテストネット(FUJI C-Chain)を利用します。
そのためスマートコントラクトの開発自体はイーサリアムの開発と変わりません。
デプロイ先のブロックチェーンがAvalanche C-Chain
となります。
🛠 何を構築するのか?
Messenger
という 分散型 Web アプリケーション(dApp) を構築します。
Messenger
では、以下の機能を実装します。
- ユーザは他のユーザへメッセージを送ることができる。
- メッセージにはテキストと
AVAX
(Avalancheのネイティブトークン)を送付することができる。 - メッセージデータは、
C-Chain
上のスマートコントラクトを介してブロックチェーン上に保存される。 - メッセージの受信者であるユーザはテキストの確認と、送付された
AVAX
を受け取る(または返却する)ことができる 🎉
アプリケーション全体としては
バックエンドの役目を担うスマートコントラクトをSolidity
という言語を使用して実装し、
フロントエンドをTypeScript
+ React.js
+ Next.js
で構築します。
🌍 プロジェクトをアップグレードする
UNCHAIN のプロジェクトは 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のプロジェクトをみんなでより良いものにしていきましょう ✨
Windows を使用している方へ Windows をお使いの場合は、Git for Windows をダウンロードし、それに付属する Git Bash を使うことをお勧めします。 本手順では UNIX 固有のコマンドをサポートしています。 Windows Subsystem for Linux (WSL) も選択肢の一つです。
次のレッスンに進んでプログラミングの環境構築しましょう 🎉
Documentation created by ryojiroakiyama(UNCHAIN discord ID: rakiyama#8051)