比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads

本體技術視點 | 一文讀懂Substrate的合約機制(一)_ASM

Author:

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

本期我們分享來自本體技術團隊的一篇文章的第一部分,關于Substrate的合約機制分析。

01

概要

Substrate把整個程序邏輯分為Host和Runtime部分,Host功能是固定的,偏向于底層,是采用原生執行的方式,而Runtime部分是動態的,偏上層業務,編譯成Wasm字節碼,這樣可以隨時升級,其執行在Wasm虛擬機中。合約功能作為上層業務,放置在runtime中,由contractpallet模塊負責。通過分析本文主要要搞清楚兩個問題:

1.合約設計的經濟模型:交易執行收費和存儲租金機制;

麥卡錫在第15輪投票中當選眾議院議長:金色財經報道,市場消息:麥卡錫打破共和黨僵局,在第15輪投票中當選眾議院議長。[2023/1/7 10:59:36]

2.合約的執行機制:本身跑在Wasm虛擬機里的runtime里是怎么跑用戶Wasm合約的。

Runtime的contractpallet擴展了Currencytrait的賬戶系統,因此可以和其他基于Currency實現賬戶系統的模塊一起使用。擴展的合約賬戶具有實例化合約和調用其他合約和非合約賬戶的功能。

為了合約代碼的復用,將合約代碼的上傳部署和合約賬戶的實例化分成兩部分,多個合約賬戶可以從同一份上傳的code進行實例化。

美股道瓊斯指數走高,現漲超1%:11月8日消息,美股道瓊斯指數走高,現漲超1%。標普500指數漲0.53%,納指漲0.29%。[2022/11/8 12:30:29]

02

合約的經濟模型

為了避免垃圾交易和惡意合約占用計算和存儲資源,合約的設計考慮了交易執行收費和合約存儲收費邏輯。當合約賬戶的余額不夠支付存儲租金時,合約的存儲會被清理并進入tombstone狀態。

合約的生命周期

alive狀態的合約信息

當合約處于正常工作狀態,其主要有以下信息:

瑞士保險集團CSS基于Tezos Ecoo應用程序推出CSS Coin:10月9日消息,擁有160萬客戶的瑞士保險集團CSS,近期在Tezos Ecoo應用程序上推出CSS Coin。

根據官方規定,擁有CSS補充保險單的客戶可以半價購買CSS Coin,這些代幣可以在CSS合作伙伴網絡的公司兌換使用,例如體操俱樂部、游泳池等。CSS公司試圖通過這一計劃,鼓勵客戶過上更健康的生活,從而降低疾病風險,實現雙贏。

據了解,Ecoo應用程序允許組織在Tezos區塊鏈上創建可根據特定用戶需求定制的條件代幣,這意味著代幣可以提供給特定人群(例如擁有特定保單的人),然后可以在特定的公司中兌換使用。 (xtz.news)[2022/10/9 12:50:44]

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:STOCSSBSTASMHistoriaQCSSLobstex (Old)jasmy幣超話社區

幣安app官方下載最新版
人民日報:長沙經開區探索“5G+工業互聯網”發展新路子_MON

摘要:在長沙經開區,入駐企業以多種方式推進5G、人工智能、區塊鏈等新技術在制造業中的探索應用,先行先試“5G+工業互聯網”.

1900/1/1 0:00:00
這不是一個好信號—比特幣礦工的拋售風險創三年來新高_WILD

導比特幣礦工頭寸指數達到了三年來的最高水平,這表明礦工可能處于拋售情緒。文:JOSEPHYOUNG編譯:Zion??????責編:Rose比特幣礦工似乎再次出售大量BTC.

1900/1/1 0:00:00
宸浩論幣 以太坊短線回調支撐不破反彈 趨勢看漲就是回調做多_加密貨幣

宸浩論幣:以太坊短線回調支撐不破反彈,趨勢看漲就是回調做多!行情的走勢就是這句話,回調做多就對了,畢竟目前的行情走勢還是在區間內來回修復,晚間的行情走勢宸浩就講過.

1900/1/1 0:00:00
現象級平臺——DZswap隆重上線_加密貨幣

DZswap是由海外大型社區RepublicProtocol突破技術壁壘開發的獨立SWAP,它將通過支持AMM流動性挖礦,Rader雙礦池,以及利用COSMOS底層技術突破跨鏈、支持ETH.

1900/1/1 0:00:00
英超:利茲聯VS西漢姆聯 利茲聯近況不穩 鐵錘幫蓄勢待發_HALE

北京時間2020年12月12日04:00,2020-2021賽季英格蘭足球超級聯賽第12輪比賽即將打響!本場比賽由利茲聯主場迎戰西漢姆聯比賽性質:2020-2021賽季英格蘭足球超級聯賽第12輪.

1900/1/1 0:00:00
12-09 以太坊晚間精準布局 多單斬獲13個點位 實力鑄就成功 你還在猶豫什么_BIT

能分析的人很多,能交易好的人很少,天才的另一面是神經病,如果不是天才,交易好的個人都會帶著病態,他會成為正常人的另類,到了這個境界還交易不好,再發展下去可能成為真正的經神病人.

1900/1/1 0:00:00
ads