Author

Topic: Structure of Bitcoin nodes infrastructure (Read 242 times)

newbie
Activity: 2
Merit: 1
July 22, 2019, 02:42:50 AM
#6
Thank you all for the inputs. They are very useful and I will take them into account.
legendary
Activity: 3472
Merit: 10611
On the other hand, I can't tell if it's possible to differentiate pruned node and a full node if you're using a crawler to count them.
(crawler: used by those "node count" sites).

i believe you can although i have never tried it.
the obvious way is to just check and trust the version message they send you to decide based on their service flags as it was mentioned above. but another way would be to simply send a header request to try and get a certain old block at a low height. if they can't give it to you then they don't have it and that means you are connected to a pruned node.
legendary
Activity: 2534
Merit: 6080
Self-proclaimed Genius
This site (bitnodes) will show you the total number of "visible" nodes and the global distribution of all nodes but not the varieties.

However, you seemed to have researched beforehand and mistook "wallet" or "clients" for "nodes",
that's why you've included "SPV nodes" and "light nodes" in your list, these aren't nodes but clients and often called light wallet or light client.
Those light wallets weren't individually included to the total number because these type of clients doesn't directly connect to the (Bitcoin) network but to a server which is a full node.

On the other hand, I can't tell if it's possible to differentiate pruned node and a full node if you're using a crawler to count them.
(crawler: used by those "node count" sites).
legendary
Activity: 3472
Merit: 10611
By looking services offered by the nodes, such as NONE, NETWORK, GETUTXO, BLOOM, WITNESS & NETWORK_LIMITED. See https://github.com/bitcoin/bitcoin/blob/master/src/protocol.h#L247 for more info.

these service flags don't necessarily mean different nodes. they can be the same node that offer different services. for example a NodeBloom is the same full node that accepts bloom filters. technically you can disable it and reject bloom filters and still be the same full node.

as for SPV clients, there is no way to distinguish them to be able to count them and then say what percentage of the users are running SPV clients. that would require all nodes to cooperatively build a database of addresses they check with them and then count them which is obviously impossible not to mention the privacy issues.
legendary
Activity: 2870
Merit: 7490
Crypto Swap Exchange
What is the estimated percentage of bitcoin nodes that are full nodes (keeping the whole history) and what percentage are SPV nodes (which keep only the block hashes)?

I don't remember any website or service which have such detailed information.

Besides statistic of full nodes which accept incoming connection, Luke Dashjr write a software which shows total Bitcoin nodes at https://luke.dashjr.org/programs/bitcoin/files/charts/software.html

but it doesn't seem to tell us whether these nodes are full nodes, archival nodes, pruned nodes, light nodes, spv nodes

Those terms usually when we're talking about Ethereum. From what i've seen, most people only talk about full node & pruned full node.
SPV and light node usually not acknowledged as node.

Is there a way to somehow distinguish them?

By looking services offered by the nodes, such as NONE, NETWORK, GETUTXO, BLOOM, WITNESS & NETWORK_LIMITED. See https://github.com/bitcoin/bitcoin/blob/master/src/protocol.h#L247 for more info.

https://bitnodes.earn.com/nodes/ shows services of each known full nodes. But you still need to obtain & process those information manually to build statistic you need, fortunately they provide an API
newbie
Activity: 2
Merit: 1
I am doing research about Bitcoin nodes infrastructure and I am struggling with sources. I need estimates or sources that can help me.
My main question is:
What is the estimated percentage of bitcoin nodes that are full nodes (keeping the whole history) and what percentage are SPV nodes (which keep only the block hashes)?
There are different kinds of nodes. https://coin.dance/nodes tells us the distribution of different node implementations in the Bitcoin network, but it doesn't seem to tell us whether these nodes are full nodes, archival nodes, pruned nodes, light nodes, spv nodes... Is there a way to somehow distinguish them?

Thank you for any guidelines.
Jump to: