<p>Full nodes keep a "mempool" of unconfirmed transactions, so yes, but every full node chooses its own rules for how many transactions it keeps in the mempool, e.g. minimum fee, maximum number of transactions, amount of time before the transactions drop out, etc. So not <em>every</em> full node keeps <em>every</em> unconfirmed transaction. If a node doesn't have a transaction in its mempool when a block is mined, it will just request that transaction.</p>

CC BY-SA 3.0
2018-03-30T01:11:44.387Z
Thx, then different full nodes may keep different overlapping mempools? Also why does a full node request a transaction (not in its mempool)  when a block (with the transaction) is mined, since at that time, the full node needs to store the newly mined block ( which includes that transaction ) anyway?
Smjohn
CC BY-SA 3.0
2018-03-30T07:36:14.283Z
@Smjohn correct. And full nodes can get a list of transactions in the block without downloading all of them as it's more efficient than redownloading all of them again, they just request the missing ones
meshcollider
CC BY-SA 3.0
2018-03-30T13:03:02.823Z
I see, but a block is only 1 to 2M, downloading it all probably is more efficient than downloading a list of transactions and then checking against its own mempool, and assembling the block in terms of latency, isn't it?
Smjohn
CC BY-SA 4.0
2018-08-23T08:09:36.140Z
@Smjohn I think the block stores just the transaction ID and not the whole transaction details, that's why it's much more efficient to request only the missing transaction than the entire list.
Deniz
CC BY-SA 3.0
2018-03-30T00:03:01.680Z
2018-03-30T00:03:01.680Z
meshcollider
<p>When a bitcoin client sends a transaction to its connecting full nodes, before that transaction is confirmed, where is it stored? on all full nodes? </p>

<unconfirmed-transactions>
Where are transactions to be confirmed stored?
Smjohn
# Where are transactions to be confirmed stored?

(Asked by: username_0 on 2018-03-29)

When a bitcoin client sends a transaction to its connecting full nodes, before that transaction is confirmed, where is it stored? on all full nodes?

**Tags:** unconfirmed-transactions


---

## 1 answers

### Answer by username_1 on 2018-03-30. Score: 6

Full nodes keep a "mempool" of unconfirmed transactions, so yes, but every full node chooses its own rules for how many transactions it keeps in the mempool, e.g. minimum fee, maximum number of transactions, amount of time before the transactions drop out, etc. So not *every* full node keeps *every* unconfirmed transaction. If a node doesn't have a transaction in its mempool when a block is mined, it will just request that transaction.

> **Comments:**
> **username_0**: Thx, then different full nodes may keep different overlapping mempools? Also why does a full node request a transaction (not in its mempool)  when a block (with the transaction) is mined, since at that time, the full node needs to store the newly mined block ( which includes that transaction ) anyway?  
> **username_1**: @username_0 correct. And full nodes can get a list of transactions in the block without downloading all of them as it's more efficient than redownloading all of them again, they just request the missing ones  
> **username_0**: I see, but a block is only 1 to 2M, downloading it all probably is more efficient than downloading a list of transactions and then checking against its own mempool, and assembling the block in terms of latency, isn't it?  
> **username_2**: @username_0 I think the block stores just the transaction ID and not the whole transaction details, that's why it's much more efficient to request only the missing transaction than the entire list.  

---

