Author

Topic: blockchain server and clients connection? (Read 1527 times)

member
Activity: 76
Merit: 10
January 09, 2012, 08:33:46 AM
#20
okay, thank you:)
full member
Activity: 210
Merit: 100
January 09, 2012, 04:50:53 AM
#19
I know that BTC use the same technique like torrent but it doesn't mean that I know technical side of torrents or BTC. so, I know that people get torrent file (movie file) from PC of other users of torrent or better said from those who have that movie file. but I didn't know if connection between torrent clients is made simply through home internet connection or through IRC.
as you said, client must discover other clients, therefore I thought all BTC clients use some channel of some IRC to discover other BTC clients and consequently ISP can block that IRC and block BTC connection. I just read this morning that some torrents make DHT trackers instead of http trackers.
so, I am agreed that you need some documentation for newbies about connections between BTC clients and how they discover each others and how they get blockchain, and try to avoid to use professional words which are not known to the people who are not programmers.

Ok, the issue here is that before you're going to invest your money and effort in a unique high-tech project you'd best do your homework first.
Not understanding the technology you're using is apt to get you in trouble.

The bitcoin wiki is should be sufficiently non-technical for a reasonably tech-savvy user to understand: https://en.bitcoin.it/wiki/Main_Page.

For your own sake, make sure you have familiarized yourself with wallet file, know its location, and how to protect it from theft (encryption) and data loss (backups of the ENCRYPTED wallet).

