|
|
|
|
|
by joosters
3297 days ago
|
|
Plain 'nodes' weren't even a thing back in the early days of bitcoin. The original design envisaged all participants to be miners. It was only when mining became out of reach of ordinary computers that people started running nodes. They do very little, just sending and receiving bitcoin transactions, a task which the miners could do just as well by themselves. Nodes have no say in consensus, the miners can ignore them and decide which transactions they want to include. All a node can do about it is complain to itself. |
|
First, you have to understand what 'consensus' actually means :
> https://en.wikipedia.org/wiki/Consensus_%28computer_science%...
> A fundamental problem in distributed computing and multi-agent systems is to achieve overall system reliability in the presence of a number of faulty processes. This often requires processes to agree on some data value that is needed during computation. Examples of applications of consensus include whether to commit a transaction to a database (or, for example, committing blocks to a blockchain), agreeing on the identity of a leader, state machine replication, and atomic broadcasts. The real world applications include clock synchronization, PageRank, opinion formation, smart power grids, state estimation, control of UAVs, load balancing and others.
Nodes are the agents in a multi-agent system enforcing consensus.
Nodes accept incoming transactions and validate them. Miners don't. Nodes replicate transactions to other nodes. Miners don't. Miners take transactions from nodes, and order them in a block, and perform a hashing function on them (the only thing they do). Miners pass the new block to the node. The node validates the transactions in the block. Miners don't. The node validates the block. Miners don't. The node replicates the block to other nodes. Miners don't.
There is only one function that miners do. They take transactions, put them in a block, and hash them. As soon as a miner produces a block that any node determines does not obey consensus rules, it is rejected. It doesn't even matter if another node has already accepted, because consensus is aligned with all nodes. Any node that replicates non-consensus blocks or transactions is itself rejected.
So nodes accept the transactions, validate the transactions, replicate the transactions, maintain the mempools, validate the blocks, replicate the blocks, serve the blockchain, and store the blockchain. Nodes even define the PoW algorithm that miners have to employ.
Nodes maintain the protocol, not miners. It is thus. It has always been thus.
See for yourself. Download it.
https://bitcoin.org/en/download
It's currently at 0.14.2
https://bitcoin.org/en/full-node
> A full node is a program that fully validates transactions and blocks. Almost all full nodes also help the network by accepting transactions and blocks from other full nodes, validating those transactions and blocks, and then relaying them to further full nodes.
You should probably question how such a fundamental misunderstanding of how bitcoin works comes about. Is there a source for your opinion?