MOVE入门|第一节:move开发环境搭建

  • spartac
  • 更新于 2023-01-12 14:25
  • 阅读 5922

Move是一种用于编写安全智能合约的编程语言,最初是由 Facebook 开发的。目前,区块链领域的主要参与者是Solidity。

什么是MOVE?

Move是一种用于编写安全智能合约的编程语言,最初是由 Facebook 开发的。目前,区块链领域的主要参与者是Solidity。作为最早的区块链语言之一,Solidity旨在使用众所周知的数据类型(例如字节数组,字符串)和数据结构(例如哈希图)来实现基本的编程语言概念,然而随着区块链技术的发展,Solidity安全性和可验证性上存在一些缺陷。

Move专门设计用于解决安全性和可验证性,数字资产的表示和对它们的安全操作。为了提供额外的保护,它与Move Prover验证工具一起共同开发。这允许 Move 开发人员为其应用程序的关键正确性属性编写正式规范,然后使用Prover检查这些属性是否适用于所有可能的输入。

本系列将从Move的安装环境开始讲解 Move语言基础以及一些关于Move审计的知识,有任何问题欢迎留言交流。

move-cli安装

命令行界面(Move CLI)是用rust开发的工具,集成了MoveVM、move编译器。它提供了一种与 Move 交互、测试编写和运行 Move 代码以及测试开发对 Move 开发有用的新工具的简单方法。 本次安装系统环境为macos。

安装cargos

由于move是基于rust写的。所以要安装move首先要安装rust开发环境。 使用以下命令安装:

curl https://sh.rustup.rs -sSf | sh

安装move-cli

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 

Move-analyzer安装

主要提供语法检查、高亮等功能,vscode的插件也需要用到该命令,否则会报错。

cargo install --path move/language/tools/move-analyzer

vscode开发环境

可以使用vscode编写代码,只需要安装两个插件即可。 在vscode扩展商店里搜索并安装即可 1.move-analyzer

2.move syntax

idea开发环境

除了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] 主要存放的是项目的信息,项目的名称,版本
  • [dependencies] 中存放的是move标准库地址,由于生成项目默认给的Move标准库是Git地址,速度很慢,这里我们可以将标准库下载到本地,换成文件的路径。
  • [addresses] 中是模块命名(方便项目直接引用)
    
    项目信息
    [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程序。

move学习资料

https://move-language.github.io/move/modules-and-scripts.html

  • 原创
  • 学分: 47
  • 分类: Move
  • 标签: Move 
点赞 4
收藏 3
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

2 条评论

请先 登录 后评论
spartac
spartac
江湖只有他的大名,没有他的介绍。