Move是一种用于编写安全智能合约的编程语言,最初是由 Facebook 开发的。目前,区块链领域的主要参与者是Solidity。
Move是一种用于编写安全智能合约的编程语言,最初是由 Facebook 开发的。目前,区块链领域的主要参与者是Solidity。作为最早的区块链语言之一,Solidity旨在使用众所周知的数据类型(例如字节数组,字符串)和数据结构(例如哈希图)来实现基本的编程语言概念,然而随着区块链技术的发展,Solidity安全性和可验证性上存在一些缺陷。
Move专门设计用于解决安全性和可验证性,数字资产的表示和对它们的安全操作。为了提供额外的保护,它与Move Prover验证工具一起共同开发。这允许 Move 开发人员为其应用程序的关键正确性属性编写正式规范,然后使用Prover检查这些属性是否适用于所有可能的输入。
本系列将从Move的安装环境开始讲解 Move语言基础以及一些关于Move审计的知识,有任何问题欢迎留言交流。
命令行界面(Move CLI)是用rust开发的工具,集成了MoveVM、move编译器。它提供了一种与 Move 交互、测试编写和运行 Move 代码以及测试开发对 Move 开发有用的新工具的简单方法。 本次安装系统环境为macos。
由于move是基于rust写的。所以要安装move首先要安装rust开发环境。 使用以下命令安装:
curl https://sh.rustup.rs -sSf | sh
1.拉取move最新代码
git clone https://github.com/move-language/move.git
2.安装move-cli
cargo install --path move/language/tools/move-cli
3.测试安装是否成功
move -h
主要提供语法检查、高亮等功能,vscode的插件也需要用到该命令,否则会报错。
cargo install --path move/language/tools/move-analyzer
可以使用vscode编写代码,只需要安装两个插件即可。 在vscode扩展商店里搜索并安装即可 1.move-analyzer
2.move syntax
除了vscode外,idea也有插件支持move的开发。 插件链接:https://plugins.jetbrains.com/plugin/14721-move-language
如果实在不想装环境,也可以使用在线的IDE。 链接:
https://playground.pontem.network/
安装好了开发环境,现在简单的跑一个小demo体验一下。
命令
move new pro_stu
这里我们先了解一下项目的结构
├── Move.toml # move 配置文件,存放项目信息、依赖、命名地址等内容
└── sources # 源码目录,用于存放模块、脚本等内容
├── modules # 模块目录,用来封装方法。
│ └── math.move # 具体模块
└── scripts # 脚本目录,用来写脚本
└── test-math.move # 具体脚本
Move.toml是move 配置文件,存放项目信息、依赖、命名地址等内容。
项目信息
[package]
name = "pro_stu"
version = "0.0.0"
Move标准库地址 [dependencies] MoveStdlib = { git = "https://github.com/move-language/move.git", subdir = "language/move-stdlib", rev = "main" }
模块命名(方便项目直接引用) [addresses] std = "0x1"
接下来我们开始写代码啦
## 测试项目
1.在module中新建一个Math.move文件,写一个函数来完成一个加法运算,内容很简单,主要是完成两个数的加法。
```move
module 0x1::Math {
public fun add(a:u64,b:u64):u64{
return a+b
}
}
2.script中新建一个test_math.move文件,用来测试module的函数。
script {
use 0x1::Math;
use std::debug;
fun test_math(){
let a:u64=3;
let b:u64 =6;
let c = Math::add(a,b);
debug::print(&c);
}
}
代码编写完成后接下来编译运行,根据自己的情况在vscode或IDEA中打开终端,在项目目录下执行以下命令。
1.编译sources下的move代码
move build
2.在沙盒环境发布字节码到0x1(0x1是本例中Math模块前的地址)名下
move sandbox publish -v
3.运行脚本文件
move sandbox run sources/scripts/test_math.move
运行后可以看到打印的结果
这一讲主要介绍了move的开发环境的搭建,并且编译运行了第一个move程序。
https://move-language.github.io/move/modules-and-scripts.html
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!