<p>To join the network, a Bitcoin full node will work its way through the network history, independently verifying the state of the network through time. So yes, each node will have downloaded and validated the entire transaction history, but a node can choose to use 'pruning mode', where it will discard unneeded transaction history after validation is complete. </p>

<p>The ever-increasing size of the blockchain is a heavy consideration when considering network and protocol updates. Bitcoin requires a distributed network in order to maintain its function, so it is important that the software can be run on inexpensive hardware, so that more people can participate.</p>

<blockquote>
  <p>ps: if i have to pay for a service using bitcoins, do i become a node of the blockchain ?</p>
</blockquote>

<p>There are other ways to interact with the network. Many wallets are lite-wallets, which validate the chain via headers instead of the entire block. This is a less robust security model, but it works well for many people. </p>

<p>You generally do not need to pay a service in order to interact with the network (as a full node, a lite-wallet, etc).</p>

CC BY-SA 4.0
2019-11-29T12:41:59.143Z
2019-11-29T13:06:58.910Z
2019-11-29T13:06:58.910Z
chytrik
<p>Full nodes by default store the entire blockchain. The current size of the blockchain is ~250GB, so it is feasible for individuals to have their own copy and verify all of the transactions. There is also the option to run Bitcoin in pruned mode, which reduces the number of transactions that need to be stored. This greatly reduces the storage space demands and it can still verify all the transactions.</p>

<p>However, not every node is a full node. There are lightweight nodes known as SPV nodes that don't verify the entire blockchain. Instead they can verify block headers and rely on a full node for the state of the blockchain.</p>

<p>More info on SPV nodes: <a href="https://gist.github.com/ariard/1034cd7624805d53334e80d4712fb8ee" rel="nofollow noreferrer">https://gist.github.com/ariard/1034cd7624805d53334e80d4712fb8ee</a></p>

<p>If you're paying for a service using Bitcoin, its very likely that the service provider is running a full node for you. You run your own node when you run the bitcoin software yourself. It's a a worth while experience and if you're interested in Bitcoin and want to help maintain its integrity you should consider running your own node.</p>

<p>What/how to run your own node: <a href="https://bitcoin.org/en/full-node#what-is-a-full-node" rel="nofollow noreferrer">https://bitcoin.org/en/full-node#what-is-a-full-node</a></p>

CC BY-SA 4.0
2019-11-29T12:43:31.327Z
re: *"Every full node has the entire blockchain"* -  this isn't true. Many full nodes run in pruning mode, allowing them to discard the vast majority of the block data, if they so choose.
chytrik
CC BY-SA 4.0
2019-11-29T12:52:31.617Z
@chytrik you're correct, I edited my answer and I believe it is right now.
Matthew Cruz
CC BY-SA 4.0
2019-11-29T14:49:44.457Z
Pruning has nothing to do with the Merkle tree. It's simply downloading and verifying the whole chain normally, but deleting old blocks once they have been verified.
Pieter Wuille
CC BY-SA 4.0
2019-11-29T15:20:38.420Z
@PieterWuille okay I edited my answer again. I was under the impression that if a transaction was pruned and needed to be verified the transactions would then need to be generated from the merkle root. Is just the block header sufficient for that?
Matthew Cruz
CC BY-SA 4.0
2019-11-29T16:20:28.243Z
Transactions are pruned _after_ they are verified. They don't need to be verified again. The Merkle root can be used to prove to lightweight (non-validating) clients that a transaction was part of a block, but that is unrelated to pruning.
Pieter Wuille
CC BY-SA 4.0
2019-11-29T12:39:25.453Z
2019-11-29T15:16:11.393Z
2019-11-29T15:16:11.393Z
Matthew Cruz
<p>As I read <a href="https://medium.com/@brendanrius/where-is-the-blockchain-stored-b7e9e00bc2c2" rel="nofollow noreferrer">in this blog article</a>, in a blockchain &quot;each node has a copy of all transactions ever made&quot;. This to me seems impossible, bitcoin has existed for a long time, and the memory size of the entire blockchain would be enormous.</p>
<p>ps: if I have to pay for a service using bitcoins, do I become a node of the blockchain?</p>

<blockchain><full-node><spv><storage-footprint>
Does every node have a whole copy of the blockchain?
AleWolf
# Does every node have a whole copy of the blockchain?

(Asked by: username_0 on 2019-11-29)

As I read [in this blog article](https://medium.com/@brendanrius/where-is-the-blockchain-stored-b7e9e00bc2c2), in a blockchain "each node has a copy of all transactions ever made". This to me seems impossible, bitcoin has existed for a long time, and the memory size of the entire blockchain would be enormous.

ps: if I have to pay for a service using bitcoins, do I become a node of the blockchain?

**Tags:** blockchain, full-node, spv, storage-footprint


---

## 2 answers

### Answer by username_1 on 2019-11-29. Score: 6

To join the network, a Bitcoin full node will work its way through the network history, independently verifying the state of the network through time. So yes, each node will have downloaded and validated the entire transaction history, but a node can choose to use 'pruning mode', where it will discard unneeded transaction history after validation is complete.

The ever-increasing size of the blockchain is a heavy consideration when considering network and protocol updates. Bitcoin requires a distributed network in order to maintain its function, so it is important that the software can be run on inexpensive hardware, so that more people can participate.

> ps: if i have to pay for a service using bitcoins, do i become a node of the blockchain ?

There are other ways to interact with the network. Many wallets are lite-wallets, which validate the chain via headers instead of the entire block. This is a less robust security model, but it works well for many people.

You generally do not need to pay a service in order to interact with the network (as a full node, a lite-wallet, etc).


---

### Answer by username_2 on 2019-11-29. Score: 1

Full nodes by default store the entire blockchain. The current size of the blockchain is ~250GB, so it is feasible for individuals to have their own copy and verify all of the transactions. There is also the option to run Bitcoin in pruned mode, which reduces the number of transactions that need to be stored. This greatly reduces the storage space demands and it can still verify all the transactions.

However, not every node is a full node. There are lightweight nodes known as SPV nodes that don't verify the entire blockchain. Instead they can verify block headers and rely on a full node for the state of the blockchain.

More info on SPV nodes: <https://gist.github.com/ariard/1034cd7624805d53334e80d4712fb8ee>

If you're paying for a service using Bitcoin, its very likely that the service provider is running a full node for you. You run your own node when you run the bitcoin software yourself. It's a a worth while experience and if you're interested in Bitcoin and want to help maintain its integrity you should consider running your own node.

What/how to run your own node: <https://bitcoin.org/en/full-node#what-is-a-full-node>

> **Comments:**
> **username_1**: re: *"Every full node has the entire blockchain"* -  this isn't true. Many full nodes run in pruning mode, allowing them to discard the vast majority of the block data, if they so choose.  
> **username_2**: @username_1 you're correct, I edited my answer and I believe it is right now.  
> **username_3**: Pruning has nothing to do with the Merkle tree. It's simply downloading and verifying the whole chain normally, but deleting old blocks once they have been verified.  
> **username_2**: @username_3 okay I edited my answer again. I was under the impression that if a transaction was pruned and needed to be verified the transactions would then need to be generated from the merkle root. Is just the block header sufficient for that?  
> **username_3**: Transactions are pruned _after_ they are verified. They don't need to be verified again. The Merkle root can be used to prove to lightweight (non-validating) clients that a transaction was part of a block, but that is unrelated to pruning.  

---

