以太坊價格 以太坊價格
Ctrl+D 以太坊價格
ads
首頁 > PEPE > Info

ORA:詳解以太坊虛擬機(EVM)的數據存儲機制

Author:

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

來源:區塊鏈研究實驗室

以太坊存儲機制

在EVM中允許執行智能合約代碼。合約狀態或內存存儲在智能合約地址中。可以將這種存儲視為位于智能合約地址的無限長度的數據結構數組。存儲機制確保存儲位置沒有沖突,并遵循一組規則。使用這些規則,我們可以解碼任何合約的狀態。解碼存儲在映射中的數據需要知道所使用的密鑰。合約數據的解碼使用RPC調用eth_getStorageAt進行。

插槽位置

變量在智能合約的存儲陣列中的位置由代碼中出現的順序以及變量的大小決定。此位置稱為插槽。如果一個變量小于256位,則EVM會嘗試在空間中容納一個以上的變量,因此一個以上的變量可能會占用存儲陣列中單個插槽的空間。映射或數組將始終占據一個插槽。數組和映射元素的位置遵循一組特殊的哈希規則,本文將對此進行介紹,這些規則在以太坊文檔中也有描述。

美SEC在FTX破產后半年至少采取了17次與加密相關的執法行動,環比增長183%:6月8日消息,在加密貨幣交易所 FTX 破產后的六個月內,證券監管機構采取的與加密貨幣相關的執法行動顯著增加。在 FTX 破產前的六個月里,美國證券交易委員會(SEC)采取了大約 6 次執法行動。在 FTX 于 2022 年 11 月 11 日破產后的六個月內,SEC 與加密貨幣相關的執法行動至少 17 次,比上一時期增加 183%,該分析尚未考慮 SEC 對幣安和 Coinbase 提起的兩起訴訟。[2023/6/8 21:24:36]

下表提供了EVM遵循的分配規則的摘要。我們將看兩個智能合約的示例,并使用表1中提供的規則對其進行解碼

Mini Koyé NFT在Opensea地板價最高漲至0.1 ETH,24小時漲幅超200%:11月9日消息,Mini Koyé NFT在Opensea地板價最高漲至0.1 ETH,24小時漲幅為212%,交易量達到42ETH,在opensea趨勢榜最高排行第二。行情波動較大,請做好風險控制。[2022/11/9 12:37:45]

256位變量的簡單示例

IOTA基金會正與walt.id合作開發隱私保護登錄系統“Login With IOTA”:7月27日消息,IOTA 基金會正在與 walt.id 合作開發一種基于自我主權身份(SSI)的隱私保護登錄系統“Login With IOTA”,在此系統中用戶仍完全控制其數據,并能夠自行決定安全地共享信息,例如電子郵件地址以及通常需要重復提供的任何其他信息(地址、電話號碼、出生日期等),此外該系統將與 OpenID Connect(OIDC)等現有標準建立互操作性。

目前 walt.id 正和 IOTA 基金會合作開發,計劃在未來幾個月內實施該項目,并于 2022 年秋季正式推出第一個版本。[2022/7/27 2:41:18]

首先讓我們看一個簡單示例,所有變量都是256bit。這樣做使我們無需考慮可變變量即可查看分配。

IntoTheBlock:著眼長遠的BTC持有者正在增持:金色財經消息,IntoTheBlock發推稱,圖表顯示,BTC持有者正在雙倍下注——著眼長遠的投資者在熊市時增持。

- 在之前的熊市中,持有一年或更長時間(綠色到藍色)的地址所持有BTC的比例有所擴大;

- 目前為止,投資者正在重復同樣的模式。[2022/6/4 4:02:08]

請注意,當對數字應用keccack哈希時,數字必須是0填充的64位值。

所有解碼都是使用以太坊RPC調用eth_getStorageAt執行的,在本文中將其表示為GetStorageAt。可以使用任何語言打包程序來調用此RPCapi。

