Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Blockchain 字节码存储的位置_Blockchain_Ethereum_Smartcontracts - Fatal编程技术网

Blockchain 字节码存储的位置

Blockchain 字节码存储的位置,blockchain,ethereum,smartcontracts,Blockchain,Ethereum,Smartcontracts,问题很简单 使用以下图像作为参考: 正如我所了解的,以太坊区块链只存储盒子内的想法(PREVHASH、STATE_ROOT、TIMSTAMP、NUMBER)和每个帐户(NONCE、BALANCE、CODEHASH、STORAGE_ROOT) 那么,智能合约的代码(在本例中为字节码)存储在何处?合约以以太坊特定二进制格式(EVM字节码)存在于区块链上,以太坊虚拟机(EVM)执行该格式 编译后的EVM代码通过合同创建事务发送到区块链,而作为编译智能合同一部分创建的附加元数据理想情况下将作为补充区块

问题很简单

使用以下图像作为参考:

正如我所了解的,以太坊区块链只存储盒子内的想法(PREVHASH、STATE_ROOT、TIMSTAMP、NUMBER)和每个帐户(NONCE、BALANCE、CODEHASH、STORAGE_ROOT)


那么,智能合约的代码(在本例中为字节码)存储在何处?

合约以以太坊特定二进制格式(EVM字节码)存在于区块链上,以太坊虚拟机(EVM)执行该格式

编译后的EVM代码通过合同创建事务发送到区块链,而作为编译智能合同一部分创建的附加元数据理想情况下将作为补充区块链上代码的可公开验证元数据存在于分散的云上

在部署智能合约的过程中,我们实际上是将一个事务发送到空地址,并将EVM代码作为编译智能合约的一部分生成,作为事务的数据

一段时间后,您的交易将显示在一个块中,确认它所带来的状态是一致的。您的合同现在位于为智能合同创建的地址的区块链上

合同地址具有与其关联的字节码,并且合同背后没有外部控制私钥的人。契约保留一个CRAB日志,而不是CRUD数据库(创建读取附加burn vs创建读取更新删除)

由于我们有创建智能合约的交易数据的智能合约部分代码,也有智能合约的新地址,以太坊区块链实际上可以通过搜索第一个输出指向合约地址的交易来找出要执行的实际字节码