We're working on a large-scale application that issues a lot of transactions and we are not sure what exact guarantees Ethereum/Geth gives us.
On Ropsten testnet, we try to issue 100 transactions at once but only a fraction get mined. It seems like some transactions get discarded by the transaction pool and therefore mess up subsequent transactions because of the transaction nonce.
I looked at the code here: https://github.com/ethereum/go-ethereum/blob/master/core/tx_pool.go#L80-L83
- How is "non-executable transaction" defined? I assume this defines transactions that can't be executed because of a too high nonce
- If AccountSlots is set to 16 (and I assume the majority on the network has set that), does that mean the 16 lowest transaction nonces will go there?
- Is the number of possible transactions per account in the tx pool AccountSlots + AccountQueue or AccountQueue?
- What if I try to send more than that? Will Ethereum silently drop the transaction? (as I assume that this is what is happening at the moment)?