矿工的一部分工作是安排一些智能合约的执行吗?
Is part of the miner work to schedulle some smart contract executions?
我只是想开始了解以太坊和智能合约,我了解到智能合约的执行发生在交易块的验证过程中。我说得对吗?
如果是这样,如何执行具有到期日期或将来必须发生的某种执行的智能合约?矿工的一部分工作是安排一些智能合约的执行吗?
the execution of an smart contract happens during the process of a transaction block's validation
以及区块挖掘期间。但是,是的,PoW 验证器 运行 交易 - 只是这次使用正在验证的块的参数(例如 block.timestamp
)来检查它们是否得到相同的结果(在这种情况下状态变化 - 存储,事件,...) 作为矿工。
示例:
function foo() public {
require(block.timestamp == 1650000000);
}
- 一个矿工产生了一个时间戳为 1650000000 的区块,其中包含一个成功执行
foo()
函数的交易。
- 一个验证者在时间 1650000001 验证了这个块,但在他们的 EVM 中以模拟时间 1650000000 执行它,并且交易在他们结束时也成功了。
我只是想开始了解以太坊和智能合约,我了解到智能合约的执行发生在交易块的验证过程中。我说得对吗?
如果是这样,如何执行具有到期日期或将来必须发生的某种执行的智能合约?矿工的一部分工作是安排一些智能合约的执行吗?
the execution of an smart contract happens during the process of a transaction block's validation
以及区块挖掘期间。但是,是的,PoW 验证器 运行 交易 - 只是这次使用正在验证的块的参数(例如 block.timestamp
)来检查它们是否得到相同的结果(在这种情况下状态变化 - 存储,事件,...) 作为矿工。
示例:
function foo() public {
require(block.timestamp == 1650000000);
}
- 一个矿工产生了一个时间戳为 1650000000 的区块,其中包含一个成功执行
foo()
函数的交易。 - 一个验证者在时间 1650000001 验证了这个块,但在他们的 EVM 中以模拟时间 1650000000 执行它,并且交易在他们结束时也成功了。