2018-11-02 Video of p2p requirement meeting
Opened this issue ยท 3 comments
Here are my notes from the meetings, @djrtwo mentioned he was going to get them reviewed with EF's research team.
Tens of thousands of 'standard' nodes (i.e. non validating nodes) 300 validators per shard (a validator stays a month on a shard.), 1024 shards.
Sizing target: a standard node has typically 10 shards. Same for a validator. Obviously, we will also have smaller and/or very large nodes.
A shard has typically 10 peers, configurable, could go up to 100 or more. Current vision: each shard/peer has its own tcp connection to maximize independence. Could be revisited.
Peers are worldwide, locality/proximity is not taken into consideration while choosing the peers.
Obviously impacts latency. See https://arxiv.org/pdf/1801.03998v2.pdf for numbers: majority is between 100ms to 300ms.
Not sure if we have geographic clusters in practice today, anticipation is no. Bandwidth.: 3Mbits/seconds (~400KBytes/second), everything included, is a good objective for standard nodes. Could be increased for validators if necessary.
Impact:
For example if we have 1000 shards, 20000 nodes and 10 shards per node it means that a shard is replicated on 200 nodes. We haven't pushed this idea during the meeting (will we have 300 validators on top of this, or is it included).
Thank you for providing the summary, @nkeywal! Some comments and clarifying questions:
a standard node has typically 10 shards
Does that mean that a node with "standard" hardware that can handle ~1 Ethereum chain right now will need to be able to handle 10 shards in the future, or do we scale the hardware requirements by a factor of ~10? Because if we do the former, we effectively only scale by a factor of 100 instead of 1000 (at least if we ignore all non-sharding related improvements).
will we have 300 validators on top of this, or is it included
I'd say those come on top as the 20k nodes presumably don't include (pooled) miners at the moment either. But personally I think it would be great if the network would work even without any user nodes and only validators (i.e. 300 nodes per shard). The reason being that in the beginning there might be shards with nothing going on at all.
Does that mean that a node with "standard" hardware that can handle will need to be able to handle 10 shards in the future
imho, yes, more or less even if of course the average server capacity increases all the time.
I think it would be great if the network would work even without any user nodes and only validators (i.e. 300 nodes per shard)
+1, this would pay the people owning the nodes. However it will be difficult to hide that you're a validator if most or all nodes are validators.