プロジェクトの概要を掴もう
👋 ICP Encrypted Notes 開発プロジェクトへようこそ!
このプロジェクトでは、暗号技術を使用してノートを暗号化し、それをInternet Computer上で安全に共有するWebアプリケーションの構築方法を学びます。
このプロジェクトを進めるには以下の技術が必要です。
※ ICPでの開発が初めての方は、まずICP-Static-Site
やICP-Basic-DEX
のプロジェクトから始めることをお勧めします ☺️
いますべてを理解している必要はありません。
わからないことがあったらインターネットで検索したり、コミュニティで質問しながらプロジェクトを進めていきましょう!
🛠 何を構築するのか?
今回開発するものは、ノートの作成・編集・削除ができるWebアプリケーションです。ただし、単にテキストデータを保存するのではなく、暗号化を行い保存します。本プロジェクトは、以下の機能を実装します。
- Internet Identityを使用したユーザー認証
- ノートの作成・編集・削除
- ノートの暗号化・復号(クライアント側のエンドツーエンドの暗号化)
- ノートの共有
完成したアプリケーションはこのような見た目になります 💪
🌍 プロジェクトをアップグレードする
UNCHAIN のプロジェクトはすべてオープンソース(MIT ライセンス)で運用されています。
プロジェクトに参加していて、「こうすればもっと分かりやすいのに!」「これは間違っている!」と思ったら、ぜひpull request
を送ってください。
GitHubから直接コードを編集して直接pull request
を送る方法は、こちらを参照してください。
どんなリクエストでも大歓迎です 🎉
また、プロジェクトを自分のGitHubアカウントにFork
して、中身を編集してからpull request
を送ることもできます。
⚡️ Issue
を作成する
pull request
送るほどでもないけど、提案を残したい! と思ったら、こちら にIssue
を作成してみましょう。
Issue
の作成方法に関しては、こちらを参照してください。
pull request
やissue
の作成は、実際にチームで開発を行う際に重要な作業になるので、ぜひトライしてみてください。
UNCHAINのプロジェクトをみんなでより良いものにしていきましょう ✨
環境構築をしよう
🗂 環境構築をしよう
まず、node
/ npm
を取得する必要があります。
お持ちでない場合は、下記のリンクにアクセスをしてインストールしてください。
なお、本プロジェクトは以下のバージョンを推奨しています。
$ node -v
v18.17.0
$ npm -v
9.6.7
🦀 Rust の環境構築をする
Rust インストール手順を参考に、RustとCargoのインストールを行いましょう。
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
次に、プログラムをWebAssemblyにコンパイルするためのビルドターゲットを追加しましょう。
rustup target add wasm32-unknown-unknown
🧰 IC SDK をインストールする
IC SDKは、Internet Computerブロックチェーン上でキャニスタースマートコントラクトを作成・管理するためのソフトウェア開発キットです。
IC SDK のインストールを参考に、IC SDKをインストールをしましょう。下記のように、バージョン0.14.1
を指定してください。
DFX_VERSION=0.14.1 sh -ci "$(curl -sSL https://internetcomputer.org/install.sh)"
下記を実行してバージョンを確認してみましょう。
$ dfx --version
dfx 0.14.1
🍽 Git リポジトリをあなたの GitHub にフォークする
まだGitHubのアカウントをお持ちでない方は、こちら の手順に沿ってアカウントを作成してください。
GitHubのアカウントをお持ちの方は、下記の手順に沿ってプロジェクトの基盤となるリポジトリをあなたのGitHubにフォークしましょう。
1. ICP-Encrypted-Notesにアクセスをして、ページ右上のFork
ボタンをクリックします。
2. Create a new forkページが開くので、「Copy the main
branch only」という項目にチェックが入っていることを確認します。
設定が完了したらCreate fork
ボタンをクリックします。あなたのGitHubアカウントにICP-Encrypted-Notes
リポジトリのフォークが作成されたことを確認してください。
それでは、フォークしたリポジトリをローカル環境にクローンしましょう。
まず、下図のように、Code
ボタンをクリックしてSSH
を選択し、Gitリンクをコピーしましょう。
ターミナル上で作業を行う任意のディレクトリに移動し、先ほどコピーしたリンクを用いて下記を実行してください。
git clone コピーした_github_リンク
無事に複製されたらローカル開発環境の準備は完了です。
📦 パッケージをインストールする
下記のコマンドを実行して、パッケージのインストールをしましょう。
npm install
問題なくインストールが行われることを確認します。
アプリケーションを立ち上げるには
必要な実装が不足しているため、今の状態でアプリケーションを立ち上げると失敗してしまいます。そのため、ここでは実際に実行しませんが、手順のみ提示しておきます。
1. バックグラウンドでローカル実行環境を起動します。
dfx start --clean --background
2. プロジェクトの登録・ビルド・デプロイを行います。
npm run deploy:local
3. 開発サーバーを立ち上げ、アプリケーションを起動します。
npm run start
4. Loopback:
に表示されたURLにアクセスをします。
ローカルの実行環境を停止するには、下記のコマンドを実行します。
dfx stop
🙋♂️ 質問する
ここまでの作業で何かわからないことがある場合は、Discordの#icp
で質問をしてください。
ヘルプをするときのフローが円滑になるので、エラーレポートには下記の4点を記載してください ✨
1. 質問が関連しているセクション番号とレッスン番号
2. 何をしようとしていたか
3. エラー文をコピー&ペースト
4. エラー画面のスクリーンショット
次のセクションに進み、ノートを管理する機能を実装しましょう 🎉