本期我們分享來自本體技術團隊的一篇文章的第一部分,關于Substrate的合約機制分析。
01
概要
Substrate把整個程序邏輯分為Host和Runtime部分,Host功能是固定的,偏向于底層,是采用原生執行的方式,而Runtime部分是動態的,偏上層業務,編譯成Wasm字節碼,這樣可以隨時升級,其執行在Wasm虛擬機中。合約功能作為上層業務,放置在runtime中,由contractpallet模塊負責。通過分析本文主要要搞清楚兩個問題:
1.合約設計的經濟模型:交易執行收費和存儲租金機制;
Applied Digital簽署價值4.6億美元的人工智能托管交易:金色財經報道,比特幣礦業公司Applied Digital (APLD) 在周五表示,該公司簽署了一項在其數據中心托管人工智能 (AI) 云計算負載的協議,該協議在36個月內價值可能高達4.6億美元。宣布兩個月內的第二份人工智能托管協議后,APLD的股價在飆升了17%。
與其他加密貨幣礦商一樣,Applied Digital 一直在尋找替代收入來源,以在加密貨幣市場不冷不熱的情況下增加收入。可能性包括人工智能、云計算和其他預計將繼續增長的高性能計算應用。
今年 5 月,Applied Digital 表示,該協議在未來兩年內價值高達 1.8 億美元。它與硬件制造商 Supermicro 合作提供人工智能和云產品。[2023/6/24 21:56:56]
2.合約的執行機制:本身跑在Wasm虛擬機里的runtime里是怎么跑用戶Wasm合約的。
比特幣全網未確認交易數量為9372筆:金色財經報道,據BTC.com數據顯示,目前比特幣全網未確認交易數量為9372筆,全網算力為245.38 EH/s,24小時交易速率為3.46交易/s,目前全網難度為36.95T,預測下次難度下降6.42%至34.58T,距離調整還剩4天10小時。[2022/12/3 21:19:37]
Runtime的contractpallet擴展了Currencytrait的賬戶系統,因此可以和其他基于Currency實現賬戶系統的模塊一起使用。擴展的合約賬戶具有實例化合約和調用其他合約和非合約賬戶的功能。
7.36萬枚比特幣期權將于7月29日到期交割,最大痛點價格為2.35萬美元:7月21日消息,Coinglass數據顯示,7月29日將有7.36萬枚 BTC 和 67.5 萬枚 ETH 的期權發生交割。其中,BTC 未平倉看空期權 3.35 萬枚 BTC,未平倉看多期權 4 萬枚 BTC,最大痛點價格為 2.35 萬美元;ETH 未平倉看空期權 26.82 萬枚 ETH,未平倉看多期權 40.68 萬枚 ETH,最大痛點價格為 1350 美元。
注:期權最大痛點假設市場上所有持倉是由大戶沽出的, 對大戶最有利的結算價為\"市場內在總值\"最低的價位。廣義來說就是市場會向大多數人比較痛苦的方向發展,這樣才可以使主力的利益最大化。[2022/7/21 2:28:37]
為了合約代碼的復用,將合約代碼的上傳部署和合約賬戶的實例化分成兩部分,多個合約賬戶可以從同一份上傳的code進行實例化。
02
合約的經濟模型
為了避免垃圾交易和惡意合約占用計算和存儲資源,合約的設計考慮了交易執行收費和合約存儲收費邏輯。當合約賬戶的余額不夠支付存儲租金時,合約的存儲會被清理并進入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聯絡我們。
來源:金色財經
俄羅斯主要的加密貨幣倡導者反對政府采取嚴格的方法來監管加密貨幣行業。包括主要加密貨幣交易所Binance和OKEx的高管在內的區塊鏈技術和加密經濟學委員會呼吁該州放寬可能損害加密貨幣行業的法規.
1900/1/1 0:00:00OKToken全球首家對沖聚合合約跟投社區。AboutOKtokenOKToken是全球首家以聚合對沖跟投合約為核心服務的一個跟投社區服務平臺,以鏈接投資一切,為社區所有會員提供資訊行情,學習交.
1900/1/1 0:00:00在使用配資的方式來進行炒股,可以說是比較普及的,很多投資者都是為了擴大自身的盈利,要知道是有一定的危害的.
1900/1/1 0:00:00OKEx晨訊將在每日早間推送最新產業動態及行情,幫助投資人快速了解行業熱點,把握每一個投資機會.
1900/1/1 0:00:0012月10日,Filecoin官方團隊在Slack社區發布公告,恭喜Slingshot參賽者們突破了1PB里程碑,并解鎖了下一個50000FIL的獎池.
1900/1/1 0:00:00Skycoin11月Skywire主網進展更新有關節點獎勵及白名單詳情,請參閱Skywire主網規則條款:(幣乎或新浪微博搜索“Skycoin官方”)______________________.
1900/1/1 0:00:00