買以太坊 買以太坊
Ctrl+D 買以太坊
ads

API:Sui開發者必讀:MOVE語言及技術特性_SUI

Author:

Time:1900/1/1 0:00:00

本文將為開發人員在SuiNetwork上的最佳實踐做快速參考。

Sui是基于第一原理重新設計和構建而成的L1公有鏈,旨在為創作者和開發者提供能夠承載Web3中下一個十億用戶的開發平臺。Sui上的應用基于Move智能合約語言,并具有水平可擴展性,讓開發者能夠快速且低成本支持廣泛的應用開發。Sui主網已于2023年5月3日正式上線。

本文將為開發人員在SuiNetwork上的最佳實踐做快速參考。

Move

常規知識

閱讀有關包升級的詳細信息并編寫對升級友好的代碼。

包是不可變的,有漏洞的包代碼可以永遠調用,解決方案是在對象層面添加保護。

Sui活躍地址數已達到200萬:7月31日消息,Sui發推稱,Sui活躍地址數已達到2,000,000。[2023/7/31 16:08:30]

如果將包從P升級到P',依賴于P的其他包和客戶端將繼續使用P,而不是自動更新到P'。因此,依賴于包和客戶端的代碼都必須更新以明確地指向P'。

期望被依賴包擴展的包,可以通過提供符合所有版本標準的接口,來避免每次升級時破壞它們之前的擴展。以Wormhole跨鏈橋為例,通過Wormhole作為橋梁發送消息,要想生成發送消息的擴展包,可以使用任意版本Wormhole包中的prepare_message指令來生成MessageTicket,而發送消息的客戶端代碼必須將該MessageTicket傳遞到最新版本包中的publish_message。

public函數不能刪除或更改,但public(friend)函數可以。您可以自由地使用public(friend)或僅自己可見功能,除非您要將現在的庫函數永遠公開。

Sui生態社交圖譜協議Releap完成210萬美元融資:7月25日消息,基于Sui生態構建的去中心化社交圖譜 Releap Protocol 宣布完成 210 萬美元融資,Sui Foundation、GBV Capital、Big Brain Holdings、Shima Capital、Arweave Foundation、Assembly Partners、DWeb3 Capital、Impossible Finance、Solar Eco Fund 和 MoveBit 等 30 多家風險投資公司和天使投資者參投。Releap Protocol 目前已經在測試階段啟動了一個以社交網絡為中心的生態系統。[2023/7/25 15:57:44]

不能刪除struct類型、不能添加新字段或通過升級新功能。添加新類型時請謹慎思考,一旦添加后將永遠存在!

Sui生態DEX Turbos Finance將于5月12日開啟IDO:5月9日消息,Jump Crypto 投資的 Sui 生態 DEX Turbos Finance 宣布將開啟 IDO,IDO 將從 UTC 時間 5 月 12 日 10:00 起持續兩天,IDO 將在 Turbos Finance 的原生加速器 TurboStar 上舉行。

此外,團隊還公布了項目的 Token 經濟學,TURBOS 的最大供應量設定為 10,000,000,000 枚,分配計劃優先考慮平臺的可持續性和生存能力。團隊持有總分配的 18%,投資者持有 15%。包括 IDO、IE0 和合作伙伴在內的資金庫占總分配的 12%,而 5% 分配給營銷和運營。50% 用于挖礦和獎勵。[2023/5/9 14:52:17]

使用vector支持的集合,最多不超過1000個數據項。

Sui生態域名服務SuiNS上線Sui測試網,目前已開放注冊:11月3日消息,Sui 生態域名服務 Sui Name Service(SuiNS)宣布上線 Sui 測試網,目前已開放注冊。SuiNS 網站和服務已集成 Sui 生態錢包 Sui Reference Wallet、Suiet Wallet、Ethos Wallet,并為其支持的頂級域名添加了自動搜索功能。[2022/11/3 12:13:42]

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

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支持多種簽名方案進行交易簽名,包括包括本機多重簽名。

Tags:APISUISSDAPI價格API幣SUI幣是什么幣SSD幣SSD價格

以太坊價格
NFT:虛擬社會、區塊鏈和元宇宙_元宇宙

1986年,早期的互聯網供應商QuantumLink和娛樂公司LucasfilmGames發布了第一款MMO游戲名為:《Habitat》基于虛擬角色的社交世界.

1900/1/1 0:00:00
Staking:解讀Chainlink Staking v0.2升級內容_Staking幣是什么幣

ChainlinkStakingv0.2將于今年第四季度發布。要點如下:池規模擴展至4500萬LINK v0.1質押者 PriorityMigration 解除質押的解綁機制 動態可變的獎勵率.

1900/1/1 0:00:00
VAS:二十個要點:簡單看懂香港最新加密貨幣咨詢文件_VAS幣ASP幣

吳文謙,現為TKX資本的合規合伙人,香港特別行政區高等法院執業律師。他曾領導火幣和OKX加密交易所法律和合規職能,并為累計籌集超過2億美元的加密項目和加密基金提供咨詢.

1900/1/1 0:00:00
數字藝術:什么是生成藝術NFT 它會是NFT市場下一個投資風向嗎?_數字藝術字體在線生成器

一種新的藝術形式正在興起——生成藝術NFT。當然,生成藝術并非全新的事物,它們在20世紀60年代就已經存在了。但在去年,我們看到市場對這種藝術形式的需求在不斷增長.

1900/1/1 0:00:00
比特幣:為什么你見到的絕大多數通證經濟項目都失敗了?_區塊鏈

通證是區塊鏈的靈魂,沒有通證的區塊鏈是不完整的鏈,圍繞通證產生了通證經濟這一概念,被譽為潛力無限,是新時代生產關系的變革者.

1900/1/1 0:00:00
FIL:Filecoin虛擬機FVM主網上線 會帶來哪些用例_DAO

2023年3月15日Filecoin按照預期成功發布Filecoin虛擬機FVM。Filecoin官方博客發文介紹了FVM及其可能的用例.

1900/1/1 0:00:00
ads