为什么一次交易中对应的EVM OpCode会被反复执行多次

各位好,我在调试EVM虚拟机的时候,我输出了所有执行的OpCode。我只发送了一笔交易去调用一个函数,但是实验发现,这个函数对应的OpCode片段被执行了17次,也就是说这个函数的函数体在EVM中被执行了17次,这令我非常费解。

通过对OpCode解构,我非常确信整个函数体对应的所有OpCode被完整的执行了17次,这与我们编写代码中的定义的循环无关,是其函数完整生命周期被执行了17次。

不知道这是否与共识或者EVM其他特性有关,希望可以得到各位的答疑。

测试环境:使用geth搭建的单节点

请先 登录 后评论

1 个回答

Tiny熊
  擅长:智能合约,以太坊
请先 登录 后评论
  • 1 关注
  • 1 收藏,1900 浏览
  • Obscure_Lin 提出于 2023-03-08 15:59