What is wrong?
We use a global topic for nodes to broadcast their ShardPreference, informing nodes which nodes are listening in which shards. Even though a ShardPreference only occupies SHARD_COUNT bits, along with more bytes occupied by packet headers, it still might be an issue when the number of nodes in the sharding P2P network grows to a really big number.
It might also be a problem that, ShardPreference is not easily verified. Therefore, scams are not easily avoidable. A node can connect to the the node who just broadcast the ShardPreference and ask for Proof-of-Custody things to verify if the node actually listens to that shard. However, it is still quite tricky.
How can it be fixed?
Find other peer discovery approaches.
Possible options we already had in mind are
- 2 DHTs, one is used dedicatedly to translate
peerID to IP and port, while another one is used for peer discovery. Its key should correlate with shardID and possibly peerID(?), and the value is peerID.
- It's just an idea. I'm not sure if it works or not.
- rendezvous protocol
- Is it quite experimental?
- DHT providers with topics(example is here )
- Others
Edit: added "scamming through ShardPreference channel" in "What is wrong?"
What is wrong?
We use a global topic for nodes to broadcast their
ShardPreference, informing nodes which nodes are listening in which shards. Even though aShardPreferenceonly occupiesSHARD_COUNTbits, along with more bytes occupied by packet headers, it still might be an issue when the number of nodes in the sharding P2P network grows to a really big number.It might also be a problem that,
ShardPreferenceis not easily verified. Therefore, scams are not easily avoidable. A node can connect to the the node who just broadcast theShardPreferenceand ask for Proof-of-Custody things to verify if the node actually listens to that shard. However, it is still quite tricky.How can it be fixed?
Find other peer discovery approaches.
Possible options we already had in mind are
peerIDto IP and port, while another one is used for peer discovery. Its key should correlate withshardIDand possiblypeerID(?), and the value ispeerID.Edit: added "scamming through
ShardPreferencechannel" in "What is wrong?"