This is going to be a long and some questions may sound dumb. But let's go ahead with this.
As per my understanding, once we send a transaction to blockchain, it goes to transaction pool with other transactions. Once the transaction is picked by any miner and included in a block, the transaction is removed from the transaction pool (mempool, bitcoin analogy).
- Is the transaction pool (or mempool or queue pool) specific to a ethereum node or the ethereum-client (geth,prity)?
- What is the difference between tx pool of geth and tx pool of my node (if they are different, I am not sure of this)?
- How can I know if the transaction is in tx pool? Can we assume all the transactions that are not mined are in tx pool?
- If by any way transaction is not in tx pool and not mined, can we assume that this transaction can never make it to a block? or When can I be sure that my transaction is dropped completely and won't be mined.
- I can see a lot of pending/queued transaction on my node.
- Are these transactions send from my node only?
- What happens to these transactions when:
- a) I stop geth node for some time and restart
- b) I remove db, update geth and resync using light/fast sync
Suppose the ethereum network is under heavy load. What are the cases where my transaction will never be included in a block (assuming transaction doesn't run out of gas and sufficient gas price is provided).
How can I be sure that the transaction is successfully broadcasted to network,if I am unable to see it on block explorers like etherscan (not even in Pending transaction pool).