区块见闻 区块见闻
Ctrl+D收藏区块见闻
首页 > Luna > 正文

ANS:Sui开发者必读:MOVE语言及技术特性_Battle of Guardians Share

作者:

时间:

撰文:Sui Network

本文将为开发人员在 Sui Network 上的最佳实践做快速参考。

Sui 是基于第一原理重新设计和构建而成的 L1 公有链,旨在为创作者和开发者提供能够承载 Web3 中下一个十亿用户的开发平台。Sui 上的应用基于 Move 智能合约语言,并具有水平可扩展性,让开发者能够快速且低成本支持广泛的应用开发。Sui 主网已于 2023 年 5 月 3 日正式上线。

阅读有关包升级的详细信息并编写对升级友好的代码。

包是不可变的,有漏洞的包代码可以永远调用,解决方案是在对象层面添加保护。

如果将包从 P 升级到 P',依赖于 P 的其他包和客户端将继续使用 P,而不是自动更新到 P'。因此,依赖于包和客户端的代码都必须更新以明确地指向 P'。

订单簿DEX Vertex上线OP、 SUI、APT永续合约:7月8日消息,订单簿DEX Vertex发推公告称,OP、 SUI、APT永续合约已上线。

据此前报道,基于Arbitrum的去中心化交易所Vertex Protocol宣布,获得Wintermute Ventures战略投资,具体金额暂未披露。[2023/7/9 22:26:25]

期望被依赖包扩展的包,可以通过提供符合所有版本标准的(不变的)接口,来避免每次升级时破坏它们之前的扩展。以 Wormhole 跨链桥为例,通过 Wormhole 作为桥梁发送消息,要想生成发送消息的扩展包,可以使用任意版本 Wormhole 包中的 prepare_message 指令来生成 MessageTicket,而发送消息的客户端代码必须将该 MessageTicket 传递到最新版本包中的 publish_message。

Sui基金会宣布面向APAC的Office Hours计划:5月15日消息,Sui基金会的Growth团队开启“Office Hours”计划,专注于为构建者提供从产品开发到业务成熟的全面指导,参与者将有机会与Sui基金会的Growth团队成员会面,并获得有关如何使项目成功的指导和资源支持。Growth团队由经验丰富的创业运营人员、营销专家和业务发展专家组成。首次Office Hours将集中在亚太地区的项目,而欧洲、中东、非洲以及北美等将在不久后推出。[2023/5/15 15:03:13]

public 函数不能删除或更改,但 public(friend) 函数可以。您可以自由地使用 public(friend) 或仅自己可见功能,除非您要将现在的库函数永远公开。

不能删除 struct 类型、不能添加新字段(尽管您可以添加动态字段)或通过升级新功能。添加新类型时请谨慎思考,一旦添加后将永远存在!

Mysten Labs联创:SUI没有空投计划:金色财经报道,针对一推特用户发表的“如果赚取SUI空投”的一系列推文,Sui开发团队Mysten Labs联合创始人兼首席产品官Adeniyi Abiodun表示:“别再传播谣言了,没有SUI空投。没有此类计划或永远不会有空投。”

此前消息,Sui Network在披露主网将于第二季度推出时,曾表示尚无正式的空投计划。[2023/4/10 13:54:29]

使用 vector 支持的集合(如 vector, VecSet, VecMap, PriorityQueue),最多不超过 1000 个数据项。

使用动态字段支持的集合(如 Table、Bag、ObjectBag、ObjectTable、LinkedTable)用于任何允许第三方添加的集合、更大的集合和未知大小的集合。

Sui Move 对象最大为 250KB——任何创建更大对象的尝试都将导致事务中止,请确保您的对象没有不断增长大过 vector 支持的集合。

Sui Name Service服务器遭攻击,目前正在为用户恢复角色:1月10日消息,Sui生态域名服务Sui Name Service发推称,其Discord服务器今日遭到一名已解雇的工作人员的攻击,攻击者冒充管理员进行了攻击。目前,Sui Name Service正在为用户恢复角色。[2023/1/10 11:04:55]

如果您的函数 f 需要来自调用者的付款,例如使用 SUI ,请使用 fun f(payment: Coin) 函数而不是 fun f(payment: &mut Coin, amount: u64) 函数。这对调用者来说更安全,因为他们可以准确地知道具体支付数额,并且不需要依靠函数 f 来提取正确的数额。

不需要小幅度优化 gas 消耗。在 Sui 上计算花费成本时,使用四舍五入的方法计算出其最接近的 bucket,因此只有非常剧烈的波动才会导致 gas 的变化。特别是,如果您的交易已经在最低成本范围内,那就不能更便宜了。详情请参照下图。

