为什么要写这篇文章,因为很多人解释不清楚,而且看了很多文章感觉解释让人越看越蒙。
那我就把我的理解放在这里(参考了很多文章)
参考链接(黄皮书):
https://ethereum.github.io/yellowpaper/paper.pdf
合约大小:24576 bytes,算起来应该就是 12 kb,也就是说你写的一份合约如果部署到链上,它的代码你最多只能写 12kb
当然对于一个文件就是一个合约来讲,12kb足够了
写的合约转化为二进制位数不超过 24576 * 8 就可以了
把你的合约地址放在这里 看看。链接:
https://ropsten.etherscan.io/address/0x8808f84d046c4ad6d5ada894dadb90d627254fb0#code
黄皮书很长,我并没有怎么看。
接下来参考的是 v 神的评论
合约存储是 32bytes 的 key,每个 key 可以对应 一个 32bytes 的值
意思是什么呢?32bytes 就是 256bits,也就是说可以有 2^256 个不同的 key
每个 key 能存 32bytes 的数据,也就是能存储 2^256 * 32bytes === 2^261bytes 的数据
所以单个合约可以存储的最大值约为 2^261bytes 的数据