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

I've read the technical docs for bitcoin, but something I still don't comprehend. With a distributed network like Bitcoin, how does the initial network get started? How do the first 2 or 4 or 12 nodes of a network find one another?



Satoshi posts a link to the software to a cryptography forum, and gets 2-3 other people to download it and try it.... and then people begin to dream of the possibilities...


Right - but how do those first nodes "find" one another from a technical / networking / communication standpoint?

Edit: I'll answer my own question.

Apparently the current method is to use DNS seeds. Known relatively-permanent node addresses are hardcoded into the client software in order to enable initial connectivity to the network. Once they achieve this initial connection, they're able to obtain additional addresses from the nodes already operating on the network.

After this initial network connectivity is achieved, the addresses are saved, so upon relaunch re-connect attempts are made to the database of previously found nodes. If these fail, then you fallback to the DNS seeds to start the process over.

IRC used to previously be the communication network used to initiate the client connectivity, but this has been deprecated since the network is now more self-sufficient.

https://en.bitcoin.it/wiki/Satoshi_Client_Node_Discovery

http://stackoverflow.com/questions/19956088/how-do-two-bitco...


That's completely correct. In order the node tries it's inbuilt knowledge of the network, the falls back to DNS seed nodes to discover peers, then falls back to hardcoded nodes if all of those fail. If no single peer can be contacted the node is dead in the water, and needs manual intervention to help get bootstrapped.


Short version: some IPs/___domain names are hardcoded in the source code. Long version: https://en.bitcoin.it/wiki/Satoshi_Client_Node_Discovery‎




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

Search: