撰文:Sui Network
本文将为开发人员在 Sui Network 上的最佳实践做快速参考。
Sui 是基于第一原理重新设计和构建而成的 L1 公有链,旨在为创作者和开发者提供能够承载 Web3 中下一个十亿用户的开发平台。Sui 上的应用基于 Move 智能合约语言,并具有水平可扩展性,让开发者能够快速且低成本支持广泛的应用开发。Sui 主网已于 2023 年 5 月 3 日正式上线。
阅读有关包升级的详细信息并编写对升级友好的代码。
包是不可变的,有漏洞的包代码可以永远调用,解决方案是在对象层面添加保护。
如果将包从 P 升级到 P',依赖于 P 的其他包和客户端将继续使用 P,而不是自动更新到 P'。因此,依赖于包和客户端的代码都必须更新以明确地指向 P'。
Sui发布SIP 6改进提案,开发人员将能构建流动性质押协议:6月10日消息,Layer1 公链 Sui Network 发布 SIP 6 改进提案,该 SIP 指定了对StakedSui结构和相关函数的改进,该 SIP 还需通过审核。 Sui 表示,通过 SIP 6 开发人员将能构建流动性质押(协议)。[2023/6/10 21:27:35]
期望被依赖包扩展的包,可以通过提供符合所有版本标准的(不变的)接口,来避免每次升级时破坏它们之前的扩展。以 Wormhole 跨链桥为例,通过 Wormhole 作为桥梁发送消息,要想生成发送消息的扩展包,可以使用任意版本 Wormhole 包中的 prepare_message 指令来生成 MessageTicket,而发送消息的客户端代码必须将该 MessageTicket 传递到最新版本包中的 publish_message。
Sui生态DEX Cetus Launchpad已超募220%:5月8日消息,构建在Sui与Aptos生态的DEX与集中流动性协议Cetus Launchpad已超募220%,本次IDO硬顶为800,000枚SUI,每枚CETUS售价为0.04SUI,向市场供应Token总量的2%,募集的70%SUI将用作初始流动性,30%SUI用作xCETUS质押奖励。[2023/5/8 14:50:17]
public 函数不能删除或更改,但 public(friend) 函数可以。您可以自由地使用 public(friend) 或仅自己可见功能,除非您要将现在的库函数永远公开。
不能删除 struct 类型、不能添加新字段(尽管您可以添加动态字段)或通过升级新功能。添加新类型时请谨慎思考,一旦添加后将永远存在!
使用 vector 支持的集合(如 vector, VecSet, VecMap, PriorityQueue),最多不超过 1000 个数据项。
SUI目前暂报1.7USDT,最高涨幅1900%:金色财经报道,行情显示,SUI上线后价格一度触及2USDT,目前暂报1.7USDT。行情波动较大,请做好风险控制。[2023/5/3 14:40:29]
使用动态字段支持的集合(如 Table、Bag、ObjectBag、ObjectTable、LinkedTable)用于任何允许第三方添加的集合、更大的集合和未知大小的集合。
Sui Move 对象最大为 250KB——任何创建更大对象的尝试都将导致事务中止,请确保您的对象没有不断增长大过 vector 支持的集合。
如果您的函数 f 需要来自调用者的付款,例如使用 SUI ,请使用 fun f(payment: Coin) 函数而不是 fun f(payment: &mut Coin, amount: u64) 函数。这对调用者来说更安全,因为他们可以准确地知道具体支付数额,并且不需要依靠函数 f 来提取正确的数额。
网石游戏将基于Sui开发元宇宙游戏Grand Cross:Metaworld:金色财经报道,曾于2017年创下韩国IPO募资记录的手游公司网石游戏将基于Sui开发元宇宙游戏Grand Cross:Metaworld。该游戏将基于虚幻5引擎开发,用户可以在游戏中设计自己的空间并通过主机摄像头来定制个人在游戏中的化身。Grand Cross:Metaworld将于2023年上半年进入封闭Beta测试,目标是在2023年底前全面发布。(Venture Beat)[2022/12/17 21:49:34]
不需要小幅度优化 gas 消耗。在 Sui 上计算花费成本时,使用四舍五入的方法计算出其最接近的 bucket,因此只有非常剧烈的波动才会导致 gas 的变化。特别是,如果您的交易已经在最低成本范围内,那就不能更便宜了。详情请参照下图。
公链NULS携手Suisse Blockchain共同成立区块链项目孵化平台:8月9日消息,公链NULS宣布与Suisse Blockchain建立合作伙伴关系,将致力于实现区块链初创公司能够发展他们对区块链的愿景。目前,Nuls 和 Suisse Blockchain 正在共同创建去中心化孵化器平台。
据悉,NULS是一个可定制的区块链基础设施,是全球开源的企业级区块链解决方案平台,致力于构建一个多链并行、价值互通的区块链生态网络。Suisse Blockchain 是一个在 Swiss-DLT-LAW 框架上创建的区块链创业孵化器,允许项目在法律合规的法律框架中运行。(Cointelegraph)[2022/8/9 12:11:39]
遵循 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
一、对虚拟货币委托投资合同的范围进行了界定委托合同是委托人和受托人约定,由受托人处理委托人事务的合同.
1900/1/1 0:00:001.Paradigm深度解读Blur新推出的点对点NFT借贷协议Blend2023年五一劳动节当日,Blur联合Paradigm推出点对点NFT借贷协议Blend.
1900/1/1 0:00:00在 Web 3 领域,社区建设是项目成功的关键之一。真正的社区是由一群拥有共同愿景和信念的人组成的。这些人可以一起开发和维护项目,参与决策,提供反馈和建议,并成为项目的有力推广者和代言人.
1900/1/1 0:00:00作者:Terry 不知不觉间,伴随着「非典型熊市」的不断变换,加密世界中始终不曾褪色的「减半」叙事逐步临近——当前区块高度距离比特币剩余减半时间已不足一年,减半时间预计为 2024 年 4 月 28 日.
1900/1/1 0:00:00MEV(Maximal Extractable Value 最大可提取价值)是加密世界最重要的议题之一。它是指验证者通过添加、删除并更改区块中的交易顺序,在超过标准区块奖励和 Gas 费用的区块生产中所能提取的最大价值.
1900/1/1 0:00:00目录 一、项目简介及愿景 二、特色和优势 三、发展历史 四、团队背景 五、融资信息 六、发展成果 七、经济模型 八、基本面分析 九、风险与机会 Loopring协议是一个专为应用程序开发的 zkRollup 协议、一个中继器、一个 L.
1900/1/1 0:00:00