<p>A mining pool <em>does</em> need to store the entire blockchain, however that doesn't mean that every participant of the mining pool needs to store it.  Someone in the pool needs it, but not <em>everyone</em>.</p>

<p>Individuals in a pool can just be sent block headers and perform the proof-of-work without ever verifying the transactions themselves.  This does not require the full blockchain.  However, someone should have already verified the transactions ahead of time, and this node <em>does</em> need the blockchain.</p>

CC BY-SA 3.0
2018-03-27T03:14:08.157Z
You don't need the blockchain _at all_ to validate transactions. You need the UTXO set defined by all previous transactions in the chain, but there is no need to keep the actual chain around. A pruned node is sufficient.
Pieter Wuille
CC BY-SA 3.0
2018-01-21T14:32:38.380Z
2018-01-21T14:32:38.380Z
Jestin
<p>Yes, participants of the mining pool don't have to store anything certainly not the whole blockchain. What they need is the hash of the transaction included in the next block and the hash of the previous block.</p>

<p>The other part that has to be done but it’s the mining server that does it is validating transactions which can be a done by a pruned node minimizing the amount of data that has to be stored. </p>

CC BY-SA 3.0
2018-02-20T20:03:14.107Z
They don't need the current block either... They just need some pieces of the header, and a Merkle branch for the generation transaction.
Meni Rosenfeld
CC BY-SA 3.0
2018-02-21T02:35:43.703Z
Is this better?
Yitzchok
CC BY-SA 3.0
2018-02-21T23:00:27.847Z
I think it's not quite there yet. What they need is not a transaction - quite the opposite, they make up the transaction themselves. They need the Merkle branch that complements the transaction; and also the address to credit the pool. This is assuming that each work unit consists of multiple extraNonces; otherwise they don't need that, they are given the Merkle root and just use nonce and nTime rolling. If that's too complicated, you can just say that they need the header, it's not far from accurate.
Meni Rosenfeld
CC BY-SA 3.0
2018-02-20T16:47:42.663Z
2018-02-22T00:11:22.923Z
2018-02-22T00:11:22.923Z
Yitzchok
<p>Suppose I want to design generic crypto currency miner starting from scratch . By generic I mean it can be configured to support a large number of available crypto currencies.</p>

<p>This generic miner must be able to connect to mining pools for the coins it supports in addition to being able to mine solo. In the case that it is configured to connect to mining pool , it does not need to store the blockchain on the PC on which miner is running? In this case the blockchain is stored on the server running mining pool? In this case the miner PC only has the current block?</p>

<p>The answers to above questions do not depend on wether the miner is configured to use CPU or GPU or both?</p>

<bitcoin-core><blockchain><cryptography>
Do mining pools eliminate the need to store blockchain?
user61766
# Do mining pools eliminate the need to store blockchain?

(Asked by: username_0 on 2018-01-21)

Suppose I want to design generic crypto currency miner starting from scratch . By generic I mean it can be configured to support a large number of available crypto currencies.

This generic miner must be able to connect to mining pools for the coins it supports in addition to being able to mine solo. In the case that it is configured to connect to mining pool , it does not need to store the blockchain on the PC on which miner is running? In this case the blockchain is stored on the server running mining pool? In this case the miner PC only has the current block?

The answers to above questions do not depend on wether the miner is configured to use CPU or GPU or both?

**Tags:** bitcoin-core, blockchain, cryptography


---

## 2 answers

### Answer by username_1 on 2018-01-21. Score: 1

A mining pool *does* need to store the entire blockchain, however that doesn't mean that every participant of the mining pool needs to store it. Someone in the pool needs it, but not *everyone*.

Individuals in a pool can just be sent block headers and perform the proof-of-work without ever verifying the transactions themselves. This does not require the full blockchain. However, someone should have already verified the transactions ahead of time, and this node *does* need the blockchain.

> **Comments:**
> **username_2**: You don't need the blockchain _at all_ to validate transactions. You need the UTXO set defined by all previous transactions in the chain, but there is no need to keep the actual chain around. A pruned node is sufficient.  

---

### Answer by username_3 on 2018-02-20. Score: 0

Yes, participants of the mining pool don't have to store anything certainly not the whole blockchain. What they need is the hash of the transaction included in the next block and the hash of the previous block.

The other part that has to be done but it’s the mining server that does it is validating transactions which can be a done by a pruned node minimizing the amount of data that has to be stored.

> **Comments:**
> **username_4**: They don't need the current block either... They just need some pieces of the header, and a Merkle branch for the generation transaction.  
> **username_3**: Is this better?  
> **username_4**: I think it's not quite there yet. What they need is not a transaction - quite the opposite, they make up the transaction themselves. They need the Merkle branch that complements the transaction; and also the address to credit the pool. This is assuming that each work unit consists of multiple extraNonces; otherwise they don't need that, they are given the Merkle root and just use nonce and nTime rolling. If that's too complicated, you can just say that they need the header, it's not far from accurate.  

---

