All miners are nodes but not all nodes are miners?

in #bitcoin7 years ago (edited)

I found this simple and helpful explanation on a Bitcoin talk forum for people who might be a little confused about the difference between nodes and miners.


Miners are nodes.

Nodes verify transactions that they receive and then relay them to other nodes. Those nodes verify the transactions they receive and then relay the transactions to more nodes. Those nodes verify the transactions they receive and then relay transactions to even more nodes, and so on.

Some of the nodes are also solo miners (or mining pools). You can be a node without being a miner, but you can't effectively solo-mine or operate a mining pool unless you are also a node. So, miners, or mining pools, are just special nodes that perform additional work.

The nodes that are miners (or pools) choose which transactions to include in a block, and in doing so they set the order of the transactions (which transactions happen earlier, and which happen later).

The nodes that are miners (or pools) MUST follow the consensus rules when they build their block. If they don't then ALL of the other nodes will refuse to relay their block and the block will simply be ignored by everyone as if it never existed. After they build the block with the transactions they wish to include, they begin the proof-of-work (hashing). A solo miner does the proof-of-work (hashing) all by themselves. A mining pool sends out the completed block to all the pool participants and asks them to do the proof-of-work (hashing) for them. You do not have to be a node if you are just doing the proof-of-work (hashing) for a mining pool. If the proof-of-work (hashing) is completed before the solo-miner (or pool) receives a valid block from someone else, then you have a successful block. The block is then sent to all connected nodes.

Nodes verify the block and all the transactions in the block, and then relay it to other nodes. Those nodes verify the block they receive and all transactions in the block and then relay the block to more nodes. Those nodes verify the block they receive and all transactions in the block and then relay the block to even more nodes, and so on.

So...

Every node verifies every transaction that it receives AND every block it receives before relaying that block to any other node. If the transaction (or block) is invalid, then it is ignored. It is not shared with anyone else and it is just discarded. If the transaction (or block) is valid, then it is stored by the node AND relayed to all other nodes that are connected to that node. In this way, every node enforces ALL of the consensus rules and prevents and node, user, wallet, or miner from sending anything on the network that breaks the consensus rules.

Miners (or mining pools) get to choose which VALID transactions get to be in the next block. The perform a proof-of-work to build a valid block. They will not create a block that breaks the consensus rules (since it will be rejected by all nodes).

Here's the link to the original publication


👉 Follow me on Twitter

🔐 Secure your crypto with a hardware wallet

💰 Start trading crypto on Binance

Sort:  

Resteemed your article. This article was resteemed because you are part of the New Steemians project. You can learn more about it here: https://steemit.com/introduceyourself/@gaman/new-steemians-project-launch

More noobs need to understand this. Here is a map and breakdown of all of the full bitcoin nodes, too (the majority in the USA): https://bitnodes.earn.com/

Coin Marketplace

STEEM 0.19
TRX 0.15
JST 0.029
BTC 63878.47
ETH 2625.83
USDT 1.00
SBD 2.79