本教程以一個智慧合約(使用 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,幾分鐘這些事全搞定了,而且環境非常乾淨且豐富,下載包也非常快,編譯也直接在雲端完全不卡。真是神器!