Blockchain 以太坊合约的实际字节码在哪里?

Blockchain 以太坊合约的实际字节码在哪里?,blockchain,ethereum,evm,Blockchain,Ethereum,Evm,据我所知,在创建合约时,init字段中的部署代码执行一次,并在返回实际字节码后丢弃,同时,帐户状态中的codeHash字段也相应更新,但是这些实际字节码存储在哪里 我试图从黄皮书的执行模型部分找到一些相关信息: 程序代码不是存储在一般可访问的内存或存储器中,而是单独存储在虚拟ROM中,只能通过专门的指令进行交互 但是我不太理解它,并且仍然不知道在调用契约调用时如何在执行环境中检索和提供实际的字节码 希望在这里获得一些见解,谢谢 我想说,实际字节码的存储方式是以太坊节点的一个实现细节。节点同步所有

据我所知,在创建合约时,init字段中的部署代码执行一次,并在返回实际字节码后丢弃,同时,帐户状态中的codeHash字段也相应更新,但是这些实际字节码存储在哪里

我试图从黄皮书的执行模型部分找到一些相关信息:

程序代码不是存储在一般可访问的内存或存储器中,而是单独存储在虚拟ROM中,只能通过专门的指令进行交互

但是我不太理解它,并且仍然不知道在调用契约调用时如何在执行环境中检索和提供实际的字节码


希望在这里获得一些见解,谢谢

我想说,实际字节码的存储方式是以太坊节点的一个实现细节。节点同步所有事务,以便从inits读取所有字节码。然后,只要事务正确执行且状态哈希正确更改,节点如何在内部记录哪个地址包含哪些您不需要关心的字节码


有一些指令,如get code size,用于检查地址是否包含字节码,但可能无法从Solidity/EVM访问单个字节码指令。

我想说,实际字节码的存储方式是以太坊节点的一个实现细节。节点同步所有事务,以便从inits读取所有字节码。然后,只要事务正确执行且状态哈希正确更改,节点如何在内部记录哪个地址包含哪些您不需要关心的字节码


有一些指令,如获取代码大小,以检查地址是否包含字节码,但是SOLIDATY/EVM无法访问单个字节码指令。

谢谢,我以为规范中包含了这些指令。我将研究具体的客户机实现。谢谢,我还以为规范涵盖了它呢。我将研究具体的客户端实现。