99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

以太坊 存儲、內(nèi)存和堆棧

2022-05-09 15:10 更新

以太坊虛擬機具有三個可以存儲數(shù)據(jù)的區(qū)域:存儲、內(nèi)存和堆棧。

每個帳戶都有一個稱為storage的數(shù)據(jù)區(qū)域,它在函數(shù)調(diào)用和事務(wù)之間是持久的。存儲是將 256 位字映射到 256 位字的鍵值存儲。無法從合約中枚舉存儲,讀取成本相對較高,初始化和修改存儲的成本更高。由于這個成本,您應(yīng)該將存儲在持久存儲中的內(nèi)容最小化為合約需要運行的內(nèi)容。在合約之外存儲衍生計算、緩存和聚合等數(shù)據(jù)。合約既不能讀取也不能寫入除了自己的存儲之外的任何存儲。

第二個數(shù)據(jù)區(qū)域稱為內(nèi)存,其中合約為每個消息調(diào)用獲取一個新清除的實例。內(nèi)存是線性的,可以在字節(jié)級別尋址,但讀取的寬度限制為 256 位,而寫入的寬度可以是 8 位或 256 位。當(dāng)訪問(讀取或?qū)懭耄┮郧拔从|及的內(nèi)存字(即字內(nèi)的任何偏移量)時,內(nèi)存會擴展一個字(256 位)。擴張時,必須支付gas費用。內(nèi)存越大,它的成本就越高(它以二次方縮放)。

EVM 不是寄存器機,而是堆棧機,因此所有計算都在稱為堆棧的數(shù)據(jù)區(qū)域上執(zhí)行。它的最大大小為 1024 個元素并包含 256 位的字。通過以下方式對堆棧的訪問僅限于頂端:可以將最頂端的 16 個元素之一復(fù)制到堆棧的頂部,或者將最頂端的元素與它下面的 16 個元素之一交換。所有其他操作從堆棧中獲取最頂部的兩個(或一個或多個,取決于操作)元素并將結(jié)果壓入堆棧。當(dāng)然,可以將堆棧元素移動到存儲或內(nèi)存中,以便更深入地訪問堆棧,但在不首先移除堆棧頂部的情況下,不可能僅訪問堆棧中更深的任意元素。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號