以太坊有单钱包交易队列吗?

Is there a transaction queue for single wallet in Ethereum?

我以非常低的 gas 价格执行了合约方法 - 1 gwei(交易 A)。

之后,我从同一个帐户向多个钱包发送了一些 ETH(交易 B)。

因此,交易 A 的状态是 pending 大约 12 个小时,直到它因为 gas 价格被开采。而且我发现交易 B 停止,直到交易 A 被开采(它们也是 pending)。

所有交易均通过 MyEthereWallet 从同一个钱包发送。

据我了解,交易是绝对独立执行的。那么,为什么交易 B 只在 A 之后才被开采?或者每个钱包都有一个全局交易队列,交易按照进入系统的顺序进行挖掘?

我找到了答案here。如果很快,是的,有一种队列。交易按照它们发布到以太坊网络的顺序执行。


再详细一点。每个帐户都有一个名为 nonce 的 属性。它包含发送出账户的交易数量。

接下来。账户发送的每笔交易都有几个属性。其中之一是发送交易的帐户 nonce

在执行交易之前检查有效性 - 它们应该有有效的签名,足够的气体和有效的 nonce - 它应该等于发送者账户的当前 nonce

检查有效性后交易正在执行。交易执行成功后账户的nonce递增。

比如我们账户的nonce是100,我们发布了两笔交易nonce100和101,第二笔交易nonce101只有在第一笔交易是完成并且帐户的 nonce 递增(并变为 101)。