<p>Nodes will relay all transactions to each other, true. But, how do you know all miners have the same block if only one is actually published? In any case, miners are incentivized monetarily to include the transactions with the highest fee rate (fee/kB) because the miner gets all of the transaction fees. So, it would not be surprising if miners had similar blocks since they all would presumable try to maximize the transaction fees.</p>

CC BY-SA 4.0
2019-08-28T23:40:15.527Z
I get your point and you perfectly answered to my misunderstanding. But "if only one is actually published" : it is totally true ? I mean, sometimes several blocks exist during a short period of time; a subset of the network see blockchain A and another subset see blockchain B. Even if at the end, of couse, everyone see the same (that why several block confirmations is required)
Guillaume Paris
CC BY-SA 4.0
2019-08-28T23:49:26.483Z
Theoretically multiple blocks could be mined at nearly the same time in different parts of the network, but the blocks are relayed very quickly so that window is very short. Furthermore, you will never know multiple blocks exist unless you happen to have nodes in different parts of the network that happen to witness that event because 1 of the blocks will be discarded and only 1 will eventually be added to the chain (because the others would contain some transactions that exist in the other block, making them double spends -> invalid)
JBaczuk
CC BY-SA 4.0
2019-08-28T23:30:06.063Z
2019-08-28T23:30:06.063Z
JBaczuk
<p>My understanding is that all miners are feeded with transactions published by full node servers, but I didn't understand why they end up with exactly the same transactions in their created blocks ? Why <em>miner A</em> doesn't produce a block with saying 4 transactions and <em>miner B</em> produce a block with, for instance again, 3 transactions ?</p>

CC BY-SA 4.0
2019-08-28T23:30:04.440Z
Where do you get the idea that miners produce the same blocks? No transaction can be mined twice (that would be a double spend), so by definition every block must be distinct.
Pieter Wuille
<mining-theory><transaction-selection>
Why all miners produce the same blocks
Guillaume Paris
# Why all miners produce the same blocks

(Asked by: username_0 on 2019-08-28)

My understanding is that all miners are feeded with transactions published by full node servers, but I didn't understand why they end up with exactly the same transactions in their created blocks ? Why *miner A* doesn't produce a block with saying 4 transactions and *miner B* produce a block with, for instance again, 3 transactions ?

**Tags:** mining-theory, transaction-selection

> **Comments:**
> **username_1**: Where do you get the idea that miners produce the same blocks? No transaction can be mined twice (that would be a double spend), so by definition every block must be distinct.  

---

## 1 answers

### Answer by username_2 on 2019-08-28. Score: 1 | Accepted answer

Nodes will relay all transactions to each other, true. But, how do you know all miners have the same block if only one is actually published? In any case, miners are incentivized monetarily to include the transactions with the highest fee rate (fee/kB) because the miner gets all of the transaction fees. So, it would not be surprising if miners had similar blocks since they all would presumable try to maximize the transaction fees.

> **Comments:**
> **username_0**: I get your point and you perfectly answered to my misunderstanding. But "if only one is actually published" : it is totally true ? I mean, sometimes several blocks exist during a short period of time; a subset of the network see blockchain A and another subset see blockchain B. Even if at the end, of couse, everyone see the same (that why several block confirmations is required)  
> **username_2**: Theoretically multiple blocks could be mined at nearly the same time in different parts of the network, but the blocks are relayed very quickly so that window is very short. Furthermore, you will never know multiple blocks exist unless you happen to have nodes in different parts of the network that happen to witness that event because 1 of the blocks will be discarded and only 1 will eventually be added to the chain (because the others would contain some transactions that exist in the other block, making them double spends -> invalid)  

---