下圖顯示了如何對智能合約的地址和傳遞給它的位置值進行GetStorageAt調用。圖1左側的數字是變量的位置。對于基類型,可以將此位置傳遞到GetStorageAt以獲取變量值。對于數組,位置將返回數組的長度。

通過將Keccack哈希傳遞給索引為0的GetStorageAt來解碼數組索引。數組的每個后續索引位于與位置求和的哈希值處。可以認為這是訪問數組的指針并增加其位置以查找每個元素,類似于C或C++。

傳遞給每個鍵的GetStoragetAt的位置值是鍵的keccack哈希值和映射聲明的位置。對于多維映射,將密鑰和變量位置遞歸調用Keccack哈希值。參見圖1中的示例進行說明。

接下來,我們來看一個發生變量打包的示例。打包要記住的是:

1.它僅按出現順序適用于基本變量類型。EVM將按照代碼中列出的順序在256位空間中打包盡可能多的變量。

2.每個映射和數組變量將占用一個新的插槽。

3.數組變量映射將遵循打包規則。也就是說,如果一個元素小于256位,則陣列的多個索引將占用存儲陣列中的單個插槽。

圖2顯示并提供了發生的打包的說明。當類型的長度小于256位時,EVM嘗試將其他變量打包到插槽中。EVM按列出的順序選擇要打包的變量。映射和數組始終出現在新位置。但是打包規則仍適用于解碼數組索引,打包規則仍適用于存儲在映射中的結構。

有關這種情況下如何存儲變量的說明,請參見圖2。

繼承

關于繼承的說明。當智能合約繼承其他智能合約時,基本智能合約的存儲變量將按繼承順序占據存儲陣列的第一個插槽。子類的存儲變量將隨后出現。

結論

如前所述,我們在本文介紹的規則來解碼以太坊智能合約的存儲機制。在接下來的,第2部分將描述的智能合約規則編寫的工具。

Tags:GETSTOORATORABITGET怎么讀GlowstonStorage area network anywherecloudstorage

PEPE
穩定幣:百億級市場規模,區塊鏈在新基建中的三大新機遇

4月20日,國家發改委創新和高技術發展司司長伍浩在國家發改委召開例行在線新聞發布會上,首次提出新型基礎設施建設覆蓋信息基礎設施、融合基礎設施和創新基礎設施三方面.

1900/1/1 0:00:00
MAR:億邦國際的“執念”:億邦,會是下一個“嘉楠”么?

編者注:原標題為《億邦國際的“執念”》。億邦國際第三次向資本市場發起沖擊!昨日傳出消息,4月24日億邦國際已經向美國證券交易委員會提交招股書,希望通過IPO最多籌集1億美元.

1900/1/1 0:00:00
加密貨幣:油價跌穿屏幕,比特幣也被帶崩了?

原以為歸零就是最慘結局,誰知道還真能跌穿屏幕。在周二凌晨刷新三觀的油價暴跌中,WTI5月原油期貨先是跌破史無前例的1美元每桶,就在大家來不及感嘆歸零的時候,油價進一步加速下跌,結算收跌55.90.

1900/1/1 0:00:00
BIT:比特幣減半猜想:哪些礦工會走?價格何時會上漲?

距離市值最大的加密貨幣比特幣的區塊獎勵減半只有不到三周的時間,加密媒體Cointelegraph發文對加密礦工的態度以及減半后的價格走勢進行了分析.

1900/1/1 0:00:00
人工智能:上海點燃“在線新經濟”引擎,AI、5G、區塊鏈跑出加速度

作者:劉錕、吳衛群、張楊 來源:上觀 面對疫情,“在線教育”實現“停課不停教、不停學”,“在線購物”讓市民“足不出戶”豐衣足食.

1900/1/1 0:00:00
LIBRA:巴比特專欄 | Libra白皮書2.0:雄心不變的“攪局者”

4月16日晚,Libra2.0的白皮書發布了。經過10個月的“磨難”,最初陣容強大的Libra聯盟已經“主動”瘦身,唯有Facebook依舊“雄心不減”.

1900/1/1 0:00:00
ads