<h2>No one cares</h2>
<p>(about what other miners are exactly working on)</p>
<p>Miners have no way of knowing the contents of block templates being used by other independent miners.</p>
<p>There is nothing in the Bitcoin network protocol that provides for miners to share what they are up to. Considering the speed at which miners must vary block templates, I imagine doing so would be infeasible or at least waste huge resources somewhat pointlessly.</p>
<p>The contents of those other block templates is of no interest. As soon as one miner publishes a valid block all other miners must abandon their work and restart mining regardless of what is in anyone's block templates.</p>
<h2>Don't knowingly buy expired lottery tickets</h2>
<p>(unless you have the resources to persuade the whole world the prior winner is unworthy?)</p>
<p>Continuing to work on a block template that includes a transaction that has already been confirmed would be pointless but, more importantly, The active blockchain is linear. Miners must always work on a block template that links back to the current head block. As soon as a new head appears on the active chain, miners must use it regardless whether the block is empty¹ or not, whether it contains transactions they had been working on or not.</p>
<p>Ultimately there can only be one block at any height n in the active chain. It is generally likely to be unproductive and wasteful to <em>knowingly</em> continue working to produce a second block at the same height as one you know about. The purpose of Blockchain reorganisations is to ensure that ultimately all Bitcoin nodes agree which chain is the active chain and therefore all agree exactly which block occurs at each height n.</p>
<hr />
<h2>Poolside chatter</h2>
<p>Miners working in a pool are subject to some form of coordination but I believe the description above remains valid more generally.</p>
<hr />
<h2>See also</h2>
<ul>
<li><a href="https://bitcoin.stackexchange.com/q/5540/13866">What does the term &quot;Longest chain&quot; mean?</a></li>
<li><a href="https://bitcoin.stackexchange.com/q/48374/13866">Mining and pending events</a></li>
<li><a href="https://bitcoin.stackexchange.com/q/22954/13866">Are there any mining pools that publish what transactions they will include?</a></li>
<li><a href="https://bitcoin.stackexchange.com/q/3941/13866">Does mining a block force others to restart their work?</a></li>
</ul>
<hr />
<h2>Notes</h2>
<ol>
<li>Containing no transactions other than the miner's coinbase transaction.</li>
</ol>

