メインコンテンツまでスキップ

lesson-1_Avalancheネットワーク上でWEBアプリを構築しよう

👋 dApp 開発プロジェクトへようこそ!

このプロジェクトでは、Avalancheにスマートコントラクトを実装して、スマートコントラクトとやりとりできる独自のWebアプリケーションを構築します。

このプロジェクトでは以下の技術が必要です。

いますべてを理解している必要はありません。 わからないことがあったらインターネットで検索したり、コミュニティで質問しながらプロジェクトを進めていきましょう!

また、Solidityでの開発が初めての方はETH dAppを先に進めることをお勧めします。 本プロジェクトでは、ETH dAppで行うようなスマートコントラクト開発に加え、 テスト実装・Next.jsを用いたフロントエンド実装・Avalancheの利用など新しい知識が組み込まれているため、 一度に扱う情報量が多すぎないようにするためです。

また基礎知識として ブロックチェーン、スマートコントラクト、dappの説明に関してはこちらをご覧ください。

Avalancheとは何か

Avalancheとは分散型アプリケーションとブロックチェーンをデプロイ・運用・利用するためのオープンソースプラットフォームです。 高速かつ低コストなトランザクションが特徴で、多くのプロジェクトがAvalanche上で展開され人気が高まっています。 また独自のブロックチェーンを作れるところも注目されています。

Avalancheのネットワークはマルチチェーンフレームワークというものを採用していて、3つのブロックチェーンによって構成されています。 重要な機能を分割し最適なデータ構造を採用することで、開発者により柔軟性と制御性のある環境を提供しています。 以下に簡単にまとめます。

  1. C-Chain(Contract Chain)。 スマートコントラクトのデプロイ・実行ができるブロックチェーンです。
  2. P-Chain(Platform Chain)。 Subnet(独自ブロックチェーン)を作成できるブロックチェーンです。
  3. X-Chain(Exchange Chain)。 デジタル資産の作成及びトレードに特化したチェーンです。

⛓️ C-Chainとは何か?

C-Chain(Contract Chain)はスマートコントラクトのデプロイ・実行ができるブロックチェーンで、Avalancheを構成するネットワークの1つです。 C-ChainEVM 互換となっています。 つまりEthereum上で動作するスマートコントラクトをそのままAvalancheC-Chain上にデプロイすることができます。 Ethereumはとても大きなプラットフォームですから、多くのブロックチェーン開発者にとって 既存のスマートコントラクトを高スループットなAvalancheのブロックチェーン上で展開できるという点が人気の理由の1つです。

本プロジェクトもこのC-Chain上にデプロイすることを想定して進めていきます。 ⚠️ 本番環境ではなく、テスト環境であるテストネット(FUJI C-Chain)を利用します。

そのためスマートコントラクトの開発自体はイーサリアムの開発と変わりません。 デプロイ先のブロックチェーンがAvalanche C-Chainとなります。

🛠 何を構築するのか?

Messengerという 分散型 Web アプリケーション(dApp) を構築します。

Messengerでは、以下の機能を実装します。

  1. ユーザは他のユーザへメッセージを送ることができる。
  2. メッセージにはテキストとAVAX(Avalancheのネイティブトークン)を送付することができる。
  3. メッセージデータは、C-Chain上のスマートコントラクトを介してブロックチェーン上に保存される。
  4. メッセージの受信者であるユーザはテキストの確認と、送付されたAVAXを受け取る(または返却する)ことができる 🎉

アプリケーション全体としては バックエンドの役目を担うスマートコントラクトをSolidityという言語を使用して実装し、 フロントエンドをTypeScript + React.js + Next.jsで構築します。

🌍 プロジェクトをアップグレードする

UNCHAIN のプロジェクトは UNCHAIN License により運用されています。

プロジェクトに参加していて、「こうすればもっと分かりやすいのに!」「これは間違っている!」と思ったら、ぜひpull requestを送ってください。

GitHubから直接コードを編集して直接pull requestを送る方法は、こちらを参照してください。

どんなリクエストでも大歓迎です 🎉

また、プロジェクトを自分のGitHubアカウントにForkして、中身を編集してからpull requestを送ることもできます。

  • プロジェクトをForkする方法は、こちら を参照してください。
  • Forkからpull requestを作成する方法は、こちら です。

👋 UNCHAIN-projectspull requestを送る! ⏩ UNCHAIN の GitHub にアクセス!

⚡️ Issueを作成する

pull request送るほどでもないけど、提案を残したい! と思ったら、こちらIssueを作成してみましょう。

Issueの作成方法に関しては、こちらを参照してください。

pull requestissueの作成は実際にチームで開発する際、重要な作業になるので、ぜひトライしてみてください。

UNCHAINのプロジェクトをみんなでより良いものにしていきましょう ✨

Windows を使用している方へ Windows をお使いの場合は、Git for Windows をダウンロードし、それに付属する Git Bash を使うことをお勧めします。 本手順では UNIX 固有のコマンドをサポートしています。 Windows Subsystem for Linux (WSL) も選択肢の一つです。


次のレッスンに進んでプログラミングの環境構築しましょう 🎉

Documentation created by ryojiroakiyama(UNCHAIN discord ID: rakiyama#8051)