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

使用 Cursor 和 Devbox 快速开发基于 Rust 的 WASM 智能合约的更多相关文章

  1. 四、利用EnterpriseFrameWork快速开发基于WCF为中间件的三层结构系统

    回<[开源]EnterpriseFrameWork框架系列文章索引> EnterpriseFrameWork框架实例源代码下载: 实例下载 本章内容与上一张<利用Enterprise ...

  2. 如何快速开发基于Winform的应用系统

    在我们实际业务开发中,从头开发一个应用系统,不管是基于BS的前端项目,还是基于Winform的CS应用系统,都是由容易到复杂,逐步演化的一个开发过程,如果我们基于一定基础上,并配合一些配套的开发工具, ...

  3. 快速开发基于 HTML5 网络拓扑图应用

    采用 HT 开发网络拓扑图非常容易,例如<入门手册>的第一个小例子麻雀虽小五脏俱全:http://www.hightopo.com/guide/guide/core/beginners/e ...

  4. 快速开发基于 HTML5 网络拓扑图应用1

    今天开始我们就从最基础解析如何构建 HTML5 Canvas 拓扑图应用,HT 内部封装了一个拓扑图形组件 ht.graph.GraphView(以下简称 GraphView)是 HT 框架中 2D ...

  5. 快速开发基于 HTML5 网络拓扑图应用--入门篇(一)

    计算机网络的拓扑结构是引用拓扑学中研究与大小,形状无关的点.线关系的方法.把网络中的计算机和通信设备抽象为一个点,把传输介质抽象为一条线,由点和线组成的几何图形就是计算机网络的拓扑结构.网络的拓扑结构 ...

  6. 五、利用EnterpriseFrameWork快速开发基于WebServices的接口

    回<[开源]EnterpriseFrameWork框架系列文章索引> EnterpriseFrameWork框架实例源代码下载: 实例下载 前面几章已完成EnterpriseFrameWo ...

  7. 快速开发基于 HTML5 网络拓扑图应用之 DataBinding 数据绑定篇

    前言 发现大家对于我从 json 文件中直接操作节点属性来控制界面的动态变化感到比较好奇,所以这篇就针对数据绑定以及如何使用这些绑定的数据做一篇说明,我写了一个简单的例子,基于机房工控的服务器上设备的 ...

  8. 快速开发基于 HTML5 网络拓扑图应用--入门篇(二)

    上一篇我们绘制了一个 graphView 场景,在场景之上通过 graphView.dm() 获取数据容器,并通过 graphView.dm().add() 函数添加了两个 Node 节点,并通过 s ...

  9. 轻装上阵Flink--在IDEA上开发基于Flink的实时数据流程序

    前言 本文介绍如何在IDEA上快速开发基于Flink框架的DataStream程序.先直接上手! 环境清单 案例是在win7运行.安装VirtualBox,在VirtualBox上安装Centos操作 ...

  10. 智能合约开发solidity编程语言开发一个以太坊应用区块链投票实例

    智能合约开发用solidity编程语言部署在以太坊这个区块链平台,本文提供一个官方实战示例快速入门,用例子深入浅出智能合约开发,体会以太坊构建去中心化可信交易技术魅力.智能合约其实是"执行合 ...

随机推荐

  1. 《Bitcoin: A Peer-to-Peer Electronic Cash System》 中本聪写的比特币白皮书

    网址: https://bitcoin.org/bitcoin.pdf =============================================================

  2. FIRD的防碰撞机制

    RFID多标签阅读时防碰撞技术 概念 RFID 读写器在正常情况下一个时间点只能对磁场中的一张RFID卡进行读或写操作,但是实际应用中经常有当多张卡片同时进入读写器的射频场,读写器怎么处理呢?读写器需 ...

  3. Windows10 解决端口占用问题

    netstat -ano|findStr 8080 taskkill -f -pid 8080 奥里给   秘制小汉堡安排

  4. 【SpringCloud学习笔记(二)】用nacos做配置中心

    1. 学习目的 nacos除了作为服务注册中心之外,还能用作配置中心,可以说满足了日常的大部分需要.本次就是要学会如何使用nacos作为配置中心. 2. 操作 要使用nacos作为配置中心,需要首先引 ...

  5. rcc of stm32

    1. G0 2. F0 / F1 / F3 F0 F1 F3 3. F2/F4 F205 f429 f7

  6. 如何让你的C语言程序打印的log多一点色彩?(超级实用)

    接着上一篇文章<由字节对齐引发的一场"血案" > 在平常的调试中,printf字体格式与颜色都是默认一致的. 如果可以根据log信息的重要程度,配以不同的颜色与格式,可 ...

  7. 什么是淘宝API?

    ​ 淘宝API是淘宝开放平台提供给开发者的一系列应用程序编程接口,它们允许开发者访问和使用淘宝的数据和服务.通过这些API,开发者可以构建应用程序,实现商品信息检索.订单管理.用户行为分析.物流跟踪等 ...

  8. 图解Zabbix设置邮件报警

    Zabbix设置邮件告警   前提条件: Zabbix Server 和 Zabbix Agent都已安装完毕,并已启动   1.添加主机   2.配置邮件告警,这里以VSFTP服务为例 yum in ...

  9. 6.13API接口服务类漏洞探针

    ip地址解析:www.x.x.x.com, 对应网站目录为d:/wwwroot/xiaodi/ 而127.x.x.x,对应网站目录为d:/wwwroot/,可能存在网站备份文件zip,所以ip网址端口 ...

  10. libtool版本错配(libtool version mismatch)

    当使用configure和makefile编译项目时,出现如下报错: libtool: Version mismatch error. This is libtool 2.4.6, but the`` ...