既然ETH交易不仅有转账的交易,还有部署合约,以及存储空间的使用,
那么,智能合约/存储空间如何实现,他们又在哪里,智能合约的地址又是放在哪里?
版本号;
前一区块哈希;
时间戳;
随机数;
目标哈希;
MPT三棵树(交易树,状态树,收据树),树结构本身是key-value对,实际也只是哈希值;
MPT中,交易树最底层是交易;状态树包含账户,账户允许有空间和代码(外部账户没有代码,有代码的是合约账户.);收据树保存的是交易的收据,虽然资料不足,但从架构思路上它也不会需要代码和空间,只是完善SPV快速索引.
其次,EVM只是用来执行字节码的,也不会保存智能合约或者存储空间,那么只能是在区块链中.
我们可以看到,ETH似乎并没有专门为智能合约的地址设计单独的存储结构,存储空间也是.
后来仔细看solidity文档才发现,其实里面就有说明,只是自己忽略了.
合约部署后会创建一个合约账户,合约账户里保存着智能合约的可执行字节码(编译之后的,在EVM里执行),并且有存储空间,合约能对合约账户的空间写入信息.而abi是一个接口结构,利用abiDefinition可以创建调用该合约的结构.abi应该由合约所有方自己保存和提供.
(转载请注明出处~.~ http://blog.csdn.net/LNZ001/article/details/72842753 )