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

比特币:Sui开发者必读:MOVE语言及技术特性_NALS

作者:

时间:

撰文:SuiNetwork

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

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

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

Move

常规知识

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

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

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

OKX将于5月3日20:10上线SUI:5月2日消息,OKX宣布将于5月3日20:10上线SUI,其中开盘采用集合竞价,5月3日19:50开启竞价,并将于5月3日20:15开放SUI提现。[2023/5/2 14:38:15]

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

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

OKX Jumpstart将于2023年4月23日开启SUI销售:据OKX官方消息,OKX Jumpstart将于2023年4月23日 (UTC+8) 开启SUI新币销售,活动将采用最新的“认购+抽签”的方式销售SUI币,销售价格为0.1美元,支付币种为OKB,这个流程包括持仓统计、新币认购、抽签与发放,通过OKX APP,并完成KYC2验证等条件即可参与活动。同时针对Sui生态的贡献者,额外开启白名单销售。白名单销售只面向Sui生态的贡献者开放,用户需要完成Sui Foundation的白名单验证。[2023/4/15 14:05:32]

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

使用vector支持的集合,最多不超过1000个数据项。

公链Sui Network即将开启Wave 2测试网,将推出专注于代币经济学和质押的新游戏:1月20日消息,据官方推特,公链Sui Network宣布即将开启Wave 2测试网,该测试网将专注于测试epoch管理、代币经济学和权益质押,还将推出一款专注于代币经济学和质押的新游戏,任何人都可以参与其中。

此外,Sui Network表示:“Sui Testnet Wave 2将显示出SUI与其他公链不同的地方,包括简单方便的权益质押(可以直接从钱包中完成),任何人都可以无缝地参与获得SUI网络。”Sui将在下周分享更多Wave 2测试网细节。

此前金色财经报道,Sui Network计划于2023年初推出Wave 2测试网,专注于代币经济学等。[2023/1/20 11:22:28]

使用动态字段支持的集合用于任何允许第三方添加的集合、更大的集合和未知大小的集合。

Bitcoin Suisse在瑞士苏黎世火车总站投放比特币相关广告:金色财经报道,瑞士加密资产经纪商Bitcoin Suisse最近在瑞士苏黎世火车总站投放了与比特币相关的圣诞节广告。广告图中有一颗西兰花、一双鞋以及一枚比特币,广告文案为“Neujahrsvors?tze”,意思是“新年的决心”,该广告在很大程度上对非母语人士来说是难以理解的,对此,Bitcoin Suisse营销和传播主管Marc Baumann解释称:“你可以健康饮食,可以锻炼身体,但是对于投资于你的未来方面,比特币无可匹敌。”[2020/12/3 22:56:39]

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

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

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

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

可组合性

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

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

测试

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

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

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

应用程序

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

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

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

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

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

签名

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

任何发起交易的suiclient命令都可以接受--serialize-output标志以输出要签名的base64交易。

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

标签:比特币ORDIDINNALS比特币价格发展ordi币总量CADINU币nals币brc20

TRX热门资讯
CYBER:CyberConnect推出代幣CYBER 代幣分配及CoinList公售細節一覽_CyberSwap

2023年4月28日,CyberConnect协议宣布其原生实用和治理代币CYBER将于2023年5月18日通过CoinList向公众出售.

以太坊:1KX:加密原生NFT IP将开启IP 2.0新时代_比特币

作者:Mikey0x,1kx研究员;翻译:金色财经xiaozou那些世界上最知名的消费知识产权品牌具有难以置信的价值.

ORDI:灰度报告:Ordinals能否释放比特币新潜力?_Ordinals

比特币自诞生以来就被誉为一种革命性的技术,有可能改变我们使用新金融层进行交易的方式。最近,出现了一项新的创新,可以为比特币网络开启新的可能性,使其也可以作为文化层发挥作用.

TOKEN:晚间必读5篇 | a16z近期投资项目一览_ALAB币

1.a16z近期投资项目一览跟随smartmoney投资很重要。加密领域的一大smartmoney就是a16z.

NFT:我们从《Web3新经济和代币化白皮书》到底看到了什么?_区块链游戏币拍卖

HongKongWeb3Festival在上周举办的全球币圈盛会——香港Web3嘉年华上,其中的“代币化未来”主题论坛中,万向区块链首席经济学家邹传伟发表了Web3新经济和代币化主旨演讲.

区块链:拆解以太坊升级之路 寻找下一个热门叙事_METAWEB3PA

今天来聊一聊以太坊升级的事情,但我们想换个角度,不谈上海升级的影响、不谈Layer2的创新、不谈Rollup的技术革命.