<blockquote>
<p>does this mean the miner doesn't need to verify the transactions in the mempool ?</p>
</blockquote>
<p>Miners must verify the transactions they include in a block, because if they don't, some invalid transaction may be included in the block. A block with an invalid transaction will not be accepted by the network, i.e. full nodes, which means that the miner wasted electricity and did not receive any reward.</p>
<p>Bitcoin block consists of:</p>
<ol>
<li>block header
<ul>
<li>version</li>
<li>prev_block</li>
<li>merkle_root</li>
<li>timestamp</li>
<li>bits</li>
<li>nonce</li>
</ul>
</li>
<li>transaction counter</li>
<li>transactions</li>
</ol>

CC BY-SA 4.0
2023-09-26T15:33:09.977Z
2023-09-26T15:33:09.977Z
dassd
<blockquote>
<p>Does this mean the miner doesn't need to verify the transactions in the mempool?</p>
</blockquote>
<p>The actual entity doing the hashing doesn't have to verify anything as long as they have a block header to mine on. But first someone (generally the mining pool) would have to have built such block header, and for that they would have to have gathered transactions from the mempool and built the block and then took the merkle root of the transactions. In this process they would have validated the transactions included.</p>

CC BY-SA 4.0
2023-09-26T22:32:44.430Z
You are right, but I am also right since I mentioned a real possibility.
fiatjaf
CC BY-SA 4.0
2023-09-26T18:37:51.163Z
2023-09-26T18:37:51.163Z
fiatjaf
<p>To my understanding, the miners solve the nonce to get a valid block header based on the difficulty target. In the header, you have the Merkle root, which is generated from the transactions included in the block. Based on the documentation, the nodes validate the transactions. Does this mean the miner doesn't need to verify the transactions in the mempool?</p>
<p>I have been searching for examples of what a block submission looks like. I know blocks can be submitted via the RPC. Even though this won't be practical, however, say I was building a miner. Does anyone know what format is used to submit the block concretely? Are there any known practical implementations understandable by dummies? Looking for code or whatever.</p>

CC BY-SA 4.0
2023-09-26T16:50:41.493Z
Does this answer your question? [What are the components of the raw block shown in this image?](https://bitcoin.stackexchange.com/questions/114108/what-are-the-components-of-the-raw-block-shown-in-this-image)
RedGrittyBrick
CC BY-SA 4.0
2023-09-26T18:38:29.943Z
These are two completely separate questions. Better edit it to be a single question and open a new question with the second paragraph.
fiatjaf
<block><mining-software><block-validity>
What is the format of a Bitcoin block body?
Edile
# What is the format of a Bitcoin block body?

(Asked by: username_0 on 2023-09-26)

To my understanding, the miners solve the nonce to get a valid block header based on the difficulty target. In the header, you have the Merkle root, which is generated from the transactions included in the block. Based on the documentation, the nodes validate the transactions. Does this mean the miner doesn't need to verify the transactions in the mempool?

I have been searching for examples of what a block submission looks like. I know blocks can be submitted via the RPC. Even though this won't be practical, however, say I was building a miner. Does anyone know what format is used to submit the block concretely? Are there any known practical implementations understandable by dummies? Looking for code or whatever.

**Tags:** block, mining-software, block-validity

> **Comments:**
> **username_1**: Does this answer your question? [What are the components of the raw block shown in this image?](https://bitcoin.stackexchange.com/questions/114108/what-are-the-components-of-the-raw-block-shown-in-this-image)  
> **username_2**: These are two completely separate questions. Better edit it to be a single question and open a new question with the second paragraph.  

---

## 2 answers

### Answer by username_3 on 2023-09-26. Score: 0

> does this mean the miner doesn't need to verify the transactions in the mempool ?

Miners must verify the transactions they include in a block, because if they don't, some invalid transaction may be included in the block. A block with an invalid transaction will not be accepted by the network, i.e. full nodes, which means that the miner wasted electricity and did not receive any reward.

Bitcoin block consists of:

1. block header
   * version
   * prev\_block
   * merkle\_root
   * timestamp
   * bits
   * nonce
2. transaction counter
3. transactions


---

### Answer by username_2 on 2023-09-26. Score: -1

> Does this mean the miner doesn't need to verify the transactions in the mempool?

The actual entity doing the hashing doesn't have to verify anything as long as they have a block header to mine on. But first someone (generally the mining pool) would have to have built such block header, and for that they would have to have gathered transactions from the mempool and built the block and then took the merkle root of the transactions. In this process they would have validated the transactions included.

> **Comments:**
> **username_2**: You are right, but I am also right since I mentioned a real possibility.  

---

