本期我們分享來自本體技術團隊的一篇文章的第一部分,關于Substrate的合約機制分析。
01
概要
Substrate把整個程序邏輯分為Host和Runtime部分,Host功能是固定的,偏向于底層,是采用原生執行的方式,而Runtime部分是動態的,偏上層業務,編譯成Wasm字節碼,這樣可以隨時升級,其執行在Wasm虛擬機中。合約功能作為上層業務,放置在runtime中,由contractpallet模塊負責。通過分析本文主要要搞清楚兩個問題:
1.合約設計的經濟模型:交易執行收費和存儲租金機制;
Bald部署者總共移除了11,137枚ETH流動性:金色財經報道,PeckShieldAlert發推稱,Bald部署者(0xccFa05開頭地址)總共移除了11,137枚ETH流動性(約2000萬美元)。部署者已將9,385枚ETH橋接到Base,現在地址(0xccFa05)擁有12,433枚ETH(約2200萬美元)。該地址使用的CEX是FTX、Binance、Coinbase。[2023/8/1 16:10:53]
2.合約的執行機制:本身跑在Wasm虛擬機里的runtime里是怎么跑用戶Wasm合約的。
Runtime的contractpallet擴展了Currencytrait的賬戶系統,因此可以和其他基于Currency實現賬戶系統的模塊一起使用。擴展的合約賬戶具有實例化合約和調用其他合約和非合約賬戶的功能。
Avely Finance在Zilliqa主網上推出流動性質押產品:5月17日消息,Avely Finance 在 Zilliqa 主網上推出流動性質押產品和 stZIL 代幣測試版本。Avely Finance 推出的流動性質押產品允許此前通過其他方式質押 ZIL 的用戶直接轉移至 Avely Finance,并將自動質押獲得的質押獎勵。[2023/5/17 15:09:08]
為了合約代碼的復用,將合約代碼的上傳部署和合約賬戶的實例化分成兩部分,多個合約賬戶可以從同一份上傳的code進行實例化。
02
合約的經濟模型
數據:1萬枚比特幣從已關閉的交易所Wex的地址中轉出:金色財經報道,據鏈上數據監測,有1萬枚比特幣(價值超1.65億美元)從加密貨幣交易所Wex的相關錢包轉出,這是這些比特幣自2017年以來首次移動,且已經在幾筆交易中被轉移到新地址。
此前報道,加密貨幣交易所Wex的前首席執行官DmitryVasiliev在進入克羅地亞首都薩格勒布的弗朗喬·圖季曼機場時被捕。目前,WEX交易所現已關閉,其前身是BTC-e,由Alexander Vinnik經營。[2022/11/26 20:48:22]
為了避免垃圾交易和惡意合約占用計算和存儲資源,合約的設計考慮了交易執行收費和合約存儲收費邏輯。當合約賬戶的余額不夠支付存儲租金時,合約的存儲會被清理并進入tombstone狀態。
合約的生命周期
alive狀態的合約信息
當合約處于正常工作狀態,其主要有以下信息:
tombstone狀態的合約信息
當合約進入tombstone狀態后,合約的所有存儲都會被清理,合約信息里只有一個對storage_root+code_hash進行hash的值。
合約的復活
合約進入tombstone狀態后,技術上是可以進行恢復的。首先需要準備一本新臨時合約T,往T合約的存儲中插入原合約中的key-value對,使storageroot和原合約完全一致,然后調用restore_to合約接口,這個接口會檢查當前合約的storageroot是否和要恢復的tombstone一致,如果滿足要求那么就使原合約復活,并且將當前的臨時合約的資產轉移到復活合約,并銷毀當前臨時合約。
執行合約的Gas收費
交易的sender必須在每個call中指定gaslimit,未使用完的gas會在調用結束后返還。當到達了指定的gaslimit后,那么所有的call和相關的狀態變更只會在當前調用的合約層進行回滾,比如,合約A調用B,并且B執行時gas不夠,那么所有B的調用將被回滾。如果A能對錯誤進行正確處理,那么A的其他調用和狀態變更依然可以進行持久存儲。初看起來這樣做是一個極大的限制,但其實是底層增加了靈活性,因為并不是所有的調用都是災難性的,因此給了調用方可以進行合理的判斷和處理的機會;如果想要其他鏈那種出錯就完全回滾的方式,那么可以在調用B出錯后A也直接報錯回滾A的變更。
對于Wasm的每一個指令和host函數都設置了對應的InstructionWeight。
runtime會準備一個gas(amount:u32)的計費函數,在Wasm合約上傳后,立刻會對Wasm中的每一個函數進行計費函數的插入生成新的code。后續合約的執行都以新的code為準。
下一期我們將繼續圍繞Substrate的合約存儲的收租機制、Wasm合約限制、合約對外部交易的接口等方面展開。
如有任何疑問,可通過research@ont.io聯絡我們。
來源:金色財經
Tags:STOBSTWASASMmagicstoneLobstex (Old)WASABI價格jasmy幣為什么一直在跌
區塊鏈作為未來數字經濟的信息基礎設施,已經成為國家戰略。2019年10月24日,中共中央局就區塊鏈技術發展現狀和趨勢進行第十八次集體學習.
1900/1/1 0:00:00作者?|Azuma 12月10日晚間,Yearn.finance及Grin開發者DanielLehnberg于Github發布了Yearn.finance第三季度的非正式財務報告.
1900/1/1 0:00:0012月11日消息,中國央行今日開展100億元逆回購操作,因今日100億元逆回購到期,當日實現零投放零回籠.
1900/1/1 0:00:00原標題:去中心化保險起到了什么作用?近期在一波漲勢的推動下,去中心化保險的相關代幣開始發力,雖然盤面在下跌,但讓人們開始關注到保險這個賽道.
1900/1/1 0:00:0012月9日,榮耀領袖峰會暨公鏈技術交流會成都站圓滿結束,會議現場,茶鏈與HDC榮耀鏈達成戰略合作。據悉,茶鏈是冰島社區創始人周總基于HDC公鏈打造的第一個落地應用生態,發行總量為6666萬枚.
1900/1/1 0:00:00用寧靜的心擁抱世界------保持身心安定,能把自己的情況看得很清楚,對于能做、不能做;該做、不該做的事,也都非常清楚,這就是智慧。心不開朗就是苦,心境豁達就能轉苦為樂。心有多大,世界就有多大.
1900/1/1 0:00:00