本期我們分享來自本體技術團隊的一篇文章的第一部分,關于Substrate的合約機制分析。
01
概要
Substrate把整個程序邏輯分為Host和Runtime部分,Host功能是固定的,偏向于底層,是采用原生執行的方式,而Runtime部分是動態的,偏上層業務,編譯成Wasm字節碼,這樣可以隨時升級,其執行在Wasm虛擬機中。合約功能作為上層業務,放置在runtime中,由contractpallet模塊負責。通過分析本文主要要搞清楚兩個問題:
1.合約設計的經濟模型:交易執行收費和存儲租金機制;
Mechanism Capital聯合創始人已償還Radiant Capital貸款并提取全部ARB:金色財經報道,據鏈上分析師 Lookonchain 披露,Mechanism Capital 聯合創始人 Andrew Kang 已償還 Radiant Capital 貸款并提取了全部 ARB,他出售了 21.7 萬枚 ARB 并以 0.97 美元價格購入 21 萬枚 USDC,并將 95.3 萬枚 ARB 存入幣安。歷史數據顯示,Andrew Kang 在今年 1 月 2 日以 1.2 美元價格購入 ARB,如果他按當前價格出售則虧損約 27 萬美元。[2023/6/11 21:29:55]
2.合約的執行機制:本身跑在Wasm虛擬機里的runtime里是怎么跑用戶Wasm合約的。
Arbitrum“將7億枚ARB返還給DAO”的提案未獲通過:4月15日消息,Arbitrum社區提議“將基金會剩余的7億枚ARB返還給DAO”的,反對票占84.01%。據悉,該提案旨在歸還DAO不公正地分配給基金會的7億美元ARB。反對票共計投出1.18億枚ARB,占總投票數量的84.01%。
此外,在過去的24小時內,Arbitrum的治理代幣ARB價格上漲了8%以上。目前的交易價格約為1.68美元。[2023/4/15 14:05:38]
Runtime的contractpallet擴展了Currencytrait的賬戶系統,因此可以和其他基于Currency實現賬戶系統的模塊一起使用。擴展的合約賬戶具有實例化合約和調用其他合約和非合約賬戶的功能。
華爾街分析師:Coinbase第三季度的疲軟可能不是底部:金色財經報道,華爾街分析師對Coinbase的盈利路線提出質疑。其中摩根大通分析師Kenneth Worthington認為,該公司第三季度的疲軟可能不是底部,他說:“隨著交易量的下降,似乎需要更長的時間才能達到EBITDA正數,因為Coinbase繼續投資于構建新產品和服務,部分支持加密生態系統的發展”,摩根大通對該股的評級為中性,目標價為66美元。Canaccord分析師JoeVafi認為,Coinbase的快速增長期已經過去,需要管理成本結構,他寫道,“穩定的成本通道可能是實現具有競爭力但有效增長的穩定目標的正確平衡點。”
此前報道,Coinbase在其三季度財報中表示“正在以保守的偏見進行準備,并假設當前的宏觀經濟逆風將持續存在并可能加劇。”(CoinDesk)[2022/11/5 12:19:12]
為了合約代碼的復用,將合約代碼的上傳部署和合約賬戶的實例化分成兩部分,多個合約賬戶可以從同一份上傳的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聯絡我們。
來源:金色財經
ApexelK-BIO項目發行“與納米技術健康鈣產品結合”的代幣。韓國的Apexel任外部董事)擁有世界上最負盛名的納米技術,并且Apexel的董事長是諾貝爾獎的韓國候選.
1900/1/1 0:00:00Pinterest是疫情期間的贏家Pinterest總回報率很高,它已經從3月份的10美元漲到現在的70美元,半年的時間里給投資者帶來了7倍的回報,可謂非常亮眼.
1900/1/1 0:00:00黃金技術分析: 黃金昨日行情白盤階段雖然經歷較為猛烈的下跌,但是成功打破1848-1852區間,前期價格在此區域形成多次頂底轉換,是市場最為主要的支撐位置,此位置已經被跌破.
1900/1/1 0:00:00分析師|Carol?編輯|Tong?出品|PANews*Audrey亦對本文有所貢獻近期,比特幣一舉沖破19800美元創下歷史新高,根據CoinMarketCap的統計,截至12月6日.
1900/1/1 0:00:002020年12月9日15:00,JubiLabs對話MW聯合發起人HowardFung,在JubiLabs直播間進行“JubiLabs戰略投資MW,對話分布式存儲的未來”的主題AMA.
1900/1/1 0:00:00自8月份以來,MicroStrategy一直在瘋狂購買比特幣,當時它以超過21000比特幣的購買量震驚了加密貨幣市場.
1900/1/1 0:00:00