-
Notifications
You must be signed in to change notification settings - Fork 186
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
About the possibility to skip the HelloPacket #460
Comments
it is not as simple, without the hello packet the other nodes will not see them as part of their topics of interest. A possible approach is to have these supernodes send a hello packet in response from a lighter node and only include topics of common interst. This could work, until you connect two supernodes togethet, where it would break badly. |
Sounds good to me, but it raises some questions:
Maybe you will have other suggestions / remarks that will come to your mind if I describe you the complete flow:
|
ok, maybe |
On the architecture side, what you describe is very sane and i think it could work well. There shouldnt be an issue with supernodes having many topics and yes, it would make sense to use larger meshes and different gossip factors for them. |
Note that I will accept a pr implementing an option ( Basic outline would be to not emit the eager hello and respond to every subscription with the corresponding subscription if a topic of interest. |
We definitely need this feature for scalability reasons. Unfortunately, we have other, higher priority tasks to deal with at the moment. I can take care of it, but it will not be in the immediate future. |
At Berty we implement our conversation groups based on go-orbit-db stores (go-orbit-db is a golang port of js-orbit-db) which themselves rely on libp2p pubsub.
Since Berty users will need to exchange messages asynchronously (send a message to a receiver who's offline), we want to provide some highly available nodes. Their role would be to replicate the messages of a group to which they have been added (NB: they won't be able to decipher the messages) and forward messages to members of the conversation who were offline at the time of sending.
To do this, we would need to have some kind of supernode capable of subscribing to a very large amount of pubsub topics. But we are facing a problem: due to the gossip implementation, each peers on the pubsub will exchange the topics they are subscribed to (HelloPacket) and as mentionned on #402, it will silently fail if too many topics have been joined and the list exceeds the maximum message size. The supernodes we are planing to setup will rapidly reach this limit.
Do you think it would be possible / desirable to have a supernode mode for the pubsub that would not require to exchange the list of topics?
Do you have any suggestion on this?
The text was updated successfully, but these errors were encountered: