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

TRANS:Sui开发者必读:MOVE语言及技术特性_SUI

作者:

时间:

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

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

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

Move

常规知识

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

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

MicroStrategy首席执行官:比特币是迄今为止最有效的能源利用方式:金色财经报道,据官方推特消息,MicroStrategy首席执行官Michael Saylor今日在迈阿密举行的比特币2021大会上表示:“我对我所有的传统投资策略都失去了信心。当我发现比特币时,我想,这是大型科技货币网络上的数字黄金,它会上涨100倍,我应该尽可能多地购买。那些无法杀死比特币的东西会使它变得更强大。我认为比特币是人类迄今为止提出的最有效的能源利用方式。比特币是整个经济世界中最安全、最可靠、最确定的东西。比特币正在将风险资产货币化,比特币修复了一切。比特币让整个金融体系回归理性,将自由和财产权还给了人类。如果您的公司正在为世界做一些有意义的事情,请用比特币做点什么。比特币是80亿人的希望。”[2021/6/5 23:13:24]

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

声音 | Libra协会成员Bison Trails CEO:未来一年公司将专注于向更广阔的市场开放平台:Libra协会成员、区块链基础设施初创公司Bison Trails创始人兼首席执行官Joe Lallouz近期接受采访时表示,参与Libra的决定源于双方价值观的统一:“Libra被默认设计为透明的,它代表了朝着金融普惠世界的重大飞跃。这与我们使去中心化的未来民主化的愿景非常吻合。”

Lallouz称,虽然我们无法预测哪些新协议和计划将在5年内成为主流,但是可以肯定地说,我们将忠实于协议不可知(protocol-agnostic)方法。”未来的一年,公司将专注于“从有限的Beta版开始,向更广阔的市场开放平台”,以及“与Libra协会的创始成员积极合作,推动主网发布。” Bison Trails还将致力于建立内部团队并建立新的合作伙伴关系。

该公司的“新网络路线图”包括NuCypher、Near、Libra、Telegram、Edgeware、Skale、Polkadot、Solana、Mobilecoin、Coda、Enigma、Ava、Ethereum 2.0、Celo、Keep、Filecoin、Dfinity、Tupelo等。(Finance Magnates)[2019/12/9]

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

动态 | 币安向TravelbyBit投资超250万美元:据Blokt消息,币安目前已经向澳大利亚创业公司TravelbyBit投资250万美元,TravelbyBit将推出基于区块链技术的POS支付系统,并将其安装在世界主要机场。[2018/10/3]

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

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

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

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

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

区块链联盟R3与TradelX和一批知名银行合作 推出开源贸易财务平台“马可波罗”:区块链联盟R3是全球知名的区块链行业组织,旗下拥有100多家金融机构成员。近日,他们宣布贸易财务技术提供商TradelX和一批知名银行已经开始试运行其最新的开源平台“马可波罗(Marco Polo)”。[2018/2/23]

如果您的函数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支持多种签名方案进行交易签名,包括包括本机多重签名。

标签:SUITRATRANSMOVSUIP币STRAY价格Transcodiummovez币值得投资吗

TRX热门资讯
ARW:万字详解以太坊合并后可能面临的 PoS 攻击及防御措施_区块链

译者注: 对于即将到来的以太坊合并,根据大量研究文献总结出了相关的共识攻击方式,并提到了一些解决方案.

NKS:预言机:链接加密世界与现实世界的桥梁_SEA

区块链是独立于现实世界运行的系统。加密世界的数据在链上产生,也在链上继续被使用。链外世界的数据无法直接传递到区块链上.

OIN:Coinbase Ventures团队亲述CV简史及投资版图_COI

本文是CoinbaseVentures团队亲自讲述的CoinbaseVentures简史以及CoinbaseVentures的加密生态系统投资版图.

COD:零知识机器学习 (ZKML):ZK与AI将会碰撞出怎样的火花?_ISC

Zero-Knowledge机器学习是最近正在密码学界引起轰动的一个研究和开发领域。但它是什么,有什么用处呢?首先,让我们把这个术语分解成它的两个组成部分,并解释一下它们是什么.

SBF:金融时报披露Alameda近500项投资组合(附名单)_IRIS

除了经营一家不交易加密货币的加密货币交易所和拥有一家不进行对冲的对冲基金外,SamBankman-Fried还拥有一家不用自有资本投资的风险投资基金.

FNF:碎片化NFT(F-NFT)的应用空间及现状_FNF币

F-NFT是一种NFT,它使人们能够拥有NFT的一部分,以减轻经济负担。这种碎片化的过程允许通过与原始NFT绑定的一组可替代代币来共享NFT的所有权.