本期我們分享來自本體技術團隊的一篇文章的第一部分,關于Substrate的合約機制分析。
01
概要
Substrate把整個程序邏輯分為Host和Runtime部分,Host功能是固定的,偏向于底層,是采用原生執行的方式,而Runtime部分是動態的,偏上層業務,編譯成Wasm字節碼,這樣可以隨時升級,其執行在Wasm虛擬機中。合約功能作為上層業務,放置在runtime中,由contractpallet模塊負責。通過分析本文主要要搞清楚兩個問題:
1.合約設計的經濟模型:交易執行收費和存儲租金機制;
加密交易公司Auros已終止臨時清算程序,并獲得1700萬美元投資:金色財經報道,加密交易公司Auros Global在進行了重大債務重組后,上周終止法院監督的臨時清算,并獲得了由傳統高頻交易公司Vivienne Court Trading和上市比特幣礦業公司 Bit Digital (BTBT) 牽頭的1700萬美元新投資。(Coindesk)[2023/3/21 13:16:10]
2.合約的執行機制:本身跑在Wasm虛擬機里的runtime里是怎么跑用戶Wasm合約的。
Runtime的contractpallet擴展了Currencytrait的賬戶系統,因此可以和其他基于Currency實現賬戶系統的模塊一起使用。擴展的合約賬戶具有實例化合約和調用其他合約和非合約賬戶的功能。
Robinhood已向部分用戶開放其Web3錢包測試:9月27日消息,股票和加密貨幣交易平臺 Robinhood 正在向部分用戶開放其 Web3 錢包測試。該錢包基于 Polygon 網絡,借助 0x 聚合器,允許用戶通過錢包進行免費資產交易。[2022/9/27 22:34:26]
為了合約代碼的復用,將合約代碼的上傳部署和合約賬戶的實例化分成兩部分,多個合約賬戶可以從同一份上傳的code進行實例化。
02
合約的經濟模型
為了避免垃圾交易和惡意合約占用計算和存儲資源,合約的設計考慮了交易執行收費和合約存儲收費邏輯。當合約賬戶的余額不夠支付存儲租金時,合約的存儲會被清理并進入tombstone狀態。
彭博高級分析師:比特幣可能成為全球抵押品:金色財經報道,Bloomberg Intelligence高級商品策略分析師邁克·麥格隆(Mike McGlone )稱:“比特幣和加密貨幣是 2021 年熱潮的關鍵部分,因此也是 2022 年熱潮的一部分,但我看到比特幣和以太坊走在前面。在這樣的世界中,比特幣正在成為全球數字抵押品,而以太坊是數字革命的主要驅動力,這可以從交易最廣泛的加密貨幣——穩定幣中得到證明。”(beincrypto)[2022/8/8 12:08:51]
合約的生命周期
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聯絡我們。
來源:金色財經
大家好,我是認知變現,我喜歡區塊鏈精神:去中心化、時間戳、不可篡改。以下文章僅為個人觀點,僅針對現貨操作,據此投資,后果自負.
1900/1/1 0:00:00優點 以太坊允許用戶在區塊鏈上使用完整的編程語言,在網絡上執行更復雜的智能合約,而不需要依靠任何第三方服務以太坊可為其他產品和服務平臺提供強大的生態系統以太坊擁有一個強大的發展路線圖.
1900/1/1 0:00:00大家好,我是K神,只喜歡研究K線,朋友都叫我“K線狂魔”,你們可以叫我老K。比特幣跌破18500美金,意味著短期震蕩的平臺選擇了下破,這會給市場帶來較大回調壓力,不過這個回調會到哪兒,真那么可怕.
1900/1/1 0:00:00機會都來回讓你招手,你若失之交臂,實在惋惜!現貨白銀開盤走高近0.4美元,現報23.97美元/盎司。今日凌晨大餅走勢和老王凌晨策略預測一樣,再次擊穿18000后在反彈回18000上方.
1900/1/1 0:00:0012.10比特幣以太坊雙止盈通知行情完美到達第一掛單點位附近大餅18450短空200點有余以太575短空??10-12個點有余幣安慈善和Mercy Corps Ventures達成合作.
1900/1/1 0:00:00隨著比特幣令人印象深刻的運行繼續,看到加密貨幣FOMO也到達機構投資者也就不足為奇了。比特幣在本月初超過其歷史最高值19,892美元,證明了加密行業目前正處于看漲情緒浪潮中,全世界的因果關系和機.
1900/1/1 0:00:00