Post
Topic
Board Development & Technical Discussion
Re: 84 Gigabytes Per Month, Per Connection
by
TierNolan
on 06/05/2015, 08:59:08 UTC
That's what 20 MB blocks require.  That means, you receive the blockchain, that's 84 gigabytes per month.  You send the blockchain to one peer, that's another 84 gigabytes per month.

You don't have to send all blocks to all peers.  You send the block hash to all the peers, and only those who haven't already got it will ask you to send the full block.

On average, each node forwards it to one other node.

If your node is very well connected, then it may receive blocks earlier than others.  In that case, more of your peers will ask you for the block.

If each node limited the number of forwards, then bandwidth could be kept low.  If each node forwarded new blocks to 2 peers, then the blocks would still be flooded over the network.

It could have a long and short term setting.

This means that it can forward a new block up to 10 peers, but not if it has forwarded more than 2X blocks on average over the last 24 hours.

When a new block is received, it would add 2 to the block forwarding counter, up to a maximum of 288.  When a block is forwarded, it would decrement the total by 1.  Once the number hits zero, it would send a reject message when asked for a block.

Connecting to a node multiple times and asking for blocks could be used to consume all the slots.  To prevent a DOS attack, outgoing nodes would have to be given priority.

[Edit]

Thinking more, at minimum, the node would have to download 84GB per month just to stay synced, so 168GB per month on average per node (assuming average forwarding to one other node).