Skip to content
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

feat: Enforce service specific rate limits #2032

Closed
5 tasks done
Tracked by #3069
Ivansete-status opened this issue Sep 14, 2023 · 3 comments
Closed
5 tasks done
Tracked by #3069

feat: Enforce service specific rate limits #2032

Ivansete-status opened this issue Sep 14, 2023 · 3 comments
Assignees
Labels
E:nwaku Node Bandwidth Management Features effort/weeks Estimated to be completed in a few weeks

Comments

@Ivansete-status
Copy link
Collaborator

Ivansete-status commented Sep 14, 2023

Problem

We are aiming to enforce DoS protection per libp2p services.

In this feature, we consider the limitation applied to the non-Relay protocols (lightpush, peer exchange, store, filter.) because the Relay protocol will benefit from the RLN protection.

Suggested solution

  1. Apply different limits per service (lightpush, peer exchange, store, rendezvous, filter.)
  2. Apply one single limit to be followed by all the libp2p protocols

Additional context

The issue originated from this great proposal: waku-org/go-waku#667

Acceptance criteria

  • Be able to measure which is the normal use of each protocol. Regarding bandwidth and request rate. Then, the limit should be a certain rate higher than the normal or average usage.

Tasks

@chair28980
Copy link
Contributor

@NagyZoltanPeter @Ivansete-status does the completion of #1809 cover the acceptance criteria here? Safe to close this issue?

@NagyZoltanPeter
Copy link
Contributor

@NagyZoltanPeter @Ivansete-status does the completion of #1809 cover the acceptance criteria here? Safe to close this issue?

@chair28980 @Ivansete-status : I would not close this one yet.
I'm about to finish phase2 of this. Last week I redesinged a bit the phase1 rate limit implementation in order to be more generic applicable to all non-relay protocols. Will be PR on THU this week. It will address Alvaro's concerns he made on the phase1 and will add bandwidth metrics also.

@NagyZoltanPeter
Copy link
Contributor

Rate limiting DOS protection is added to store(v2-v3), lightpush, filter and peer-exchange protocols.
Fully configurable from the cli individually to each protocol.
Protocol metrics support tracking of server and rejected request rates, in-out traffic rates.
Bandwidth usage (in-net/gros, out) per shard over relay metrics and dashboard also included.
Dashboard is deployed.

Last part - peer-exchange DOS protection and full CLI config - will be released with nwaku v0.33.0.

Dashboard metrics of this feature:
image
image
image
image
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
E:nwaku Node Bandwidth Management Features effort/weeks Estimated to be completed in a few weeks
Projects
Archived in project
Development

No branches or pull requests

4 participants