使用 Cursor 和 Devbox 快速開發基於 Rust 的 WASM 智慧合約

米开朗基杨發表於2024-10-22

本教程以一個智慧合約(使用 NEAR 的一個官方 Fungible Tokens 來實現)的例子來介紹一下 Devbox 的強大功能,輕鬆構建環境,輕鬆釋出。

NEAR 是一個去中心化的應用平臺,使用了分片技術的區塊鏈。

免責申明:本教程僅適合用來學習智慧合約。

Fungible Tokens 我就不解釋了,有興趣的自己去搜尋,我是想用這個東西做公司內部的一個積分系統,可以透過積分對企業成員實時獎勵。

話不多說,正式開始:

秒開 Rust 環境

首先登入 Sealos,然後開啟 Devbox,直接選 Rust 環境即可。

如果你非要在自己電腦上裝環境,你可能會遇到以下問題:

  • 下載半天,不一定能裝成功。
  • 可能會把環境搞亂,不方便推到重來。
  • 如果你是 m 系列的 MacBook,則是 arm64 架構,而上線到伺服器一般都是 x86 架構,各種跨平臺編譯能搞死人。

等待狀態變成 Running 之後,在操作選項中選擇使用 Cursor 連線,首次開啟會提示安裝 Devbox 外掛,安裝後即可自動連線開發環境。

這樣基礎乾淨的程式設計環境就搞定了,環境全部在雲端,透過本地 Cursor 去連線。

安裝 NEAR CLI

在 Cursor 終端中輸入以下命令:

rustup target add wasm32-unknown-unknown 
curl --proto '=https' --tlsv1.2 -LsSf https://mirror.ghproxy.com/https://github.com/near/near-cli-rs/releases/latest/download/near-cli-rs-installer.sh | sh 
curl --proto '=https' --tlsv1.2 -LsSf https://mirror.ghproxy.com/https://github.com/near/cargo-near/releases/latest/download/cargo-near-installer.sh | sh

你能感受到神一般的速度,特別是海外可用區,如果在本機,估計以上三個動作又可以刷半個小時抖音了

克隆程式碼

git clone https://mirror.ghproxy.com/https://github.com/fanux/FT 
cd FT 
# 編譯程式碼 
./scripts/build.sh

30s 不到,又全搞定了,而且不會出錯,因為環境和程式碼的一致性很好,不會出現任何不符合預期的事。

建立 NEAR 賬戶

$ near login
If your browser doesn't automatically open, please visit this URL:
	 https://testnet.mynearwallet.com/login/?title=NEAR+CLI&public_key=edAi3rTjgAd5g7racV3GAkBt4RtqDjjKa1

你就可以複製這個連線到瀏覽器上建立賬戶,如果你還沒有賬戶,可以在測試網中建立一個新賬戶。

後面的 12 個單詞請務必記好,助記詞可以生成公鑰和私鑰。

成功後可以看到這個檔案,這裡面有私鑰,請勿洩漏:

sealos@sealospoint:~/project/FT$ ls ~/.near-credentials/testnet/
sealospoint.testnet  sealospoint.testnet.json

部署合約

sealos@sealospoint:~/project/FT$ ID=sealospoint.testnet
sealos@sealospoint:~/project/FT$ echo $ID
sealospoint.testnet
near deploy $ID res/fungible_token.wasm 

發行 FT

near call $ID new \
    '{"owner_id": "'$ID'", "total_supply": "1000000000000000", \
    "metadata": { "spec": "ft-1.0.0", "name": " Sealos Point", \
    "symbol": "SLPT", "decimals": 8 }}' --accountId $ID

之後就可以看到錢包裡面有自己發行的 FT 了。

釋出版本

如果測試程式碼沒什麼問題了,就可以使用 Devbox 對整個環境打一個包了:

這就自動給你打好了 Docker 映象,100% 成功,100% 不需要你關心 Dockerfile 以及 Docker 和 K8s 的任何知識。

線上執行

剛才釋出的版本點 Deploy 就可以線上執行,這樣我們的開發環境和線上環境可分開。本教程的合約是執行在區塊鏈上的,所以這裡就不需要再部署了。

總結

我以前在沒有 Devbox 的情況下想做這個東西,環境我就沒搞定。安裝特別慢,而且我本機裝了很多亂七八糟的東西很容易依賴包版本衝突。

一編譯 Rust 程式碼電腦都可以煎雞蛋,ARM 的架構和 x86 還有很多不相容還需要搞跨平臺編譯。好不容易搞定的環境就也保留不下來給我下次繼續用。

開發完了又要配置 HTTPS 資料庫負載均衡等等東西,累覺不愛,想想寫個程式碼要搞這麼多無關的事,我就不想寫了。

然而有了 Devbox,幾分鐘這些事全搞定了,而且環境非常乾淨且豐富,下載包也非常快,編譯也直接在雲端完全不卡。真是神器!

相關文章