区块见闻 区块见闻
Ctrl+D收藏区块见闻
首页 > SAND > 正文

COIN:详解以太坊虚拟机(EVM)的数据存储机制_GET

作者:

时间:

来源:区块链研究实验室

以太坊存储机制

在EVM中允许执行智能合约代码。合约状态或内存存储在智能合约地址中。可以将这种存储视为位于智能合约地址的无限长度的数据结构数组。存储机制确保存储位置没有冲突,并遵循一组规则。使用这些规则,我们可以解码任何合约的状态。解码存储在映射中的数据需要知道所使用的密钥。合约数据的解码使用RPC调用eth_getStorageAt进行。

插槽位置

变量在智能合约的存储阵列中的位置由代码中出现的顺序以及变量的大小决定。此位置称为插槽。如果一个变量小于256位,则EVM会尝试在空间中容纳一个以上的变量,因此一个以上的变量可能会占用存储阵列中单个插槽的空间。映射或数组将始终占据一个插槽。数组和映射元素的位置遵循一组特殊的哈希规则,本文将对此进行介绍,这些规则在以太坊文档中也有描述。

Coinbase将上线欧元稳定币Euro Coin:2月22日消息,据官方消息,Coinbase将上线欧元稳定币Euro Coin (EUROC)。如果满足流动性条件,交易将于太平洋冬令时2月22日9:00(北京时间2月23日1:00)开始。如果建立了足够的资产供应, EUROC-USD和EUROC-EUR交易对将分阶段开放交易。Coinbase仅在以太坊网络上支持EUROC。在某些司法管辖区,EUROC交易可能会受到限制。欧元稳定币EUROC由Circle于6月30日在以太坊上发行,100%由欧元计价的储备支持,可以按照1:1的比例兑换成欧元。[2023/2/22 12:21:01]

下表提供了EVM遵循的分配规则的摘要。我们将看两个智能合约的示例,并使用表1中提供的规则对其进行解码

Coinbase:已修复部分加密货币存取款延迟问题:据官方消息,Coinbase表示,已经修复部分加密货币存取款延迟问题。[2021/4/17 20:29:59]

256位变量的简单示例

首先让我们看一个简单示例,所有变量都是256bit。这样做使我们无需考虑可变变量即可查看分配。

请注意,当对数字应用keccack哈希时,数字必须是0填充的64位值。

公告 | Coinbase Pro已正式上线:GDAX发布公告称,GDAX已经下线,替代GDAX的新平台Coinbase Pro已正式上线。据早先报道,新平台旨在让交易体验更轻松,更直观,新功能还包括一个新的图表系统,提供简化的历史数据访问和一个重新整合的投资组合视图。[2018/6/30]

所有解码都是使用以太坊RPC调用eth_getStorageAt执行的,在本文中将其表示为GetStorageAt。可以使用任何语言打包程序来调用此RPCapi。

下图显示了如何对智能合约的地址和传递给它的位置值进行GetStorageAt调用。图1左侧的数字是变量的位置。对于基类型,可以将此位置传递到GetStorageAt以获取变量值。对于数组,位置将返回数组的长度。

动态 | 全国首个互联网仲裁电子证据平台上线 运用区块链等技术:据凤凰网消息,7月18日,宁波仲裁委召开互联网在线仲裁平台暨全国首个互联网仲裁电子证据平台正式运行发布会,实现了互联网仲裁案件全流程线上解决。平台建设方杭州安存网络科技有限公司相关负责人介绍,平台借助互联网技术,无缝对接各个电子数据来源接口(包括通用电子证据和区块链电子证据),并以哈希值形式提交平台上链存证。当发生纠纷时,通过哈希值校验,前置性地对电子证据进行审查认定,确认电子证据是否被篡改。[2019/7/30]

通过将Keccack哈希传递给索引为0的GetStorageAt来解码数组索引。数组的每个后续索引位于与位置求和的哈希值处。可以认为这是访问数组的指针并增加其位置以查找每个元素,类似于C或C++。

传递给每个键的GetStoragetAt的位置值是键的keccack哈希值和映射声明的位置。对于多维映射,将密钥和变量位置递归调用Keccack哈希值。参见图1中的示例进行说明。

接下来,我们来看一个发生变量打包的示例。打包要记住的是:

1.它仅按出现顺序适用于基本变量类型。EVM将按照代码中列出的顺序在256位空间中打包尽可能多的变量。

2.每个映射和数组变量将占用一个新的插槽。

3.数组变量映射将遵循打包规则。也就是说,如果一个元素小于256位,则阵列的多个索引将占用存储阵列中的单个插槽。

图2显示并提供了发生的打包的说明。当类型的长度小于256位时,EVM尝试将其他变量打包到插槽中。EVM按列出的顺序选择要打包的变量。映射和数组始终出现在新位置。但是打包规则仍适用于解码数组索引,打包规则仍适用于存储在映射中的结构。

有关这种情况下如何存储变量的说明,请参见图2。

继承

关于继承的说明。当智能合约继承其他智能合约时,基本智能合约的存储变量将按继承顺序占据存储阵列的第一个插槽。子类的存储变量将随后出现。

结论

如前所述,我们在本文介绍的规则来解码以太坊智能合约的存储机制。在接下来的,第2部分将描述的智能合约规则编写的工具。

标签:COICOINOINGETJin Coinyacoinscoin币国际价格togetherbnb手游下载破解

SAND热门资讯
ETH:Messari Q1报告:稳定币创有史以来表现最好季度,以太坊占据加密货币价值转移主导地位_BTCMT币

稳定币的故事就是以太坊的故事,2020年第一季度是稳定币有史以来最好的季度。在冠状病大流行推动全球投资者向避险资产转移之际,在2020年第一季度,稳定币的发行量激增超过80亿美元.

OIN:CoinMarketCap惊现第0位加密货币,竟排在比特币之前_INB

今天是愚人节,CoinMarketCap也娱乐了一把,这家加密货币数据网站见证了大量“厕纸代币”的诞生。CMC在3月31日将厕纸代币排在了第0位,流通供应量则为缺货状态.

COIN:电子证照上链,北京两地区块链证照同期落地_gitcoin币潜力如何

数据材料可共享,业务办理减成本,链上流程省时间……这一切,只需要一份“区块链电子证照”即可完成.

GET:2020年最值得关注的10个DeFi项目_EVAL DEFI

原文标题:10DeFiProjectsToWatchOutForIn2020作者:AriChernoff 译者:Shirley 对于活着的人来说,这是一个奇怪的时刻.

比特币:比特币秘史:神秘的街头比特币交易商_BLANK

来源:哈希派 作者:LucyCheng编者注:原标题为《神秘的街头比特币交易商|比特币秘史》在比特币矿业市场竞争越发激烈且还未有太多交易所生态的早期阶段.

数字货币:数字资产与传统资产的相关性:市场暴跌是如何影响数字资产的?_ITCO

作者:BinanceResearch 翻译:子铭 来源:加密谷 编者注:原标题为《BinanceResearch|近期的市场暴跌是如何影响数字货币的》 高市值的数字货币在2020年第一季度显示出.