來源:區塊鏈研究實驗室
以太坊存儲機制
在EVM中允許執行智能合約代碼。合約狀態或內存存儲在智能合約地址中。可以將這種存儲視為位于智能合約地址的無限長度的數據結構數組。存儲機制確保存儲位置沒有沖突,并遵循一組規則。使用這些規則,我們可以解碼任何合約的狀態。解碼存儲在映射中的數據需要知道所使用的密鑰。合約數據的解碼使用RPC調用eth_getStorageAt進行。
插槽位置
變量在智能合約的存儲陣列中的位置由代碼中出現的順序以及變量的大小決定。此位置稱為插槽。如果一個變量小于256位,則EVM會嘗試在空間中容納一個以上的變量,因此一個以上的變量可能會占用存儲陣列中單個插槽的空間。映射或數組將始終占據一個插槽。數組和映射元素的位置遵循一組特殊的哈希規則,本文將對此進行介紹,這些規則在以太坊文檔中也有描述。
Yuga Labs:TwelveFold拍賣已開始,前288名出價者將贏得銘文:3月6日消息,Yuga Labs發推特宣布,基于Ordinal協議的NFT系列TwelveFold的拍賣已經開始,并將于北京時間2023年3月7日7:00之前結束。
據悉,該系列將包含300件限量版生成藝術作品,其中288件作品參與拍賣,12件用于捐助或慈善。參與拍賣的用戶需要兩個比特幣錢包地址。如果用戶要出價,需輸入一個空的自托管比特幣Taproot啟用錢包地址以在那里接收銘文。如果出價成功,這將是銘文的接收地址,如果出價沒有進入前288名,這將是退貨地址。輸入收貨地址后,將能看到一個唯一的地址,用戶可以將出價發送到該地址。前288名出價者將贏得銘文。整個拍賣過程中將有一個排行榜,顯示當前的出價排名。中標者將在拍賣結束后一周內收到他們的TwelveFold序號銘文。
官方數據顯示,該系列目前最高出價為0.59枚BTC,約合13268美元。[2023/3/6 12:44:16]
下表提供了EVM遵循的分配規則的摘要。我們將看兩個智能合約的示例,并使用表1中提供的規則對其進行解碼
Nvidia為高級用戶升級GeForce Now的RTX 4080性能:金色財經報道,Nvidia在其虛擬CES新聞發布會上宣布了其云游戲服務的一些新功能。該公司正在通過添加具有更好硬件組件的新服務器來升級其高級計劃。購買 19.99 美元計劃的用戶應該期望在要求更高的游戲中獲得更好的性能。
該公司現在在其高端服務器上使用 GeForce RTX 4080 級圖形處理器。在今天之前,支付最昂貴的訂閱計劃的用戶可以訪問具有相當于 GeForce RTX 3080 GPU 的服務器級 GPU 的服務器。GeForce Now客戶仍然需要在Steam、Epic Games Store和其他數字商店購買游戲。[2023/1/4 9:50:53]
特朗普NFT地板價已跌至約0.21ETH 跌幅達74%:金色財經報道,據cryptoslam數據顯示,特朗普NFT藏品在上周末短暫飆升后熱度開始快速走低,數據顯示其地板價已跌至約0.21 ETH,跌幅達到74%,而日均交易額則減少了57%,約為83.6萬美元。本文撰寫時,Trump Digital Trading Cards二級市場交易總額略高于880萬美元,該系列持有者總量約為1.5萬個地址。(decrypt)[2022/12/21 21:57:20]
256位變量的簡單示例
FTT 24小時現貨交易量超15億美元,近兩小時內漲跌波動均超10%:11月7日消息,據CoinGecko數據顯示,FTX Token(FTT)24小時現貨交易量已達15.07億美元。據FTX行情數據顯示,FTT現報價23.12美元,數據顯示:
Alameda聯席CEO Caroline正面回應資不抵債傳言后,FTT短時最大漲幅達9.29%;
CZ宣布將清倉FTT后,FTT短時最大跌幅達10.89%;
Alameda聯席CEO Caroline宣布將以22美元價格購買CZ計劃出售的FTT后,FTT短時最大漲幅達10.62%。
據Coinglass數據顯示,近2小時內FTT合約交易者已爆倉171.89萬美元,僅次于BTC(229.94萬)和ETH(206.59萬)。[2022/11/7 12:24:05]
首先讓我們看一個簡單示例,所有變量都是256bit。這樣做使我們無需考慮可變變量即可查看分配。
請注意,當對數字應用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:FTTSTOSTORGETNFTT幣PistonBlockchain Store TokenbitGet靠譜嗎
作者:LiangChe 來源:比推bitpush.news編者注:本文做了不改變作者原意的刪減.
1900/1/1 0:00:00中國人民銀行發行的數字貨幣首次“呼之欲出”是在2019年8月的第三屆中國金融四十人論壇上,中國人民銀行支付結算司副司長穆長春表示央行研究數字貨幣已經有5年時間之久.
1900/1/1 0:00:00根據上個月提交的監管表格,全球最大的對沖基金之一的復星科技一直在關注比特幣期貨市場。這家規模達750億美元的對沖基金,以開創性的基于量化的投資而聞名,它在3月30日提交的FormADV中表示,旗.
1900/1/1 0:00:00Gas是什么? Gas是存在于以太坊EVM內部,是計算工作量的計量單位。其作為以太坊網絡中的燃料,為以太坊網絡生態的發展運作提供動力.
1900/1/1 0:00:00文:凱爾 來源:蜂巢財經 4月19日,“EOS生態”APP出現了無法登陸的情況,綜合多名投資者的反饋信息,這個斷斷續續持續了一年半的資金盤項目疑似跑路.
1900/1/1 0:00:00分析師?|Carol??編輯|畢彤彤??出品|PANews4月15日,農業銀行App內測數字貨幣DC/EP的界面在網上流傳,界面上顯示的功能包括掃碼支付、碰一碰、DC兌換查詢和錢包管理掛靠等.
1900/1/1 0:00:00