【发布时间】:2022-12-04 13:59:38
【问题描述】:
我现在真的很困惑。我在做 Solidity DEV,但是今天,我试着想一个问题,以太坊链上有多少个 EVM?
我不是在开玩笑。我真的很想知道什么时候创建 EVM。我已经阅读了文档https://ethereum.org/en/developers/docs/evm/。但还是不清楚那个问题。所以,我的意思是,无论我们在链中只有一个 EVM,还是每个验证节点(RPC 节点)都有一个 EVM,或者当元掩码试图与 RPC 节点进行交易时,RPC 节点创建一个 EVM 并智能加载目标合约或每个元掩码都是一个 EVM。我现在真的很困惑。请帮助我,如果你知道肯定的答案。真的真的很感谢。
【问题讨论】:
-
区块链中的每个
node都运行着一个Ethereum Virtual Machine的实例,它可以通过smart contracts处理Solidity代码。 -
@JeremySavage 先生,谢谢您的回答。我想再次确认您回复中的
node。node是否包含像 MetaMask 钱包这样的轻节点或像 1inch 钱包应用程序这样的其他钱包? -
不,钱包只是一个地址。看这里:ethereum.org/en/run-a-node
-
@JeremySavage 先生,我对此还有另一个问题。我尝试查看
Geth源代码。当我们调用ApplyTransaction (core/state_processor.go)时,它会创建一个新的 EVM。所以我对此感到困惑。这个EVM和你所说的节点EVM有什么区别? -
applyTransaction不会创建新的EVM,它以EVM作为参数 -evm *vm.EVM,
标签: ethereum smartcontracts metamask evm