-
Notifications
You must be signed in to change notification settings - Fork 0
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
Does the validation have access to IP addresses of peers, and blocking peers by IP addresses? #2
Comments
|
It is not something that the kubo RPC exposes, but it is something that our app needs, and for this we plan on writing a custom pubsub default validator. The reason that I believe we need it (could be wrong), is that our protocol works like this:
The community owner is confirmed because the pubsub topic is a hash of his public key. We need to block IP addresses to block a potential spam attack where an attacker would spam infinite |
So if I read the subtext correctly, banning PeerIDs is not sufficient as it's easy to generate more keys, banning IPs is a stronger response? The way I see it, the spec leave space for the service provider to implement filtering/banning however makes sense. That can include the service keeping a log of origin IPs from where filtered message came from, and then take the decision to filter the IP entirely (or even an IP range). That could fit in the "generic validation", without application specific logic. It's debatable of course, but if that's sufficient we better keep the spec simple and not expose the source IP. |
The Kubo pubsub RPC API exposes the PeerID of the message sender. I think preventing topic DDOs is important and should be a priority even if the first version doesn't implement it. What would be nice is at least to give developers an API to add filters for a topic, a bit similar to what ipfs swarm filters add/rm provides, but ideally using PeerIDs instead of IPs. |
There is What exactly that filtering is is unspecified (on purpose), but should at the minimum include (because that's the obvious, no edge case behavior):
After that, the server/service is free to go as far as it makes sense:
|
Sounds good to me. Thank you for your work on this spec. off-topic: Would be nice to have this implemented as a kubo plugin, don't know if that's possible. |
This is something our app requires.
The text was updated successfully, but these errors were encountered: