首页 > 其他分享 >使用 Cursor 和 Devbox 快速开发基于 Rust 的 WASM 智能合约

使用 Cursor 和 Devbox 快速开发基于 Rust 的 WASM 智能合约

时间:2024-10-22 14:34:28浏览次数:8  
标签:sealospoint FT Cursor near WASM Rust https com Devbox

本教程以一个智能合约(使用 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,几分钟这些事全搞定了,而且环境非常干净且丰富,下载包也非常快,编译也直接在云端完全不卡。真是神器!

标签:sealospoint,FT,Cursor,near,WASM,Rust,https,com,Devbox
From: https://www.cnblogs.com/ryanyangcs/p/18492659

相关文章

  • Rust小练习,编写井字棋
    画叉画圈的游戏通常指的是井字棋(Tic-Tac-Toe),是一个简单的两人游戏,规则如下:游戏规则棋盘:游戏在一个3x3的方格上进行。玩家:有两个玩家,一个用“X”表示,另一个用“O”表示。目标:玩家轮流在空格中填入自己的标记,目标是先在横向、纵向或斜向上连续放置三个相同的标记。胜利条......
  • Rust求解八皇后问题
    八皇后问题是一个经典的回溯算法问题,目的是在8x8的棋盘上放置8个皇后,使得它们不能相互攻击。也就是说,任意两个皇后不能在同一行、同一列或同一对角线上。这是一个使用Rust解决八皇后问题的完整代码,并附有详细的注解。Rust和Haskell等函数式语言不同,在处理递归或......
  • 在Lua中实现Rust对象的绑定tT
    合集-算法(7)1.TimerWheel(计时轮)在Rust中的实现及源码解析06-122.Rust性能分析之测试及火焰图,附(lru,lfu,arc)测试06-183.Lru-k在Rust中的实现及源码解析06-214.带有ttl的Lru在Rust中的实现及源码解析06-24:westworld加速5.Lfu缓存在Rust中的实现及源码解析06-276.Rust宏之der......
  • 在Lua中实现Rust对象的绑定
    实现目标:能将Rust对象快速的映射到lua中使用,尽可能的简化使用。功能目标以structHcTestMacro为例:类型构建,在lua调用localval=HcTestMacro.new()可构建类型析构,在lua调用HcTestMacro.del(val)可析建,仅限lightuse**rdata字段的映射,假设有字段hc,我们需要能快速的进行字段......
  • uv 基于rust 编写的python 包管理以及项目管理工具
    uv基于rust编写的python包管理以及项目管理工具包含的特性简单工具可以替换pip,pip-tools,pipx,poetry,pyenv等比pip快10-100倍安装以及管理python版本运行以及安装python应用运行脚本支持类似cargo模式的workspace磁盘空间高效说明对于希望提示快速python包下......
  • 【rCore OS 开源操作系统】Rust 智能指针
    前置知识点何为“智能”在Rust中,“智能指针”是指那些实现了特定智能行为的指针类型。这些智能行为通常包括内存管理、生命周期跟踪以及所有权转移等。常见智能指针BoxBox<T>是Rust中最简单的智能指针类型之一,它用于堆分配的内存。Box<T>允许你在堆上分配类型T......
  • rust操作mysql增删改查
    toml[dependencies]mysql="25.0.0"[[bin]]name="mysql"path="src/mysql.rs"mysql.rsusemysql::*;usemysql::prelude::*;fnmain(){leturl="mysql://root:root@localhost:3306/fiber";letpool=Po......
  • Rust学习笔记
    首先下载RUST的安装程序:https://www.rust-lang.org/tools/installWindows系统直接下载rustup-init.exe进行安装。这个只是一个安装器,安装的过程中还需要再下载安装文件。下载的速度可能会有点慢。可以尝试设置下面两个系统环境变量(设置在当前用户里)RUSTUP_DIST_SERVER="https:......
  • Rust宏之derive的设计及实战
    Rust宏可以极大的简化编写的难度,学习好宏可以更好的减少冗余代码。宏的基本概念Rust中的宏可以分为两大类:声明宏(DeclarativeMacros)和过程宏(ProceduralMacros)。声明宏:也称为macro_rules!宏,使用macro_rules!关键字定义。它是一种基于模式匹配的文本替换宏,类似于C语言中的宏定......
  • 用Cursor开发了一个图片分割器
    今天来总结下,Cursor从8月份开始,在国内的技术圈子里面火起来了,我也是抱着试试看的心态,用下来感觉真是不得了,有点厉害,可以帮自己搞定前端类的项目,对于不擅长前端,写不出来好看的UI的程序员来说,真是很强。Cursor也很聪明,几乎一两天就可以完成一个在线工具网站的小需求......