Bitcoin Stack Trade is a query and reply web site for Bitcoin crypto-currency fanatics. It solely takes a minute to enroll.
Anyone can ask a query
Anyone can reply
The perfect solutions are voted up and rise to the highest
These days there are DNS seeds and hardcoded IP addresses, however again within the day when Satoshi launched Bitcoin v0.1, how did new nodes connect with the remainder of the community? My preliminary thought was that the primary launch would have Satoshi’s IP handle hardcoded, however I could not discover something of the type within the supply code.
- The primary seed mechanism was IRC-based. There was a hardcoded IRC server and IRC channel (
#bitcoinon Freenode), and the Bitcoin shopper would connect with the server, and be a part of the channel with a nickname that encodes the shopper’s IP handle. Via that, it could obtain “JOIN” messages from different Bitcoin purchasers becoming a member of the channel, which might get inserted into its IP handle database.
- In model 0.2.12 (June 2010), hardcoded seed IPs have been added, as a fallback for when IRC seeding failed.
- In model 0.3.0 (June 2010), the IRC server was modified from Freenode to LFnet.
- In model 0.3.21 (April 2011), the DNS seeding mechanism was launched (however off by default).
- In model 0.3.22 (June 2011), the IRC seeding mechanism was prolonged to 100 channels as an alternative of 1, resulting from it rising too huge. Each shopper would randomly be a part of one of many channels.
- In model 0.3.24 (July 2011), DNS seeding was enabled by default.
- In model 0.6.0 (March 2012), the IRC seeding mechanism was turned off by default.
- In model 0.9.0 (March 2014), assist for the IRC seeding mechanism was fully faraway from the codebase.
Quoting from the wiki:
Along with studying and sharing its personal handle, the node realized about different node addresses through an IRC channel. See irc.cpp.
After studying its personal handle, a node encoded its personal handle right into a string for use as a nickname. Then, it randomly joined an IRC channel named between #bitcoin00 and #bitcoin99. Then it issued a WHO command. The thread learn the traces as they appeared within the channel and decoded the IP addresses of different nodes within the channel. It did this in a loop, without end, till the node was shutdown.
When the shopper found an handle from IRC, it set the timestamp on the handle to the present time, however it used a “penalty” of 51 minutes, which implies it appeared prefer it was really seen nearly an hour earlier.