共识发生在evm执行之前还是之后?

时间:2019-02-28 12:28:03

标签: ethereum

据我了解,交易收据包含交易的结果,我不清楚的要点是订单,是订单:

transaction -> consensus -> execution -> receipt 

transaction -> execution -> receipt -> consensus  

另一种询问方式,在以太坊对合同输入或合同输出的共识上达成共识,如果两个不同的节点在同一合同上获得相同输入的不同结果(例如,基于时间的计算)会怎样?

2 个答案:

答案 0 :(得分:1)

当交易到达时,第一步是验证交易。这包括检查交易签名,交易发送者,随机数等。一旦交易被验证。它准备就绪,可以在状态转换中完成此工作。如果交易成功,则将其添加到状态Trie中,并将交易收据添加到收据Trie中。状态Trie和接收Trie都出现在块标题中,然后共识发生在块级别。

答案 1 :(得分:0)

  

如果两个不同的节点获得不同的结果会发生什么   相同合同上的相同输入(例如,基于时间的计算)?

Consenus旨在解决这些问题(图像一直在发生,因此我们不知道哪个节点在“说谎”)。 所以我想这是理想的答案:

交易->执行->收据->共识