Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: Felicity_Tide on July 12, 2024, 04:33:39 AM



Title: Are there specific attributes that qualifies a reliable node?
Post by: Felicity_Tide on July 12, 2024, 04:33:39 AM
So recently, I have been trying to understand the basic knowledge behind how the generic-seeder works. I came across few statements that caught my attention..

Quote from: guapcrypto    link=https://github.com/guapcrypto/DNS-Seeder/blob/main/README.md
The generic-seeder is a blockchain network crawler that maintains a list of IP addresses of the most reliable nodes on the network and shares those node IPs via DNS request to anyone requiring an entry point into the decentralized network.
https://github.com/guapcrypto/DNS-Seeder/blob/main/README.md

And also...

Quote
If you just want to crawl a network to get a list of the connectable nodes, without worrying about the DNS setup, you can do that too.

Aside from having genuine nodes (which ideally, should be the majority of nodes on the network), the quoted text above with the underlined phrases raised my curiosity, as those statements suggest that there are specific factors that qualify a node "as reliable", which am not aware of.

From a learner's perspective, the only thing that comes to mind in determining how reliable a node is, should probably be the block height. But on a second thought, there are other nodes that doesn't keep all historical data, like the prune node, which am not sure should be enough reason to consider them less reliable if they actually are(maybe am mistaken).

My questions are:
1. Based on the first quoted statement above, are there specific attributes that qualify a reliable node?.(for simplicity, when we say that a node is reliable, what makes it reliable?).
2. From the second quoted statement, connectable nodes was mentioned. Are there nodes that are connectable and those that are not connectable?. ( Incase full and prune node can be use as examples, I will appreciate that).



I am 100% open to correction as I still see myself as a learner. Pardon any of my error and share your personal opinion. You might want to also DYOR after reading this.



Title: Re: Are there specific attributes that qualifies a reliable node?
Post by: nc50lc on July 12, 2024, 05:23:22 AM
My questions are:
1. Based on the first quoted statement above, are there specific attributes that qualify a reliable node?.(for simplicity, when we say that a node is reliable, what makes it reliable?).
The "Features" part of readme document may have a brief explanation of that: https://github.com/guapcrypto/DNS-Seeder/blob/main/README.md?plain=1#L27-L38 (https://github.com/guapcrypto/DNS-Seeder/blob/05921fa913c3df2ad44df986444025f025296400/README.md?plain=1#L27-L38)
But to be precise, you'll have to audit their code to know exactly what they mean by those.

Quote from: Felicity_Tide
2. From the second quoted statement, connectable nodes was mentioned. Are there nodes that are connectable and those that are not connectable?
In a way, there are "not connectable" nodes which for example, those with listen=0 config which can connect to others, but others can't connect to.

But you're way overthinking that statement since the keyword is "list of the connectable nodes"
Since using the term "list of nodes" will just means 'all the nodes in the network' which is not the purpose of their app.


Title: Re: Are there specific attributes that qualifies a reliable node?
Post by: ABCbits on July 12, 2024, 09:23:58 AM
Quote from: Felicity_Tide
2. From the second quoted statement, connectable nodes was mentioned. Are there nodes that are connectable and those that are not connectable?
In a way, there are "not connectable" nodes which for example, those with listen=0 config which can connect to others, but others can't connect to.

But you're way overthinking that statement since the keyword is "list of the connectable nodes"
Since using the term "list of nodes" will just means 'all the nodes in the network' which is not the purpose of their app.

It's also worth to mention people usually would use term "accept incoming connection" and "doesn't accept incoming connection". And aside from listen=1, they may need to configure their router to enable port forwarding and check their ISP doesn't use CGNAT.