以太坊BC智能合约执行重复

问题描述

我目前正在学习编写智能合约的牢固性。我了解智能合约存储在以太坊区块链上,并由网络上的所有节点进行广播和执行。 google:智能合约是指由一定数量的区块链节点独立执行以记录最新程序状态的计算机程序。

这是我在理解执行周期时遇到的一些问题。假设我们所做的事情仅发生一次,例如将ERC20令牌交换为ETH。取节点A和B。 例如,节点A执行传输并执行传输。当节点B执行代码时,将检查智能合约中的余额或其他内容,但是到现在为止。实际的智能合约是真的执行了一次以上还是完成了一次,而其他执行又有所不同?

很困惑,因为我们要写一个合约,但它一次执行一个动作,但是却多次执行,这要感谢其他阅读的链接

解决方法

为了更好地了解它们如何组合在一起,我建议您检出http://ethviewer.live/。当您编写智能合约时,您需要首先将其部署到以太坊区块链。这种部署会耗费大量天然气,并且像典型的令牌转移那样作为交易传输到链中。您可以先将观察者的合同创建/合同调用汇集到交易队列中,然后再推入到区块中。

如果节点A仅部署一次合同(例如,要由其他人执行数千次),则节点A仅支付将合同部署到区块链的汽油费用。谁希望在将来的某个时间与节点A的合同进行交互(例如,节点B),就必须支付相关的天然气费用,以执行这些合同调用。

,
例如,节点A执行传输并进行传输。当节点B执行代码时,将检查智能合约中的余额或其他内容,但是到现在为止。实际的智能合约是真的执行了一次以上还是完成了一次,而其他执行又有所不同?

当前,世界上所有以太坊节点都执行区块链中的所有交易。作为挖掘节点的节点生成一个块,该块包含从状态1->状态2的状态转换。这就是所谓的“事务包含在块中”。然后下载该块的所有其他节点将检查该节点中的所有事务是否已正确执行。