Hacker News new | past | comments | ask | show | jobs | submit login

I mean to me the problem is how do you define a node? A node participating in consensus or any node? And if it's participating in consensus, is it counting only the nodes that participated in consensus since genesis or since some time in the past? All of these technologies are completely different.



The problem, if you go that route, is how you define participating in consensus.

Say I have a fully synced and always up to date Bitcoin node, running on a Pi in my closet, that I only use to make and receive payments, which I very rarely do. Then yes, that node did participate in consensus for those payments but it was practically asleep for all the other transactions happening in the network (it did validate all blocks, but it didn't have anything meaningful to say to the network).

I think a better metric is nodes that are economic actors, but that is hard to measure, since, like my example above, my node could be sitting in the closet and very rarely being used for actual transactions.

So maybe a even better metric then is potential economic actors? How many nodes that could, if needed, be practically used by people in carrying out actual useful transactions. But how do we measure that?


> it did validate all blocks, but it didn't have anything meaningful to say to the network

That is a bit of an understatement of its function. If a miner produced a bad block (with, say, 51 btc block subsidy), and it pushed that block onto the network to my node, it would reject it and not propagate that block to others. This is a meaningful feature that is often overlooked.

Looking at metrics like Realized Price and Illiquid Supply helps far more than looking at how many nodes are online.


Very good point, I didn't think about the propagation function of the nodes. Indeed, a node would only propagate blocks it accepts as valid.

But how does that help the network except by saving some bandwidth?

In the end, "bad" blocks will and should propagate and should be rejected by every node that decides that the block is "bad". There isn't one node that is a gatekeeper for "bad" blocks.

I think that whenever people talk about consensus, they think about it in terms of how a democracy works - and that is wrong, because Bitcoin is not democratic. It's not like if you nave n nodes, you need n/2+1 to agree on something and all the rest will be forced to agree to their decision. It's up to every individual node to enforce rules for their own transactions.


Nodes automatically forward valid blocks to all connected peers. This means that the initial miner would send it to, say, 100 peers, all of whom would reject it. Why send that block to anyone else, wasting resources and posing an attack vector (spamming the network with bad blocks, hogging resources and slowing/breaking the p2p network layer).


To participate in consensus in Bitcoin you'd have to mine a block, otherwise that doesn't count and I think most people would agree with that.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: