Non-mining nodes have no power or influence over the networks state. It is the mining nodes who decide which chain lives and which chain dies.
Having more non mining nodes to store and relay blocks is beneficial to decentralization, but they have no influence over which chain becomes the longest chain.
Also, block validity includes more than just proof-of-work. Each node ultimately decides which block it accepts or rejects. The protocol defines the minimum criteria for a block to be valid, but each node may independently apply additional criteria that must be met. If all nodes decide to reject a protocol-valid block that a miner produces, then the block will be orphaned -- it won't matter how many descendant blocks get built on it, because the rest of the network will ignore them all. In fact, this is the mechanism by which a user-activated soft fork works [1].
For example, consider what would happen if a miner produced a block that tried to spend a Segwit output without consideration of the witness. Under the Bitcoin protocol, this is technically allowed -- a Segwit output looks like an anyone-can-spend output. But due to the extra Segwit rules, only pre-Segwit nodes would accept and relay this block. Considering that nearly all exchanges, wallets, custodians, etc. apply the Segwit rules, this would mean that this block would be treated as invalid and its coinbase rendered effectively unspendable. Even if 100% of the Bitcoin miners tried to build on top of this Bitcoin-valid but Segwit-invalid block, all their blocks would be similarly rejected. Only pre-Segwit Bitcoin nodes would accept these blocks, but hardly anyone runs them [1] (note that Segwit support first appeared in version 0.16; there are indeed still some people running pre-Segwit nodes).
[1] https://luke.dashjr.org/programs/bitcoin/files/charts/softwa...
Also you are linking to a person who thinks the sun revolves around the earth and that there is nothing wrong with slavery because the bible says so.
I never said that they can't. I said that other nodes can choose to ignore them.
> Also you are linking to a person who thinks the sun revolves around the earth and that there is nothing wrong with slavery because the bible says so.
No disagreement there. The only reason I linked to his site is because it's the only Bitcoin network status page I'm aware of that has a fine-grained breakdown of Bitcoin user-agent strings. Do you have a better link?
Who cares? That doesn't matter at all. Other miners will pick up the found block and any node that ignores what they are doing will just unsync themselves and become useless.
> Do you have a better link?
For the thing that's irrelevant to anything we are talking about? I'll get right on that.
What good is a block if no exchange or wallet will accept it (and its coins) as valid? Miners aren't all-powerful entities in a blockchain. In order to have any say at all in the blockchain's behavior (let alone cash out their coins), they (1) need other nodes to recognize their blocks as valid, and (2) need a reliable underlying network to propagate their blocks. If no one accepts a miner's block, or if the block cannot be propagated, then it's the _miner_ that's useless.
Like, this is distributed systems 101 stuff. If your node broadcasts a message, and no one accepts it, then your node is dead for all intents and purposes. If 100% of miners are producing blocks that the rest of the network isn't accepting, then 100% of the miners are effectively dead.
To think of this concretely, what do you think would happen if 100% of Bitcoin miners suddenly stopped honoring Segwit witness data, and started mining blocks that claimed Segwit transaction outputs as their own (which is technically allowed, since they are marked as anyone-can-spend)? Pre-Segwit nodes would accept these blocks (my aforementioned link shows that such nodes exist on the network today), but do you think Segwit-aware nodes would accept them?
> For the thing that's irrelevant to anything we are talking about? I'll get right on that.
You sound like a very pleasant person.
It only matters what the other miners accept. If all the miners accept a block but "exchanges and nodes don't", then they have stopped updating their chain. What are they updating to if it isn't what the miners agree on?
> (1) need other nodes to recognize their blocks as valid,
No, they need other miners to accept their blocks and build on top of them.
> (2) need a reliable underlying network to propagate their blocks.
They have that, it's called the internet. Do you think broadcasting 1 MB blocks is difficult?
> If 100% of miners are producing blocks that the rest of the network isn't accepting, then 100% of the miners are effectively dead.
The miners are the network. If they all agree the other can either relay their chain or do nothing. There is only the chain the miners agree on. What exactly do you think relay nodes will do if they don't relay what the miners create?
> You sound like a very pleasant person.
This is the cry of someone who can't explain what they claim. I don't know where you formed a solidified but completely wrong idea in your head, but someone mislead you.
To recap: There is what the miners agree on or there is nothing. Relay nodes have no say in what a valid block is. They can relay valid blocks or not.
> This is the cry of someone who can't explain what they claim. I don't know where you formed a solidified but completely wrong idea in your head, but someone mislead you.
Before you reply, why don't you try checking my profile? I think you will find that it is you who are mistaken.
Update: ah he provided the answer by inviting us to investigate his profile.
He is trying to build a layer on top of bitcoin, and perhaps /he/ relies on non-mining consensus for /his/ uses of tokens /on top of/ bitcoin.
So it would make sense for him to proliferate a fabricated notion that non-mining nodes are important /to bitcoin/ itself.
Miners can broadcast to anyone they want and nodes can't find or manipulate blocks, so they take the role of passive helpers.