【问题标题】:Where Bytecode is stored字节码的存储位置
【发布时间】:2019-02-21 18:26:43
【问题描述】:

问题很简单。

使用以下图片作为参考:

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

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

【问题讨论】:

    标签: blockchain ethereum smartcontracts


    【解决方案1】:

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

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-26
      • 2011-03-31
      相关资源
      最近更新 更多