Sam Blackshear谈Move语言的创新

Sui上的Move编程语言融合了三项基本创新:面向对象的数据模型、可编程交易区块和动态字段。Mysten Labs的联合创始人兼首席技术官Sam Blackshear在五年前创建了Move,这是一种专门为在区块链上编写智能合约而设计的语言。这三项在Sui上的创新提升了Move的潜力。

https://youtu.be/PoI2z4mSUqs

视频内容

编程语言并不像自然语言那样包罗万象。它们不会处理所有事情,而是专门针对某一种任务,并且非常擅长完成这项任务。之所以需要专门的语言,是因为这些任务在传统编程语言中不受支持。

Move在Sui上有三个独特的区别性特征。第一个是面向对象的数据模型,对象是Move中的基本构建块,它就像是一个大型的对象数据库。Move针对的任务类型是稀缺对象的编程。这些对象具有保守性质,比如不能意外丢弃、不能复制,并且具有强所有权转移。在Sui上,你可以轻松地获得所有这些特性。例如,定义一个对象就像定义一个结构体一样简单。它有一些字段,有一个全局唯一的ID,可以从Move代码内部引用它。前端的ID在对象跨账户移动和随时间变化时保持不变,它为你提供了一种始终引用它的方法。这不是程序员需要手动完成的事情,每个对象都会免费获得一个这样的ID。我们从Libra项目出来后所做的第一个改变就是增加了这个面向对象的数据模型。

第二个我认为非常有趣的特性是可编程交易区块。当你有一个交易时,它会调用一个Move函数,这就是它的全部功能。而可编程交易区块让你不仅仅调用一个函数,而是可以先调用一个函数,然后再调用另一个函数。你可以将交易区块中前面部分的对象传递到后面的函数中,这让你可以在前端即时进行组合。这可能是Sui开发者最喜欢的特性,因为它不再局限于一次只能调用一个函数。

第三个主要区别特性是动态字段。使用Move对象时,你声明一组字段、静态类型,可以对其进行写操作和更新。而动态字段则允许你在Move对象中即时添加额外的数据。你可能发布了一个对象,然后稍后决定要为其添加一个开始时未预见到的字段,而无需重写旧代码或迁移旧对象数据。你可以以原始创建者未曾预料到的方式混合和匹配对象,从而创造出非常令人愉快的体验。对于游戏开发者来说,动态字段是最具吸引力的特性之一。假设你有一个游戏角色,他们的物品栏由各种异构类型的对象组成。你可以表示为,英雄角色是一个对象,他们的剑是另一个对象,并通过动态字段连接到英雄角色,表示“这是我手里拿着的东西”。如果他们有一双靴子,则通过另一个动态字段表示“这是我脚上的东西”。你不必提前知道需要哪些东西,具有很大的灵活性来进行混合和匹配。Sui的开发者结合这些特性做出了许多令人印象深刻的东西,赋予了系统更多的丰富性和功能。

Move的持续开发提高了其效率和开发者体验。

现在就迁移到Move 2024吧!


关于 Sui Network

Sui是基于第一原理重新设计和构建而成的L1公有链,旨在为创作者和开发者提供能够承载Web3中下一个十亿用户的开发平台。Sui上的应用基于Move智能合约语言,并具有水平可扩展性,让开发者能够快速且低成本支持广泛的应用开发。获取更多信息:https://linktr.ee/sui_apac

官网|英文Twitter|中文Twitter|Discord|英文电报群|中文电报群

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/12796.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【nfs服务部署服务端和客户端搭建】

原理 NFS(Network File System)是文件服务器之一。它的功能是可以通过网络,让不同的机器、不同的操作系统可以彼此共享数据文件。 NFS服务器可以让服务端的共享目录挂载到本地端的文件系统中,其他服务器如果想访问共享目录&#…

C++原型模式

原型模式实现方式 原型模式的结构 抽象原型类:规定了具体原型对象必须实现的接口。具体原型类:实现抽象原型类的 clone() 方法,它是可被复制的对象。访问类:使用具体原型类中的 clone() 方法来复制新的对象。 //父类 class Protot…

单链表经典算法 面试题--力扣02.04

链接:. - 力扣(LeetCode)【点击即可跳转】 思路:创建新链表:大链表和小链表 将pcur节点小于x的值,尾插在小链表中 将pcur节点大于或等于x的值,尾插在大链表中 最终---- return lessHead->…

护眼 保护眼睛

高度近视600度的我,花了4个月时间度数降了50度,又花了一个多月的时间,双眼50度散光清零了。 然后就有人问我:散光都可以恢复吗? 我有点被问懵了,散光难道不容易恢复吗?直到我在网上查了一下,才发…

vue3和vite

vue3 1、vue3使如何实现效率提升的 客户端渲染效率比vue2提升了1.3~2倍 SSR渲染效率比vue2提升了2~3倍 1.1、静态提升 解释&#xff1a; 1. 对于静态节点&#xff08;如&#xff1a;<h1>接着奏乐接着舞</h1>&#xff09;&#xff0c;vue3直接提出来了&#xff…

whisper使用

whisper使用 1. 直接调用 语音识别2. 语种识别 whisper.detect_language()和whisper.decode()3. 指定要识别的语种做语音识别**whisper 源码的transcribe函数** 函数解析1. transcript.py2. tokenizer.py3. audio.py4. __ init__.py github: https://gitcode.com/openai/whispe…

