1) Ethereum为什么要以32字节块存储数据?我不认为这是什么落后的兼容性遗留下来,是吗?我们也可以将数据存储在可变长度字段中。
2)我不认为优化是这样的,因为我们已经浪费了超过32字节(对于构成路径+ Merkle Trie节点的元数据的散列的32字节)作为每个这样的字段(从数据Trie根到每个变量的路径)的访问键。
3)编译器如何计算每个变量的访问键?
4)我对Ethereum很陌生,是否有任何经济动机来删除以前占用的数据?
发布于 2018-02-24 20:36:32
大约1/2:来自https://github.com/ethereum/wiki/wiki/Design-Rationale
32字节字大小--可选为4或8个字节字,就像大多数其他架构中的那样,或者是无限制的,如比特币。对于加密计算来说,4或8个字节字的限制太小,无法存储地址和大值,而且无限的值太难建立一个安全的gas模型。32字节是理想的,因为它仅仅大到足以存储许多密码实现中常见的32个字节值,以及地址(并提供了将地址和值打包到一个存储索引中作为优化的能力),但没有那么大,以至于效率极低。
)已经被询问和回答了。见EVM中256位字的基本原理)
大约3:简单的字段变量、数组和映射之间有区别。从索引0开始,将简单字段打包到存储中。映射由散列的路径组成。请参阅如何获得存储索引/密钥?
约4:你将得到煤气退款从仓库删除或删除(自杀)的合同。请参阅汽油退款的限度是多少?
https://ethereum.stackexchange.com/questions/40818
复制相似问题