script (⏱,💰)

script (⏱,💰)

NG#0 - 開羅入門

介紹#

Node Guardians 是一個學習 Solidity 和 Cairo 的網站,在華麗的遊戲介面背後是優秀的課程設計,強烈建議學習。本系列從頭介紹怎麼一步一步完成課程。

打開網站 https://nodeguardians.io/dev-hub?s=devhub-campaigns 能看到如下介面,每個卡片就是一個主題的任務,完成任務即可獲得獎勵。

main page

Build Tutorial: Cairo#

我們第一個任務從 Setting Up: Cairo 開始,本任務目的是讓你設置好 Cairo 開發環境和了解如何提交任務。有 Build Tutorial: Cairo 和 CTF Tutorial: Cairo。讓我們從 Build Tutorial: Cairo 開始,點擊右下角的 Start Quest

build tutorial

首先是安裝 git 和 npm,如果是 MacOS,輸入 brew install nodebrew install git就能完成安裝。(國內遇到網路問題可使用brew 鏡像) Windows 自行搜尋安裝方式。

安裝完成後,輸入 git -v && node -v後如果能顯示版本就繼續。node 版本應該在 16 以後。
git & node version

到 GitHub 首頁創建一個名為ng-questplay的私有 (Private) 代碼庫。

然後點擊鏈接添加 GitHub Application。該程序用於驗證未來上傳解答代碼是否能通過測試。選擇安裝到剛創建的 ng-questplay 就行,其他庫不需要。

add github app

克隆官方代碼庫並 link 到你的私有倉庫。

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 文件夾,運行下面指令安裝必要的依賴,然後進行第一次提交 (commit)

npm run start-adventure
git add .
git commit -m "Install initial dependencies"

進行 Cairo 開發需要安裝 scrab,它是 cairo 的打包和包管理工具,安裝最新版本即可。安裝指引鏈接

接下來設置 GitHub Token 用於下載任務。

  1. 點 GitHub 右上角頭像,進入 settings 頁面。
  2. 在左側邊欄中,點擊 Developer Settings (最後一個選項) > Personal Access Tokens。
  3. 生成一個新的 Token (classic)(例如命名為 “Node Guardians Questplay”)。
  4. 給予該 Token 公共倉庫訪問權限。
  5. 生成該 Token。

Public permission

GitHub Token

複製 Token 到項目文件夾的.env 裡,命名為 GITHUB_TOKEN = "ghp_..."

env Token

運行quest find build-tutorial-cairo下載第一個任務。

download quest

然後 cd ./campaigns/starting-cairo/build-tutorial-cairo 進入任務文件夾。

第一個任務是 src/hello.cairo 裡的 hello_guardian () 需要返回 'Hello Guardian'
hello world

我不會給出答案,只提供思路。Cairo 使用的是 rust 的語法,這兒有 2 個知識點:

  1. function 返回值,參考資料
  2. cairo 的 string 類型,參考資料

輸入 quest test 3,如果代碼沒有報錯,本地測試就完成了。如果有錯誤,你需要根據報錯修改代碼。

接下來是提交答案,建議使用自動提交(Automated Submission)。需要先 commit 你的代碼,可以任意輸入提交說明,例如

git add .
git commit -m "complete quest 3"

然後輸入quest submit,等待成功後,回到頁面點擊 Verify 即可。
未來有的任務會有隱藏的測試用例,本地完全通過測試也不一定完成了任務。
提交完成後會有個 Summary 總結,你可以回顧本任務學到的重點。

summary

獲得的經驗會提高帳號等級和全球排名,黃金用於升級角色(沒啥用)。

CTF Tutorial: Cairo#

接下來是 CTF 任務,CTF 任務會部署一個合約到測試網,你需要去和該合約交互,修改合約狀態以達成任務目標。手段不限於區塊瀏覽器交互,通過 cli 發送交易,部署新合約去調用。

在完成任務前,建議學習如何導出錢包私鑰,創建合約並交互。可以參考官方文檔 https://docs.starknet.io/documentation/quick_start/environment_setup/
或者中文視頻教程

點擊左下角的deploy sand devil,連接錢包,切換到 Testnet,發送交易後會顯示部署合約的地址。

wallet

該任務你需要先知道 count 的值,然後調用 slay,參數和 count 一樣相減就是 0 了。最簡單的是通過瀏覽器訪問你部署的地址,通過最右邊的read contractwrite contract去達成任務。

voyager

count 設置成 0 後,點擊Verify就完成任務了。

complete

Next#

下一篇開始深入 Cairo,完成難度 2 的 Thinking in Cairo,分類是算法與數據結構。

Next

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。