警报:初学者问题。我正在寻找解决这个问题的方法。一旦我们部署了智能合约,区块链上的其他节点是如何了解我的智能合约的?如果有人对如何理解这一部分有一些建议的话。我可以理解我的问题可能需要很多解释。我感谢任何能帮助我完成先决条件的资源链接。
编译Solidity代码时,会产生可由EVM(以太坊虚拟机(执行的字节码。
部署不过是将事务发送到";没有接收者";(实际上to
字段为空(,在其data
字段中包含字节码。
该交易被广播到网络后(通过钱包软件或自定义应用程序连接的节点(,它在内存池中等待矿工挑选并在区块中挖掘。
当矿工生成块时,他们在自己的EVM实例中本地执行每个事务,以生成状态更改(例如,将部署的合同字节码存储在EVM存储中(,这些更改稍后将包含在块中。
在执行此事务期间(在矿工本地机器上(,EVM为契约生成一个新的伪随机地址(通过确定性规则(,并将字节码复制到此地址。
矿工在区块中包括所有挖掘的交易,并将此区块(包括您的合同的新状态(广播到网络的其他部分。其他节点了解这个新块,并在其端反映状态变化(例如,合同地址上的新字节码(。
您可以在ETH wiki页面"挖掘"中找到有关挖掘过程的更多信息。