动态 | Bitcoin Suisse向交易软件提供商CoinRoutes投资300万美元:加密货币经纪和托管公司Bitcoin Suisse已向交易软件提供商CoinRoutes投资了300万美元,但该公司并未透露具体收购的股份比例。(The Block)[2019/10/23]

遵循 Move 编码惯例(Move coding conventions)来获得统一的式样。

使用 display 标准自定义您的对象在钱包、应用程序和浏览器中的显示方式。

避免使用「自我转移」功能——任何时候都有可能,从当前函数返回 obj,而不是写入 transfer::transfer(obj, tx_context::sender(ctx)),这允许调用者或可编程交易块(programmable transaction block)使用 obj。

使用 sui::test_scenario`模拟多次交易和多位发送者的测试场景。

使用 sui::test_utilsmodule 通过 assert_eq 测试获得更好的纠错消息,通过 print 调试打印,以及通过 destroy 进行 test-only 销毁。

使用 sui move test --coverage 计算测试时代码覆盖的信息,使用 sui move coverage source --module 查看以红色突出显示的未覆盖行。如果可行,建议将覆盖率设置为 100%。

为了获得最佳性能和数据一致性,应用程序应该在同一个全节点上提交写入和读取请求。在 TS SDK 中,这意味着应用程序应使用钱包的 signTransactionBlock API,然后通过调用应用程序全节点上的 execute_transactionBlock 来提交交易,而不是使用钱包的 signAndExecuteTransactionBlock API。这确保了先写后读的一致性——从应用程序的全节点读取将立即反映事务的写入,而不是等待 checkpoint。

为了降低延迟,如果您的应用程序需要知道交易已确认,但不需要立即查看交易效果或读取交易写入的对象 / 事件,请使用带有"showEffects": false 和"showEvents": false 的 executeTransactionBlock。

应用程序应该将频繁读取的数据本地缓存,而不是从全节点频繁抓取。

尽可能地使用可编程交易块(programmable transaction blocks)来组合现有的链上功能,而不是发布新的智能合约代码。可编程交易块允许大规模批次处理和异构组合,进一步降低已经很低的 gas 费。

应用程序应该将对 gas 预算、gas 价格和 coin 选择权留给钱包,这将为钱包提供了更大的灵活性,并且钱包有责任试运行交易以确保交易不会失败。

永远不要签署两笔触及同一独享对象的并发交易,要么单独使用独享对象,要么等待一笔交易结束后再发送下一笔交易。违反此规则可能会导致客户端模棱两可,从而同时锁定两个交易中涉及的独享对象,直到当前 epoch 结束。

任何发起交易的 sui client 命令(例如 sui client publish、sui client call)都可以接受 --serialize-output 标志以输出要签名的 base64 交易。

Sui 支持多种签名方案(signature schemes)进行交易签名,包括包括本机多重签名。

Sui World

个人专栏

阅读更多

金色荐读

金色财经 善欧巴

Chainlink预言机

区块律动BlockBeats

白话区块链

金色早8点

Odaily星球日报

欧科云链

MarsBit

深潮TechFlow

标签:BLOANSRANWORarcblockBattle of Guardians ShareUranium FinanceSkey Network

Luna热门资讯
ASH:金色Web3.0日报 | 纽约接受将稳定币作为保释金支付方式_HyperDeflate

DeFi数据 1、DeFi代币总市值:460.87亿美元 DeFi总市值及前十代币 数据来源:coingecko2、过去24小时去中心化交易所的交易量20.

LAYER:以太坊Layer 2必知必会_ROLL

当我们在讨论以太坊Layer 2的时候,我们究竟在探讨什么?如何解决可扩展性挑战,实现更高效的交易处理?本篇文章将为您提供一份详尽的入门指南.

ETH:全球区块链专利状况研究_Bitcoin and Ethereum Standard Token

区块链(Blockchain)是一种安全共享的去中心化的数据账本。近年来,区块链与大数据、云计算、人工智能、5G等新一代信息技术快速融合发展,应用已延伸到数字金融、物联网、智能制造、供应链管理、.

数字货币:中行再搭建一家数字人民币创新应用实验室_数字货币案例大全

5月4日,中行云南分行搭建“数字人民币创新应用实验室”采购项目邀请公告发布。 据悉,项目采购内容为: 一是场地功能模块。包括但不限于按照设计策划、软装改造、门头广告牌.

ORD:盘点比特币生态头部NFT:哪些是「潜力股」?_DINA

伴随着 BRC-20 概念爆火出圈,相关 Token 总市值一路创新高的同时,也带动了比特币 NFT 生态的发展.

ACE:一文梳理 ParaSpace「内斗」大戏始末_kaspa币怎么挖

5月10日下午,多位 KOL 纷纷发文预警 NFT 借贷协议 ParaSpace 团队内部出现矛盾,并建议用户尽快撤资,此事在社区内速发酵.