源码分析
交易剖析
下面我们看一下一笔交易在从创建到最后的广播过程中EVM所起到的作用,每当用户发起交易请求时实际上会调用的以太坊客户端的sendTx方法,之后将交易添加到本地交易列表中:
// filedir...,在下面的commitNetwork函数中前半部分为coinbase、链状态、分叉检查等,之后调用w.eth.TxPool().Pending()将处于pending状态的交易从交易池中取出,之后将交易分为本地交易和远程交易...", "sender", from, "nonce", tx.Nonce())
txs.Shift()
case errors.Is(err, core.ErrNonceTooHigh...", "sender", from, "nonce", tx.Nonce())
txs.Pop()
case errors.Is(err, nil):
// Everything...,之后检查合约创建者是否有足够的ether,之后获取并更新Nonce值,之后检查当前合约的地址是否已经存在,随机通过evm.StateDB.CreateAccount(address)创建合约账户,并将交易中的以太币数值