CC BY-SA 4.0
2022-06-12T10:22:53.473Z
`As soon as one miner publishes a valid block all other miners must abandon their work` - is this because the prevhash included in their block already exists in another mined block?
user93353
CC BY-SA 4.0
2022-06-12T10:24:31.803Z
So while miners are mining a block, there is a also another thread of the miner listening for new blocks being broadcast & if they find one, the listening threads sends a signal to mining thread to abandon the current mining.
user93353
CC BY-SA 4.0
2022-06-12T10:27:11.910Z
For a transaction receiver to acknowledge receipt, it is advised that he shouldn't accept a block as a valid block till few more blocks are appended to it. Why shouldn't this apply to miners also - what if the miner ends up abandoning his current work because a fraudulent mined block broadcast which he has received?
user93353
CC BY-SA 4.0
2022-06-12T10:41:13.870Z
Everyone, including miners, validate blocks. I don't think any block which passes validation can be regarded as fraudulent.
RedGrittyBrick
CC BY-SA 4.0
2022-06-12T10:44:53.600Z
I am referring to this - https://www.youtube.com/watch?v=bBC-nXj3Ng4&t=1195s - i.e. blocks can be fraudulent but it's rejected if there is another longer chain of blocks which doesn't contain this block.
user93353
CC BY-SA 4.0
2022-06-12T10:54:25.953Z
The basis for rejecting one chain in favour of another is simply it's length (or more accurately the accumulated work) - not its contents. It certainly needs no knowledge of other miners mempools or current use of mempool contents in block templates.
RedGrittyBrick
CC BY-SA 4.0
2022-06-12T16:38:26.073Z
The terminology used for various aspects of validation differs, but I like this one: there are validity rules (like transactions need valid signatures, subsidy must be respected, can't spend non-existing/spent coins) and chain selection rules (most PoW wins). There can be multiple competing *valid* chains, but nodes only consider one of those to be *active* (based on chain selection).
Pieter Wuille
CC BY-SA 4.0
2022-06-12T18:48:50.517Z
@Pieter thanks. I'll link to your answer at https://bitcoin.stackexchange.com/q/5540/13866
RedGrittyBrick
CC BY-SA 4.0
2022-06-12T10:19:43.493Z
2022-06-12T20:51:11.850Z
2022-06-12T20:51:11.850Z
RedGrittyBrick
<p>Assume there there 100 unconfirmed transactions currently in the MemPool. And the size of a block is such that it's roughly made up of 10 transactions.</p>
<p>Now when a miner completes the Proof of Work &amp; successfully adds his block to the blockchain, any other miner who has even one of those 10 transactions in the current block he is trying to mine is going to be unsuccessful.</p>
<p>So my questions are</p>
<ul>
<li><p>While the miners are trying to mine a block of transactions, do they also continuously keep checking (in parallel) where there is a new confirmed block in the system which includes even one of the transactions which is there in their ongoing mining block - so that they can abort their mining instead of only aborting it after they finish their work?</p>
</li>
<li><p>With everyone picking transactions to mine from the MemPool, isn't there a very, very high chance that before you finish completing your PoW, there will atleast be one new block which includes at least one of your 10 transactions?</p>
</li>
<li><p>Is there a way for a miner to check &amp; pick only those transactions which aren't already picked by someone else for mining?</p>
</li>
</ul>

<transactions><mining-theory><block><transaction-verification><mempool>
Is there a way to know how many of currently unconfirmed transactions in the MemPool is currently being attempted by other miners?
user93353
# Is there a way to know how many of currently unconfirmed transactions in the MemPool is currently being attempted by other miners?

(Asked by: username_0 on 2022-06-12)

Assume there there 100 unconfirmed transactions currently in the MemPool. And the size of a block is such that it's roughly made up of 10 transactions.

Now when a miner completes the Proof of Work & successfully adds his block to the blockchain, any other miner who has even one of those 10 transactions in the current block he is trying to mine is going to be unsuccessful.

So my questions are

* While the miners are trying to mine a block of transactions, do they also continuously keep checking (in parallel) where there is a new confirmed block in the system which includes even one of the transactions which is there in their ongoing mining block - so that they can abort their mining instead of only aborting it after they finish their work?
* With everyone picking transactions to mine from the MemPool, isn't there a very, very high chance that before you finish completing your PoW, there will atleast be one new block which includes at least one of your 10 transactions?
* Is there a way for a miner to check & pick only those transactions which aren't already picked by someone else for mining?

**Tags:** transactions, mining-theory, block, transaction-verification, mempool


---

## 1 answers

### Answer by username_1 on 2022-06-12. Score: 1

## No one cares

(about what other miners are exactly working on)

Miners have no way of knowing the contents of block templates being used by other independent miners.

There is nothing in the Bitcoin network protocol that provides for miners to share what they are up to. Considering the speed at which miners must vary block templates, I imagine doing so would be infeasible or at least waste huge resources somewhat pointlessly.

The contents of those other block templates is of no interest. As soon as one miner publishes a valid block all other miners must abandon their work and restart mining regardless of what is in anyone's block templates.

## Don't knowingly buy expired lottery tickets

(unless you have the resources to persuade the whole world the prior winner is unworthy?)

Continuing to work on a block template that includes a transaction that has already been confirmed would be pointless but, more importantly, The active blockchain is linear. Miners must always work on a block template that links back to the current head block. As soon as a new head appears on the active chain, miners must use it regardless whether the block is empty¹ or not, whether it contains transactions they had been working on or not.

Ultimately there can only be one block at any height n in the active chain. It is generally likely to be unproductive and wasteful to *knowingly* continue working to produce a second block at the same height as one you know about. The purpose of Blockchain reorganisations is to ensure that ultimately all Bitcoin nodes agree which chain is the active chain and therefore all agree exactly which block occurs at each height n.

---

## Poolside chatter

Miners working in a pool are subject to some form of coordination but I believe the description above remains valid more generally.

---

## See also

* [What does the term "Longest chain" mean?](https://bitcoin.stackexchange.com/q/5540/13866)
* [Mining and pending events](https://bitcoin.stackexchange.com/q/48374/13866)
* [Are there any mining pools that publish what transactions they will include?](https://bitcoin.stackexchange.com/q/22954/13866)
* [Does mining a block force others to restart their work?](https://bitcoin.stackexchange.com/q/3941/13866)

---

## Notes

1. Containing no transactions other than the miner's coinbase transaction.

> **Comments:**
> **username_0**: `As soon as one miner publishes a valid block all other miners must abandon their work` - is this because the prevhash included in their block already exists in another mined block?  
> **username_0**: So while miners are mining a block, there is a also another thread of the miner listening for new blocks being broadcast & if they find one, the listening threads sends a signal to mining thread to abandon the current mining.  
> **username_0**: For a transaction receiver to acknowledge receipt, it is advised that he shouldn't accept a block as a valid block till few more blocks are appended to it. Why shouldn't this apply to miners also - what if the miner ends up abandoning his current work because a fraudulent mined block broadcast which he has received?  
> **username_1**: Everyone, including miners, validate blocks. I don't think any block which passes validation can be regarded as fraudulent.  
> **username_0**: I am referring to this - https://www.youtube.com/watch?v=bBC-nXj3Ng4&t=1195s - i.e. blocks can be fraudulent but it's rejected if there is another longer chain of blocks which doesn't contain this block.  
> **username_1**: The basis for rejecting one chain in favour of another is simply it's length (or more accurately the accumulated work) - not its contents. It certainly needs no knowledge of other miners mempools or current use of mempool contents in block templates.  
> **username_2**: The terminology used for various aspects of validation differs, but I like this one: there are validity rules (like transactions need valid signatures, subsidy must be respected, can't spend non-existing/spent coins) and chain selection rules (most PoW wins). There can be multiple competing *valid* chains, but nodes only consider one of those to be *active* (based on chain selection).  
> **username_1**: @username_2 thanks. I'll link to your answer at https://bitcoin.stackexchange.com/q/5540/13866  

---

