一个合约能存储多少数据?

为什么要写这篇文章,因为很多人解释不清楚,而且看了很多文章感觉解释让人越看越蒙。
那我就把我的理解放在这里(参考了很多文章)

参考链接(黄皮书):

https://ethereum.github.io/yellowpaper/paper.pdf

合约大小:24576 bytes,算起来应该就是 12 kb,也就是说你写的一份合约如果部署到链上,它的代码你最多只能写 12kb

当然对于一个文件就是一个合约来讲,12kb足够了

写的合约转化为二进制位数不超过 24576 * 8 就可以了

 把你的合约地址放在这里 看看。链接:

https://ropsten.etherscan.io/address/0x8808f84d046c4ad6d5ada894dadb90d627254fb0#code

黄皮书很长,我并没有怎么看。

接下来参考的是 v 神的评论

dapp development - Is there a (theoretical) limit for amount of data that a contract can store? - Ethereum Stack Exchange

合约存储是 32bytes 的 key,每个 key 可以对应 一个 32bytes 的值

意思是什么呢?32bytes 就是 256bits,也就是说可以有 2^256 个不同的 key

每个 key 能存 32bytes 的数据,也就是能存储 2^256 * 32bytes  === 2^261bytes 的数据

所以单个合约可以存储的最大值约为 2^261bytes 的数据

猜你喜欢

转载自blog.csdn.net/weixin_42335036/article/details/125889674