兴义中安和服务有限公司兴义中安和服务有限公司

Sui Network上的Move开发最佳实践

Sui Network是上的实践基于第一原理重新设计和构建而成的L1公有链,旨在为创作者和开发者提供能够承载Web3中下一个十亿用户的最佳开发平台。为了帮助开发人员更好地利用Sui Network平台,上的实践本文总结了Sui Network上的最佳Move开发最佳实践。首先,上的实践在编写代码时,最佳需要注意包升级对代码的上的实践影响,编写对升级友好的最佳代码,并在对象层面添加保护来避免有漏洞的上的实践包代码被永久调用。同时,最佳在将包从P升级到P’时,上的实践需要明确地更新依赖于包和客户端的最佳代码以指向P’。此外,上的实践如果期望被依赖包扩展的最佳包,可以通过提供符合所有版本标准的上的实践接口来避免每次升级时破坏它们之前的扩展。在添加新类型时,需要谨慎考虑,一旦添加后将永远存在。其次,在使用集合时,需要注意使用vector支持的集合(如vector、VecSet、VecMap、PriorityQueue),最多不超过1000个数据项;使用动态字段支持的集合(如Table、Bag、ObjectBag、ObjectTable、LinkedTable)用于任何允许第三方添加的集合、更大的集合和未知大小的集合。并且,Sui Move对象最大为250KB—任何创建更大对象的尝试都将导致事务中止,请确保您的对象没有不断增长大过vector支持的集合。第三,为了获得统一的式样,需要遵循Move编码惯例。同时,在测试时,建议使用sui::test_scenario模拟多次交易和多位发送者的测试场景,并使用sui::test_utils module通过assert_eq测试获得更好的纠错消息,通过print调试打印,以及通过destroy进行test-only销毁。在计算测试时代码覆盖的信息时,可以使用sui move test –coverage命令,使用sui move coverage source –module命令查看以红色突出显示的未覆盖行。建议将覆盖率设置为100%。第四,在应用程序开发时,为了获得最佳性能和数据一致性,建议在同一个全节点上提交写入和读取请求,使用钱包的signTransactionBlock API,然后通过调用应用程序全节点上的execute_transactionBlock来提交交易。此外,应用程序应该将频繁读取的数据本地缓存,而不是从全节点频繁抓取。在可编程交易块方面,应尽可能使用它们来组合现有的链上功能,而不是发布新的智能合约代码。同时,应用程序应该将对gas预算、gas价格和coin选择权留给钱包,并试运行交易以确保交易不会失败。最后,在签名方面,需要注意不要签署两笔触及同一独享对象的并发交易,违反此规则可能会导致客户端模棱两可,从而同时锁定两个交易中涉及的独享对象,直到当前epoch结束。Sui支持多种签名方案进行交易签名,包括本机多重签名。
赞(5657)
未经允许不得转载:>兴义中安和服务有限公司 » Sui Network上的Move开发最佳实践