Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: cloud9 on June 04, 2011, 10:47:49 PM



Title: Are just the generating nodes propagating the blockchain among all nodes?
Post by: cloud9 on June 04, 2011, 10:47:49 PM
Are all nodes propagating the blockchain across the network - or only generating nodes?

If only generating nodes propagate the blockchain, does all Coin generators' nodes have an equal pro-rata ratio between cpu/gpu hash rate and connected network bandwidth to actually propagate the blockchain among new / non-generating nodes?

Or can a Coin generator's network traffic be throttled to a very low level and still have a hash rate share in the network of own hash rate divided by full network's hash rate?

Block chain propagation seems to be slowing - as more nodes are coming online and the cpu distribution is not equitable among all nodes (due to gpu's in use) and the nodes online for block generation/transmission is diminishing in ratio to non-generating nodes coming on line due to this fact?

http://forum.bitcoin.org/index.php?topic=1458.msg26046#msg26046

http://forum.bitcoin.org/index.php?topic=10860.msg155532#msg155532

Isn't this problematic for scaling the bitcoin network?


Title: Re: Are just the generating nodes propagating the blockchain among all nodes?
Post by: theboos on June 05, 2011, 01:05:52 AM
The normal bitcoin client propagates blocks (thereby the blockchain). I'm not actually sure if miners (or mining pools) propagate blocks or simply notify other clients of the new blocks that they find.

I know for certain that mining clients do not propagate blocks; their exclusive purpose is to take some data and a range of nonces, and hash the data plus a nonce until they get a result that the server is interested in. Mining clients have no interaction with the block chain.

Possible scaling problems of this type would arise from a large P2P network of any kind. An increase in clients increases the average number of intermediaries between two clients. However, the network right now is nearly instant. Additionally, the "Six Degrees of Separation" principle means that even if every person on earth runs a Bitcoin client, the propagation delay will be insignificant. An overload of the IRC server is a more likely problem of scalability.


Title: Re: Are just the generating nodes propagating the blockchain among all nodes?
Post by: theymos on June 05, 2011, 03:22:26 AM
As far as I know, latency is currently acceptable, though the simple broadcast network Bitcoin uses is known to be unscalable. In the future lightweight clients will connect to a few full nodes and not relay blocks/transactions. It will be a hub-based network like gnutella.


Title: Re: Are just the generating nodes propagating the blockchain among all nodes?
Post by: Stefan Thomas on June 05, 2011, 09:02:30 AM
First off, yes miners only send blocks to their eight neighbor nodes, I don't know of any attempts by pools to broadcast more aggressively their blocks, though that may happen in the future. (Since it can lower the -small- chance of another block coming out simultaneously.)

Bitcoin itself doesn't really assume or require low latency in the network. It can handle even a full network split gracefully in most circumstances. And yes, as theymos says, the future is probably a network with larger nodes serving multiple users.


Title: Re: Are just the generating nodes propagating the blockchain among all nodes?
Post by: cloud9 on June 05, 2011, 12:55:56 PM
Shouldn't a bandwidth requirement be brought in, other nodes can check each other's available bandwidth and reject a node if its cpu/gpu is out of ratio with its contributing bandwidth?  Is high cpu/gpu offline key solvers (just retrieving the puzzle and submit the solution if found) not a threat to future scalable efficient blockchain distribution?  What incentives are there for blockchain distribution?  Bandwidth is a great transfer cost contributor?  Is there a minimum number of nodes that should received the broadcasted solution from the winning node, based on network difficulty?


Title: Re: Are just the generating nodes propagating the blockchain among all nodes?
Post by: Stefan Thomas on June 05, 2011, 02:13:02 PM
Is high cpu/gpu offline key solvers (just retrieving the puzzle and submit the solution if found) not a threat to future scalable efficient blockchain distribution?

All mining is "offline" - "retrieving the puzzle and submit[ting] the solution if found" is exactly what all miners do. You can mine without including transactions, in which case you won't have to verify anything, but you also won't get any transaction fees. Users will offer transactions fees high enough to cover all costs involved in verifying transactions in order to get their transactions confirmed.


What incentives are there for blockchain distribution?

Anybody who wants to verify a transaction needs a full copy of the block chain since the oldest output used in that transaction. So at least miners will always have a copy of the chain. They will also want the public to be able to access this data, otherwise the Bitcoins they make while mining could not be spent anywhere.

Other parties like merchants, service providers, law enforcement, academia, NGOs, websites, etc. will also maintain full copies for various reasons.


Bandwidth is a great transfer cost contributor?

Others will be able to answer this better, but from what I understand ECDSA verification is expected to be the bottleneck, not network performance.