[基础] 001 move的介绍
一.什么是sui
基于move的下一代智能合约平台
- sui是从0开始设计的区块链平台
- 在2023年5月份完成主网的上线
- 开发应用使用的是move编程语言(Facebook开发)
二.move介绍
起源
最初起源于Facebook(现在的Meta)开发,用于Libra/Diem区块链平台
Move起源于Facebook(现在Meta)的一个非常明星的项目Diem(前身为 Libra)https://github.com/diem/diem),可能早期的Rust爱好者和区块链爱好者会看到这个项目,就算没看到过,现在diem代码库的Star数量依然能证明曾经的辉煌。Move就是诞生在Diem(Libra)这样一个明星项目里面
哪为什么Diem需要创造一个新的Move编程语言,而不是用以前已经有的东西,而是选择新造了一个轮子,那就要从Diem想做什么开始开始说起了
Diem最开始的是想做一个跨全球的区块链支付系统,当时调研了目前存在的区块链编程语言和通用的编程语言后,这些编程语言要么过于通用,太过于复杂不适用于这个系统,要么特性满足但是性能和安全性不满足,而且因为早起项目是用Rust写的,大家就发现Rust的特性很好,所有权机制能避免资产的双花诞生,而且很多特性比较适合资产,于是就诞生了一种想法,我们能不能借鉴Rust的一下特性和语法习惯,专门简化一个只处理资产相关的特性抽离出来,在上面在做一下资产独有的特性,于是一个面向资产编程的Move语言就那么诞生了,出身名门,并且带他安全,面向资产编程和大规模使用的使命一直在演进
https://github.com/diem/diem
特点
基于所有权类型,并且非常注重简单性,正确性和可分析性
- 面向资产的智能合约编程语言
- 强类型,无任何隐式转换
- 安全
- 用于大规模系统
- 借鉴Rust语法和特性
- rest语言开发
- 内核完全从0开始设计,不是基于rust
https://github.com/move-language/move-sui
智能合约
move是面向资产的智能合约编程语言
智能合约是运行在区块链上的计算机程序,类似于现实世界中的合同
三.move可以做什么
- 定义资产 : 定义USD,定义NFT
- 操作资产 : 增删改查
- 权限控制 : 限制访问,限制转移权限(这个是最重要的,资产的安全是最重要的,这也是合约学习的重点)
四.对比其他编程语言
- 事务性 : 每次运行程序都是一个完成的事务,要么全部完成,要么全部失败
- 自动处理并发 : 不用考虑并发执行资源的处理,底层会自动处理并发资源的排序
- 和链的结合屏蔽了数据层的概念,语言本身的操作就是数据的操作,极大的简化了需要学习数据层的处理(比如传统的web2开发就需要学习mysql,MongoDB等数据库,但是web3不需要)