当前位置: 首页 > article >正文

[基础] 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不需要)

http://www.kler.cn/a/392028.html

相关文章:

  • k8s集群安装(kubeadm)
  • react 中 FC 模块作用
  • 想租用显卡训练自己的网络?AutoDL保姆级使用教程(PyCharm版)
  • linux 下查看程序启动的目录
  • 科技云报到:数字化转型,从不确定性到确定性的关键路径
  • RAG综述:《A Comprehensive Survey of Retrieval-Augmented Generation (RAG)》
  • 机器学习:随机森林——基于决策树的模型
  • (蓝桥杯C/C++)——搜索
  • 036 RabbitMQ消息确认 死信队列 延时队列
  • 脑机接口、嵌入式 AI 、工业级 MR、空间视频和下一代 XR 浏览器丨RTE2024 空间计算和新硬件专场回顾
  • 接口测试框架+数据驱动
  • Fish Agent V0.13B:Fish Audio的语音处理新突破,AI语音助手的未来已来!
  • 集合类源码浅析のJDK1.8ConcurrentHashMap(上篇)
  • Go语言的并发安全与互斥锁
  • 使用cloudflare搭建私人docker镜像站
  • 【深圳大学/大学物理实验2】弗兰克-赫兹实验预习题参考
  • PL/SQL执行.sql文件
  • Go语言实现用户登录Web应用
  • 解析“ChatGPT网络错误”:从网络专线到IP地址的根源与解决方案
  • 券商隔夜单自动下单交易接口
  • 基于表格滚动截屏(表格全部展开,没有滚动条)
  • 【LeetCode】【算法】240. 搜索二维矩阵II
  • 鸿蒙next版开发:ArkTS组件通用属性(布局约束)
  • QT常用控件
  • 127.WEB渗透测试-信息收集-ARL(18)
  • 自动化爬虫Selenium