首页 > 解决方案 > 字节码的存储位置

问题描述

问题很简单。

使用以下图像作为参考:

在此处输入图像描述

据我了解,以太坊区块链仅存储框内的想法(PREVHASH、STATE_ROOT、TIMSTAMP、NUMBER)和每个帐户(NONCE、BALANCE、CODEHASH、STORAGE_ROOT)。

那么,智能合约的代码(在这种情况下是字节码)存储在哪里?

标签: blockchainethereumsmartcontracts

解决方案


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

编译后的 EVM 代码通过合约创建交易发送到区块链,而作为编译智能合约的一部分创建的附加元数据理想情况下将作为可公开验证的元数据存在于去中心化云上,以补充区块链上的代码。

在部署智能合约的过程中,我们实际上是在向空地址发送一笔交易,其中的 EVM 代码是编译智能合约的一部分,作为交易数据的一部分。

一段时间后,您的交易应该出现在一个区块中,确认它带来的状态是共识。您的合约现在位于为智能合约创建的地址的区块链上。

合约地址有与之关联的字节码,并且没有人在外部控制合约背后的私钥。合同保留 CRAB 日志而不是 CRUD 数据库(创建读取追加刻录与创建读取更新删除)。

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


推荐阅读