介绍#
Node Guardians は、Solidity と Cairo の学習を目的としたウェブサイトです。美しいゲームインターフェースの裏には優れたコース設計があり、学習を強くお勧めします。このシリーズでは、コースを一歩ずつ進める方法を紹介します。
https://nodeguardians.io/dev-hub?s=devhub-campaigns にアクセスすると、以下の画面が表示されます。各カードはテーマごとのタスクであり、タスクを完了すると報酬がもらえます。
チュートリアルのビルド:Cairo#
最初のタスクは「Setting Up: Cairo」から始まります。このタスクの目的は、Cairo の開発環境を設定し、タスクの提出方法を理解することです。ビルドチュートリアル:Cairo と CTF チュートリアル:Cairo があります。まずはビルドチュートリアル:Cairo から始めましょう。右下のStart Questをクリックします。
まず、git と npm をインストールします。MacOS の場合、brew install node
とbrew install git
を入力してインストールできます。(ネットワークの問題がある場合はbrew のミラーを使用できます)Windows の場合は、インストール方法を検索してください。
インストールが完了したら、git -v && node -v
と入力し、バージョンが表示されれば続行します。node のバージョンは 16 以降である必要があります。
GitHub のホームページで、ng-questplayという名前のプライベート(Private)なリポジトリを作成します。
次に、GitHub Applicationのリンクをクリックして追加します。このプログラムは、将来の解答コードのアップロードがテストに合格するかどうかを検証するために使用されます。作成した ng-questplay にインストールするだけで、他のリポジトリは必要ありません。
公式のリポジトリをクローンし、プライベートリポジトリにリンクします。
git clone [email protected]:Nodeguardians/ng-questplay.git
cd ng-questplay
git remote set-url origin [email protected]:{GITHUB_USERNAME}/ng-questplay.git
git push -u origin main
ng-questplay フォルダで、以下のコマンドを実行して必要な依存関係をインストールし、最初のコミットを行います。
npm run start-adventure
git add .
git commit -m "Install initial dependencies"
Cairo の開発には scrab をインストールする必要があります。これは cairo のパッケージングとパッケージ管理ツールです。最新バージョンをインストールしてください。インストールガイドのリンク
次に、GitHub Token を設定してタスクをダウンロードします。
- GitHub の右上のアイコンをクリックして、設定ページに移動します。
- 左側のサイドバーで、Developer Settings(最後のオプション)> Personal Access Tokens をクリックします。
- 新しい Token(classic)を生成します(例:「Node Guardians Questplay」という名前)。
- この Token にパブリックリポジトリへのアクセス権を付与します。
- Token を生成します。
Token をプロジェクトフォルダの.env ファイルにコピーし、*GITHUB_TOKEN = "ghp_..."* という名前で保存します。
quest find build-tutorial-cairo
を実行して最初のタスクをダウンロードします。
次に、cd ./campaigns/starting-cairo/build-tutorial-cairo
を入力してタスクのフォルダに移動します。
最初のタスクは、src/hello.cairo の hello_guardian () が'Hello Guardian'
を返す必要があります。
答えは提供しませんが、ヒントを提供します。Cairo は rust の構文を使用しており、2 つのポイントがあります:
quest test 3
を入力して、コードにエラーがないかローカルでテストします。エラーがある場合は、エラーメッセージに基づいてコードを修正する必要があります。
次は、回答の提出です。自動提出(Automated Submission)を使用することをお勧めします。まず、コードをコミットします。コミットメッセージは任意のものを入力できます。例えば、
git add .
git commit -m "complete quest 3"
次に、quest submit
を入力し、成功するのを待ちます。成功したら、ページに戻り、Verify をクリックします。一部のタスクには非表示のテストケースがある場合がありますので、ローカルで完全にテストに合格してもタスクが完了したわけではありません。提出が完了すると、Summary が表示され、学んだ重要なポイントを振り返ることができます。
獲得した経験値は、アカウントのレベルとグローバルランキングを上げるために使用されます。ゴールドはキャラクターのアップグレードに使用されます(あまり意味はありません)。
CTF チュートリアル:Cairo#
次は CTF タスクです。CTF タスクでは、テストネットにコントラクトをデプロイし、そのコントラクトとやり取りして、タスクの目標を達成する必要があります。ブロックエクスプローラとのやり取り、トランザクションの送信による対話、新しいコントラクトのデプロイと呼び出しなど、手段は問いません。
タスクを完了する前に、ウォレットの秘密鍵のエクスポート方法、コントラクトの作成と対話方法を学ぶことをお勧めします。公式ドキュメント https://docs.starknet.io/documentation/quick_start/environment_setup/ または中文のビデオチュートリアルを参考にしてください。
左下のdeploy sand devilをクリックし、ウォレットに接続し、Testnet に切り替え、トランザクションを送信すると、デプロイされたコントラクトのアドレスが表示されます。
このタスクでは、まず count の値を知る必要があります。その後、slay を呼び出し、引数に count と同じ値を減算すると、0 になります。最も簡単な方法は、ブラウザでデプロイしたアドレスにアクセスし、右端のread contractとwrite contractを使用してタスクを達成することです。
count を 0 に設定したら、Verifyをクリックしてタスクが完了します。
次のステップ#
次は、Cairo の詳細な学習を始め、難易度 2 の Thinking in Cairo を完了します。カテゴリはアルゴリズムとデータ構造です。