以太坊價格 以太坊價格
Ctrl+D 以太坊價格
ads
首頁 > 區塊鏈 > Info

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

Author:

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

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

01

概要

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

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

Patrick McHenry:Gensler反對現貨比特幣ETF是想扼殺加密貨幣在美國的發展:7月1日消息,美國眾議院金融服務委員會主席Patrick McHenry針對“美國證券交易委員會(SEC)稱貝萊德、富達投資等資管公司提交的現貨比特幣ETF的申請文件并不充分”發表意見稱,如果這些報告是準確的,SEC主席Gary Gensler需要進行解釋,ETF將為日常投資者提供受SEC監管的產品。Gary Gensler反對的唯一原因是他想徹底扼殺加密貨幣在美國的發展。[2023/7/1 22:11:34]

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

NEAR基金會推出Web3加速器NEAR Horizon:金色財經報道,NEAR基金會宣布推出Web3加速器NEAR Horizon,通過與Dragonfly、Pantera、FabricVentures、Hashed和其他公司的合作,NEAR Horizon將幫助創始團隊能夠在廣泛支持下擴展項目,NEAR基金會表示接下來的幾個月內將啟動項目和創始人招募。[2023/4/27 14:29:51]

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

華爾街日報:2019年至今SBF一直在接受多動癥和抑郁癥的治療:2月6日消息,FTX曾聘請心理醫生George Lerner博士作為教練,每周在巴哈馬為FTX工作32小時,其中300名員工中有約100人接受過心理輔導,其中包括半定期的20到40人,另外約有20名FTX員工是他私人診所的病人,George Lerner表示自己在FTX的主要目標是創造一個更可持續的工作環境。(華爾街日報)[2023/2/6 11:50:00]

為了合約代碼的復用,將合約代碼的上傳部署和合約賬戶的實例化分成兩部分,多個合約賬戶可以從同一份上傳的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聯絡我們。

來源:金色財經

Tags:STOBSTASMWASisstokenBSTN價格ASM價格WASABI

區塊鏈
AXA:踏上IPO之路的這家企業突然成了“焦點”因為高端·數字化·全球化

雖然慕思不是中國企業界最具實力、最具技術領先、最具規模的企業,但它在高端品牌的塑造方面堪稱標桿。 作者|段傳敏 雖然忙是常態,但2020年年底的慕思總裁姚吉慶的確很忙.

1900/1/1 0:00:00
BASE:逸戈談幣:12.10午間行情分析和操作策略

  逸戈談幣:12.10午間行情分析和操作策略  機會都是在反對聲中萌芽,議論聲中爆發,叫好聲中幻滅.

1900/1/1 0:00:00
加密貨幣:為何年輕人更喜歡加密貨幣?

數字貨幣作為一種新興事物,符合年輕人愛探索的特性,加上近兩年來,消費主義盛行,人們的注意力很容易被新的事物吸引,而加密貨幣自帶金融屬性,投資加密貨幣也算是理財手段的一種.

1900/1/1 0:00:00
BIRDS:金升指導: 比特幣利空加持 短期局勢空頭主導

比特幣今日整體走勢波幅不大! 早上一度上沖18630附近點位后! 行情持續震蕩!  直至夜間行情再度下破18000關口位置! 早間策略走出目標點位!   當前外部局勢上.

1900/1/1 0:00:00
LEC:2020年區塊鏈行業總結:Filecoin公鏈

2020年即將結束,這一年,區塊鏈行業讓你印象最深的是什么?今天我們來聊一聊,2020年最火熱的區塊鏈項目Filecoin.

1900/1/1 0:00:00
DEF:新風口DeFi指數基金一覽

這些基金產品可能是我們采用DeFi的驅動因素之一ーー我們跨越鴻溝的方式。貝萊德(Blackrock)目前管理的資產規模超過7萬億,市值達到1000億美元,其中很大一部分增長發生在過去10年.

1900/1/1 0:00:00
ads