- snip -
these IPs must be there somewhere in the code
- snip -
https://github.com/bitcoin/bitcoin/blob/05e1c85fb687c82ae477c72d4a7e2d6b0c692167/src/chainparams.cpp#L116vSeeds.push_back(CDNSSeedData("bitcoin.sipa.be", "seed.bitcoin.sipa.be", true)); // Pieter Wuille
vSeeds.push_back(CDNSSeedData("bluematt.me", "dnsseed.bluematt.me")); // Matt Corallo
vSeeds.push_back(CDNSSeedData("dashjr.org", "dnsseed.bitcoin.dashjr.org")); // Luke Dashjr
vSeeds.push_back(CDNSSeedData("bitcoinstats.com", "seed.bitcoinstats.com")); // Christian Decker
vSeeds.push_back(CDNSSeedData("xf2.org", "bitseed.xf2.org")); // Jeff Garzik
vSeeds.push_back(CDNSSeedData("bitcoin.jonasschnelli.ch", "seed.bitcoin.jonasschnelli.ch", true)); // Jonas Schnelli
If your node hasn't saved any previously connected nodes yet, then it can connect to these initially.
Once you are connected to the network, your peer will collect connection information about other nodes. The next time it starts up, it will use its own list of known peers.
1. Lets say, if I create an offline wallet and a secret using
https://www.bitaddress.org and never ever connect to internet while creating this address, how does all the blockchains stored in the world know that such address exists and that such address has that secret?
The blockchain doesn't know. It doesn't need to know.
How does a wallet address which is generated offline, works in online world.
Addresses don't actually exist at the blockchain or transaction level of the protocol. Addresses are just a shorthand that we humans use to make it easier to talk about transferring control over value. When we type an address into a wallet, the wallet understands what that means and converts the address into a transaction output script (essentially a small computer program) that is stored with the transaction in the blockchain. The script controls what a recipient must do to spend the bitcoins later.
So, when you tell someone to send you bitcoins at a particular address, you're actually asking them to create a script that will encumber a transaction output with a requirement that you will have to meet later when you want to spend those bitcoins.
(I know that to use those BTC, I will need to download entire blockchain or use some online wallet)
All you really need is to know for certain that the output is a valid output in the blockchain, and know what the script requirements are. Typically this is handled with a wallet, and many wallets handle this by downloading the entire blockchain, but technically it isn't necessary to download the entire blockchain or to use wallet software.
Edit - 1. I think, when any transaction is broadcasted, a secret key is also broadcasted.
No. Secrets are never broadcast. If they were, they would no longer be a secret. The secret key is always to be kept secure and not to be shared.
If the wallet address is being broadcasted for the 1st time to the blockchain network, the secret key is matched to that address. and so in future that secret keys gives me access to those bitcoins.
No. See my comments above about how transactions are built. Wallet addresses and secret keys are not broadcast or matched.