前言
在以太坊上,我们可以通过部署智能合约来实现我们需要的功能,合约代码中我们往往需要定义一些变量,这就涉及到了智能合约变量的存储机制。这篇文章我们将根据solidity的所有的变量命名的类型来讲解智能合约的存储机制。存储机制
每个在以太坊虚拟机中运行的智能合约的状态都在链上永久地存储着。这些值存储在一个巨大的数组中,数组的长度为2^256,下标从零开始且每一个数组能够储存32字节(256个比特)长度的值。并且存储是稀疏的,并没有那么密集。变量类型
Solidity的数据变量类型分为两类:值类型-valuetype引用类型-referencetype值类型布尔型(bool)2bit(0/1)整型(int/uint)根据关键字的不同表示不同长度,int8表示8bits有符号数定长浮点型(fixed/ufixed)Solidity还没有完全支持定长浮点型。可以声明定长浮点型的变量,但不能给它们赋值或把它们赋值给其他变量定长字节数组(byte/bytes)定义数组时定义长度地址类型(adress)160bits地址类型成员变量(balance,transfer....)balanceuint256(256bits)transfer()uint256(256bits)引用类型不定长字节数组类型(bytes/byte,string,uint....)结构体(struct)映射(mapping)简单分析
ARK Invest:到2030年,智能合约网络每年可提供4500亿美元的费用:金色财经报道,ARK Invest近日发布“2023 Big Ideas”研究报告,比特币、数字钱包、公链和智能合约网络占据2023年14个“大创意”中的四席。
报告强调了Layer2网络Arbitrum和Optimism上的交易数量,现在与以太坊基础层交易数量相当。ARK Invest补充说,到2030年,智能合约网络每年可提供4500亿美元的费用。与此同时,ARK Invest预计数字钱包用户的数量将以每年8%的速度增长,到2030年达到全球人口的65%。
在另一个名为“技术融合”的主题中,Ark表示,加密挖矿可以支持更多的太阳能电池安装,并指出“将比特币挖矿纳入太阳能存储系统可以提高电网的规模和可靠性,而不会增加电力的平均成本”。[2023/2/2 11:41:53]
写一个简单值类型的合约pragmasolidity^0
摩根大通:以太坊的高昂gas费和网络拥塞给智能合约平台带来了巨大风险:金色财经报道,银行业巨头摩根大通在最新报告中表示,以太坊的高昂gas费和网络拥塞给智能合约平台带来了巨大风险。这可能是“以太坊估值的问题”。以太坊可能会失去其 NFT 市场份额给竞争对手 Solana,后者在去年取得了巨大的进展。如果我们看数据,以太坊的 NFT 市场份额已经从 2021 年初的 95% 下降到 80%。摩根大通分析师还指出,数据显示 NFT 玩家已经从以太坊转向 Solana,因为后者的交易速度更快且成本更低。(coingape)[2022/1/20 9:01:25]
优化存储原则:如果下一个变量长度和上一个变量长度加起来不超过256bits,它们就会存储在同一个插槽里。
总结
本篇文章详细讲解了智能合约的优化存储原则,数组类型,字符串类型,结构体类型和映射类型的存储机制。同时提供了基于python的计算代码,用以验证机制分析的正确性。当然,本文设计的智能合约设计并不复杂,在实际开发过程中远比此复杂,需要经历一些分析,在能找到正确的存储位置。最后,希望通过本文章可以帮助大家进一步的了解智能合约。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。