status-react/test/cljs/status_im/test/transport
Roman Volosovskyi fe7c7088db
Use partitioned topic for discovery
Currently we use a single topic for discovery.
This provides the best obscurity at the cost of bandwidth, as a message
sent on the discovery topic will be received by any peer.
This PR changes this behavior and start listening on a partitioned
topic.
Each pk will be hashed to a limited number of topics.

Everytime someone is in a conversation with someone from another topic
they will have to listen as well to avoid loosing obscurity, because we
only forward messages that we also advertise in the bloom filter.

The choice for the number of partitions depends on 2 factors:

1) The expected number of users using the network
2) The average number of contacts each user

Any change to the discovery topic will need to be split across 3
releases, to avoid breaking compatibility:

1) Listen to the new and old topic, publish to the old topic
2) Listen to the new and old topic, publish to the new topic
3) Listen to the new topic, publish to the new topic

This is step 1.
2019-02-01 14:40:54 +02:00
..
core.cljs Use partitioned topic for discovery 2019-02-01 14:40:54 +02:00
partitioned_topic.cljs Use partitioned topic for discovery 2019-02-01 14:40:54 +02:00