1. storage
合約中可以被所有函式訪問的全域變數,storage的存盤是永久存盤,意味著以太坊會把它存到公鏈環境里的每一個節點上,
會永久保存合約狀態變數,燃料消耗最大,
2. Memory
在合約中的記憶體變數,生命周期為合約開始到執行結束,執行結束后被銷毀,
僅保存臨時變數,函式呼叫之后釋放,消耗燃料很少,
3. Calldata
所有函式呼叫的資料,包括函式引數的保存位置,是不可修改的記憶體位置,
它包含訊息體的資料,其計算需要增加n * 68(n是calldata中的非零位元組數)的gas費用
4. Stack
EVM為了匯入變數和以太坊的機器/匯編指令代碼,維護了一個堆疊,這個堆疊是EVM的記憶體作業空間,他有1024級深,也就是如果存盤超過了1024級的資料,就會觸發一個例外,
堆疊僅保存很小的區域變數,免費使用,數量限制在16個變數,
參考:以太坊solidity智能合約開發
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/195017.html
標籤:其他
上一篇:程式員們怎么用區塊鏈賺錢?
下一篇:vue帶引數跳轉其他頁面