Never use bitcoin on a non-trusted machine (either a machine that you don't own, a machine not protected by current antivirus software, or a machine known to have been infected).
Bitcoin is to be treated just as seriously as internet banking. No encryption can help if there is malware on your machine reading your key-strokes.

Searching the forum (especially the Newbies subforum), you will see that all your questions had already been asked (and answered) time and time again.
legendary
Activity: 1050
Merit: 1000
You are WRONG!
January 09, 2012, 04:19:58 AM
#18
I know that BTC use the same technique like torrent but it doesn't mean that I know technical side of torrents or BTC. so, I know that people get torrent file (movie file) from PC of other users of torrent or better said from those who have that movie file. but I didn't know if connection between torrent clients is made simply through home internet connection or through IRC.
as you said, client must discover other clients, therefore I thought all BTC clients use some channel of some IRC to discover other BTC clients and consequently ISP can block that IRC and block BTC connection. I just read this morning that some torrents make DHT trackers instead of http trackers.
so, I am agreed that you need some documentation for newbies about connections between BTC clients and how they discover each others and how they get blockchain, and try to avoid to use professional words which are not known to the people who are not programmers.
have you ever heard about 'research'?
member
Activity: 76
Merit: 10
January 09, 2012, 04:16:37 AM
#17
I know that BTC use the same technique like torrent but it doesn't mean that I know technical side of torrents or BTC. so, I know that people get torrent file (movie file) from PC of other users of torrent or better said from those who have that movie file. but I didn't know if connection between torrent clients is made simply through home internet connection or through IRC.
as you said, client must discover other clients, therefore I thought all BTC clients use some channel of some IRC to discover other BTC clients and consequently ISP can block that IRC and block BTC connection. I just read this morning that some torrents make DHT trackers instead of http trackers.
so, I am agreed that you need some documentation for newbies about connections between BTC clients and how they discover each others and how they get blockchain, and try to avoid to use professional words which are not known to the people who are not programmers.
legendary
Activity: 1050
Merit: 1000
You are WRONG!
January 08, 2012, 01:48:22 PM
#16
We really need that "Bitcoin for dummies" manual ASAP.
indeed!

Quote
Don't lose your temper, Kokjo, nor the professional smile  Grin
but its hard to talk to less intelligent species, all the time! Tongue
but im trying, the newbies are here to learn, they are my young padawans! Cheesy
full member
Activity: 210
Merit: 100
January 08, 2012, 01:20:14 PM
#15
We really need that "Bitcoin for dummies" manual ASAP.
Should bitcoin gain traction at the CES it's gonna get crowded here in the Newb Central.

Don't lose your temper, Kokjo, nor the professional smile  Grin
legendary
Activity: 1050
Merit: 1000
You are WRONG!
January 08, 2012, 01:10:14 PM
#14
oh god! I hate newbies!
legendary
Activity: 1050
Merit: 1000
You are WRONG!
January 08, 2012, 01:09:09 PM
#13
do you know bittorrent? you know the protocol which you use to download movies and music?
GOOD!

bittorrent uses a tracker to bootstrap(finding other computer, downloading the same piece of data).
your bittorrent client DOES NOT download from a central server.

its the same thing with bitcoin. bitcoin is using DNS, IRC, and hardcoded-peers, to bootstrap.
these other peers, most of then have a complete blockchain, which you download from then.
and you are downloading different blocks, from different peers.
so THERE IS NO CENTRAL SERVER.
they could be replaced by a friend-to-friend network, where you know that one of your mates uses bitcoin. and you wants to, too. you ask him for his ip address, and connect to his bitcoin client. and his bitcoin client is already connected to other peers, that it tells the ip addresses, to your bitcoin client.

the only problem, with F2F networks, is that they are hard to get working, because you have to know someone that is already using bitcoin. therefor CENTRAL SERVER, are a better way to bootstrap a decentralized system, but it could work without them.
full member
Activity: 210
Merit: 100
January 08, 2012, 12:48:53 PM
#12
Once again, the PRIMARY source of bitcoin nodes (CLIENTS the same as yours) is the already downloaded block chain.
The SECONDARY source is by querying the DNS service.
The TERTIARY source is a hard-coded list of well-established bitcoin nodes. This list can be updated from version to version.
Should all of that fail, your client will try to interact with other nodes via IRC.

There are NO central servers.
donator
Activity: 1218
Merit: 1079
Gerald Davis
January 08, 2012, 12:41:30 PM
#11
thank you for answers,
well, if I understood good, BTC clients connect each with others with DNS/IRC connections (If those fail, it also has a small hardcoded list of servers to connect to).
so, IRC must be on server? it means BTC use server of IRC. ISP/Hackers/Government can block/hack IRC servers which are used by BTC? then agin in such case there is list of hardcoded servers which serve to BTC clients to make connections each with others. so, again, we depend from servers (which are hidden/hardcoded). that's how I understood it.
if BTC is open source, it means someone could find out which servers are in question and hack it. I just think logically (about security of our BTC), although it is clear that nobody hacked servers till now Smiley

so, back to the beginning of question/topic: blockchains are stored in bitcoin clients and new BTc client download/get it from other clients and connection between clients is done through IRC servers and some hidden/hardcoded servers.
by the way, if clients take blockchain each from other, it means someone had to secure that minimum one bitcoin client is working all the time without stopping. in other case, if all BTC clients are offline, new user could not get blockchain.

by the way, doomsday is nothing else than shut down of electricity by strong storms as it happen last days in Sweden (154,000 households stayed without electricity), Norway, and now in central Europe (Checkia, Slovakia, Poland).

Simple answer.  No.  Your assumptions are wrong and despite being correct continue to cling to them even after getting new information.

THERE ARE NO CENTRAL SERVERS.  THERE ARE NO CENTRAL SERVERS.  THERE ARE NO CENTRAL SERVERS.

Bitcoin treats all nodes equal.  If you are running the Bitcoin client then your node is equal to every other node in the world.  Hence PEER to PEER.  P2P not Peer to central server to Peer.  There are no central nodes, there are no server nodes, there are no secure nodes, there are no hidden nodes.  There are only nodes and your node distrusts all of them equally (notice distrusts not trusts).

Bitcoin uses a variety of mechanisms to bootstrap connections.  IRC is just one of them.  If you computer from any method (even someone emailing you an IP address) can find another node then the first thing it does is request a list of all nodes that node knows.  It then contacts every single one of those nodes and requests a list of all nodes those nodes knows and can quickly rebuild the entire mesh.

TLDR version:
THERE ARE NO SERVERS.


Quote
by the way, if clients take blockchain each from other, it means someone had to secure that minimum one bitcoin client is working all the time without stopping. in other case, if all BTC clients are offline, new user could not get blockchain.

No that would be a temporary outage.  To ensure new clients can never get the blockchain one would need to kill every single node and keep them offline forever until the end of time.
member
Activity: 76
Merit: 10
January 08, 2012, 12:03:20 PM
#10
thank you for answers,
well, if I understood good, BTC clients connect each with others with DNS/IRC connections (If those fail, it also has a small hardcoded list of servers to connect to).
so, IRC must be on server? it means BTC use server of IRC. ISP/Hackers/Government can block/hack IRC servers which are used by BTC? then agin in such case there is list of hardcoded servers which serve to BTC clients to make connections each with others. so, again, we depend from servers (which are hidden/hardcoded). that's how I understood it.
if BTC is open source, it means someone could find out which servers are in question and hack it. I just think logically (about security of our BTC), although it is clear that nobody hacked servers till now Smiley

so, back to the beginning of question/topic: blockchains are stored in bitcoin clients and new BTc client download/get it from other clients and connection between clients is done through IRC servers and some hidden/hardcoded servers.
by the way, if clients take blockchain each from other, it means someone had to secure that minimum one bitcoin client is working all the time without stopping. in other case, if all BTC clients are offline, new user could not get blockchain.

by the way, doomsday is nothing else than shut down of electricity by strong storms as it happen last days in Sweden (154,000 households stayed without electricity), Norway, and now in central Europe (Checkia, Slovakia, Poland).
full member
Activity: 210
Merit: 100
January 08, 2012, 11:11:36 AM
#9
Oh quit your doomsday rambling, Kokjo  Grin

I'm well able to imagine the counter examples. My point was, that scenario us extremely unlikely to happen.

The whole DNS system going down (and staying down) would result in a cataclysmic internet outage.
Routing problems at/below the ISP level can put any application to a screeching stop anyhow, there's no helping that.

I'm guessing a new user connecting for the first time during World War 3 outbreak might be unable to purchase their alpaca socks, poor bugger Smiley
legendary
Activity: 1050
Merit: 1000
You are WRONG!
January 08, 2012, 10:31:10 AM
#8
EDIT:: 5. Should all of the above fail (how on Earth would that happen?), the user can input the IP addresses manually using the -addnode parameter.
the internets is broken. DNS system down, cause fatal bug. IRC server not working.
full member
Activity: 210
Merit: 100
January 08, 2012, 09:45:11 AM
#7
At least three five methods can be used:
1. Provided the block chain database exists, there is information about other bitcoin nodes seen on the network stored inside.
2. DNS is used to locate a list of nodes connected to the network.
3. There is a list of hard-coded addresses compiled into the client itself.
EDIT:: 4. I forgot to mention the IRC connections: the clients are able to connect to a specific IRC channel (much like it's being done with botnets BTW ^^ )
EDIT:: 5. Should all of the above fail (how on Earth would that happen?), the user can input the IP addresses manually using the -addnode parameter.
rjk
sr. member
Activity: 448
Merit: 250
1ngldh
January 08, 2012, 09:41:00 AM
#6
Your client connects directly to other running bitcoin clients.
To connect to the network, the client has to find the address at least one computer already on the network.  Then that computer will give the client addresses of other clients.  Right?  How does it find the address of the first computer?
It bootstraps using DNS Seeds and IRC connections. If those fail, it also has a small hardcoded list of servers to connect to.
newbie
Activity: 11
Merit: 0
January 08, 2012, 09:36:30 AM
#5
Your client connects directly to other running bitcoin clients.
To connect to the network, the client has to find the address at least one computer already on the network.  Then that computer will give the client addresses of other clients.  Right?  How does it find the address of the first computer?
legendary
Activity: 1050
Merit: 1000
You are WRONG!
January 08, 2012, 09:35:32 AM
#4
Hi, I understand that blockchain is in fact database file of all transactions and now it is bigger than 1 GB.

no, you don't!
full member
Activity: 210
Merit: 100
January 08, 2012, 09:15:51 AM
#3
Here are a few Bitcoin facts in a nut shell:

THERE IS NO CENTRAL SEVER.
THERE IS NO TRUSTED THIRD PARTY FOR YOU TO TRUST.
YOU DISTRUST EVERYONE EQUALLY.

Your client connects directly to other running bitcoin clients.
The connections are as follows: BTC -> other BTC.

You have a copy of the entire block chain on your machine(1). Changes to the block chain occur as a series of new blocks.
As far as data integrity is concerned, the cryptographic hash of the first block (genesis block) is hard-coded into the client. For a new block to become accepted, it must have the correct hash of its predecessor(2).

Anything else I can do ya for?

Notes:
(1) Supposing you are a Windows user the block chain data resides in:
      - for Windows Vista and later: c:\Users\Your_user_name\Application Data\Roaming\Bitcoin
      - any older version of Windows: c:\Documents and Settings\Your_user_name\Application Data\Bitcoin

      Using Windows' environment variables, you can access that directory via %AppData%\Bitcoin in a universal, path- and version-agnostic manner.

(2) If someone's stored block chain has been modified (whether by accident or on purpose), the hashes in the transactions they send will be invalid and they will be ignored.
     Should that happen to you, the transactions you send will be ignored (won't get any confirmations). To fix this, bitcoin needs to be launched with the "--rescan" parameter which tells it to carefully check and fix the stored block chain.
newbie
Activity: 11
Merit: 0
January 08, 2012, 09:07:22 AM
#2
It's not stored on a server.  It's stored on all the other clients on the bitcoin network.  That's the beauty of a ptp network.  There is no central server to shut down. 

However, I'm curious whether my computer ever deletes part of the transaction history or if it just fills up my hard drive.

I don't know how the clients find each other on the internet without a central server.
member
Activity: 76
Merit: 10
January 08, 2012, 08:37:40 AM
#1
Hi, I understand that blockchain is in fact database file of all transactions and now it is bigger than 1 GB.

but I don't understand if this file is stored at some server (it means some hacker could hack server and destroy all bitcoins transaction) or this file is stored in every bitcoin client which is used by users of BTC?
if it is hosted at server, then my BTC client connect itself to the server to download/update blockchain file, if it is hosted in every BTC client, then mu BTC client connect itself with other BTC clients and overtake blockchain file from them. in second case, how my client choose from which client of other user it will overtake blockchain file? there are many users.

but even if file is overtaken from other users, my client must connect with other users clients through some server, so, government or hackers could attack server and stop all connections. so, does BTC use servers? I suppose there should be many servers, if one fail, other must continue to work its job.

so, connections would look like this:
my BTC -> server->my BTC
my BTC->server?->other BTC->server?->My BTC
Jump to: