查看原文
其他

35岁程序员使用Cursor和Devbox手撕基于Rust的WASM智能合约

fanux Sealos
2024-11-01

本教程以一个智能合约(使用 NEAR 的一个官方 Fungible Tokens 来实现)的例子来介绍一下 Devbox 的强大功能,轻松构建环境,轻松发布。

NEAR 是一个去中心化的应用平台,使用了分片技术的区块链。

免责申明:本教程仅适合用来学习智能合约。

Fungible Tokens 我就不解释了,有兴趣的自己去搜索,我是想用这个东西做公司内部的一个积分系统,可以通过积分对企业成员实时奖励。

话不多说,正式开始:

秒开 Rust 环境

首先登录 Sealos:https://hzh.sealos.run

然后打开 Devbox,直接选 Rust 环境即可。

如果你非要在自己电脑上装环境,你可能会遇到以下问题:

  • 下载半天,不一定能装成功。

  • 可能会把环境搞乱,不方便推到重来。

  • 如果你是 m 系列的 MacBook,则是 arm64 架构,而上线到服务器一般都是 x86 架构,各种跨平台编译能搞死人。

等待状态变成 Running 之后,在操作选项中选择使用 Cursor 连接,首次打开会提示安装 Devbox 插件,安装后即可自动连接开发环境。

这样基础干净的编程环境就搞定了,环境全部在云端,通过本地 Cursor 去连接。

安装 NEAR CLI

在 Cursor 终端中输入以下命令:

  • 1

  • 2

  • 3

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

你能感受到神一般的速度,特别是海外可用区,如果在本机,估计以上三个动作又可以刷半个小时抖音了

克隆代码

  • 1

  • 2

  • 3

  • 4

git clone https://mirror.ghproxy.com/https://github.com/fanux/FT
cd FT
# 编译代码
./scripts/build.sh

30s 不到,又全搞定了,而且不会出错,因为环境和代码的一致性很好,不会出现任何不符合预期的事。

创建 NEAR 账户

  • 1

  • 2

  • 3

$ 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 个单词请务必记好,助记词可以生成公钥和私钥。

成功后可以看到这个文件,这里面有私钥,请勿泄漏:

  • 1

  • 2

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

部署合约

  • 1

  • 2

  • 3

sealos@sealospoint:~/project/FT$ ID=sealospoint.testnet
sealos@sealospoint:~/project/FT$ echo $ID
sealospoint.testnet
  • 1

near deploy $ID res/fungible_token.wasm

发行 FT

  • 1

  • 2

  • 3

  • 4

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,几分钟这些事全搞定了,而且环境非常干净且丰富,下载包也非常快,编译也直接在云端完全不卡。真是神器!

加入 Sealos 开源社区体验像个人电脑一样简单的云操作系统



🏠官网链接

https://sealos.run


🐙GitHub 地址

https://github.com/labring/sealos


📑访问 Sealos 文档

https://sealos.run/docs/Intro


🏘️逛逛论坛

https://forum.laf.run/

往期推荐

还在使用昂贵的虚拟机?来试试 Devbox,便宜 6 倍!

2024-10-11

Sealos Devbox 发布,珍爱生命,远离 CI/CD

2024-10-08

7.2k star!一款无比优雅的文档管理系统,免费开源!

2024-09-04

3.2k star!一款自称卷王的开源问卷调查和考试系统,是真的卷啊!

2024-09-02


关于 Sealos

Sealos 是一款以 Kubernetes 为内核的云操作系统发行版。它以云原生的方式,抛弃了传统的云计算架构,转向以 Kubernetes 为云内核的新架构,使企业能够像使用个人电脑一样简单地使用云。


关注 Sealos 公众号与我们一同成长👇👇👇

继续滑动看下一个
Sealos
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存