vue基础+高级用法

一、vue基础用法 mvvm的了解/认知 语义化模板mvc - model view controllermvvm - model view view-model vue是如何利用mvvm思想进行开发 双向数据绑定 花括号&#xff0c;构建了数据与视图的双向绑定通过视图绑定事件&#xff0c;来处理数据 生命周期-vue示例 建立&…

【JAVA进阶篇教学】第十六篇:Java中AOP使用

博主打算从0-1讲解下java进阶篇教学&#xff0c;今天教学第十五篇&#xff1a;Java中AOP使用。 AOP&#xff08;Aspect-Oriented Programming&#xff09;是一种编程范式&#xff0c;它允许开发者在不修改源代码的情况下&#xff0c;对代码进行横切关注点的分离和增强。在 Java…

CNAME记录

CNAME记录 维基百科&#xff0c;自由的百科全书 &#xff08;重定向自CNAME&#xff09; 真实名称记录&#xff08;英语&#xff1a;Canonical Name Record&#xff09;&#xff0c;即CNAME记录&#xff0c;是域名系统&#xff08;DNS&#xff09;的一种记录。CNAME记录用于…

mysqldump: Error 2013 导致mysql停止运行

https://www.cnblogs.com/DataArt/p/10173957.html 1 查询表大小 SELECT table_name AS "表名", round(((data_length index_length) / 1024 / 1024), 2) AS "大小(MB)" FROM information_schema.tables WHERE table_schema your_database_name AND …

Togaf培训简介

Togaf简单讲 1.定义事物&#xff0c;方便大家互相理解 2.做好现状和愿景设计 3.做好现状到愿景的计划 1.togaf 首先是统一语言。大家互相能理解&#xff0c;比如各种定义。 togaf源自美国军方理论 2.没有架构设计&#xff0c;烟囱式系统是必然的。 就跟之前去政府办户籍一…

抖店曝光率高,转化低,不知道怎么提升转化率?试试这四个方法

大家好&#xff0c;我是醒醒团队电商花花。 我们现在做抖音小店的商家或多或少都会遇到不出单&#xff0c;转化低的各种问题。 明明店铺的曝光不低&#xff0c;访客也不少&#xff0c;就是没转化。 下面我根据我们做店的经验&#xff0c;给大家分享一些问题所在&#xff0c;…

Git—安装及介绍

下载Git 官网地址&#xff1a;Git - Downloads (git-scm.com) 安装 双击安装包 点击 next 检查安装 桌面&#xff0c;右键鼠标&#xff0c;是否出现 Git GUI Here 和 Git Bash Here 打开Git Bash Here 输入命令 git --verison

NX/UG软件使用—策略OK回调环境变量

新建环境变量UGII_CAM_OPERATION_OK_EXIT&#xff0c;变量值为需要执行的xx.dll路径&#xff0c;设置后&#xff0c;重启NX&#xff0c;那么在每次点击策略OK之后&#xff0c;会自动执行xx.dll(注意这个dll需要在配置好的工具目录里&#xff0c;也就是说NX能手动加载这个dll)。…

finallyshell激活-支持所有版本(老版 + 最新版) + 所有平台(mac + windows)

一&#xff1a;打开finally shell的激活页面 二&#xff1a;点击离线激活 三&#xff1a;复制机器码&#xff0c;然后执行一下代码 原文&#xff1a;大哥原文&#xff0c;但是这个大佬是用java实现的&#xff0c;执行因为依赖的问题一直报错 基于以上问题&#xff0c;所以使…

YoLov9目标检测算法的使用

目录 一、环境安装 1、创建虚拟环境 2、安装依赖库 二、数据集准备 1、数据集的文件名 2、划分数据集 3、配置数据文件 4、修改模型结构文件的类别 5、下载模型预训练权重 三、训练 1、训练的三个文件介绍 2、训练 3、验证 4、检测单张图片 四、附录 1、训练参…

C#数据库密码加密保存和登录验证方法

目录 1. 使用哈希算法加密密码 2. 用户注册时加密密码并保存到数据库 3. 用户登录时验证密码 注意事项 如何实现加盐处理 安装BCrypt.Net包 密码哈希和验证 用户注册时加盐并哈希密码 用户登录时验证密码 1. 使用哈希算法加密密码 可以使用C#中的System.Security.Cryp…

01 区块链-- Smart Contract

Concept of Smart Contract 1. 智能合约并非区块链的专属 智能合约&#xff0c;就是一段部署在区块链里的代码。 合约有自己的地址&#xff0c;与该地址进行交易会触发代码运行&#xff0c;一旦某个事件触发合约中的条款&#xff0c;代码即自动执行。 也就是说&#xff0c;满…

上海市计算机学会竞赛平台2024年1月月赛丙组成绩等第

题目描述 给定一个在 00 到 100100 之间的整数 &#x1d44e;a&#xff0c;请将它转成等第&#xff0c;规则如下&#xff1a; 9090 或以上为 A8080 或以上为 B7070 或以上为 C6060 或以上为 D5959 或以下为 F 输入格式 单个数字表示 &#x1d44e;a 输出格式 单个字符表示…