-
Notifications
You must be signed in to change notification settings - Fork 41
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
Rate Limiting for RPC Service / EVM and Metrics (backoff periods) #2270
Open
dirvine
wants to merge
4,937
commits into
maidsafe:main
Choose a base branch
from
dirvine:cpu
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
feat: print for peers connected and net size in loud mode
feat(autonomi): implement client events
BREAKING CHANGE: services configured by the node manager are no longer compatible with networks that are not EVM. The node manager `add` command now supports the following EVM arguments: * The subcommand for selecting the network type is appended. * The `evm-custom` subcommand makes the `--data-payments-address`, `--payment-token-address` and `--rpc-url` arguments available. * The `--rewards-address` argument is provided. The `CustomNetwork` type was modified to enable it to be serialized in the node manager registry.
…local feat: adapt node manager `add` command for evm network
…with_network_keys feat(node): using different storage dir for different network
The `autonomi_cli` binary is renamed to `autonomi` because the `_cli` suffix is not necessary. The crate is named `autonomi-cli` rather than `autonomi_cli` because we agreed we prefer underscores.
…_cli2 chore: rename autonomi crate and binary
uses node control flow to exit a node if we consistently detect high CPU
… range replication
merge the results after we see split record. Use Quorum::Majority at least (instead of Quorum::One)
this indirectly affects how many close nodes returned and could stymie the GetRange effectiveness
ie, even if query times out if we have peers, we update seems like we timeout more due to high K_VALUE
feat(kad): reduce bootstrap interval
feat(autonomi): allow the uploader to work with the new apis
fix(launchpad): update status after resetting
fix(launchpad): rewards address req to start nodes
This is a utility for the user's reference. The owner name field is removed from the output. It doesn't serve much purpose without the Discord link.
fix(launchpad): throbber stops after a while
feat: print rewards address in `status --details`
chore(network): logging multiple fetched versions
Revert "feat(autonomi): allow the uploader to work with the new apis"
* Implements per-IP and global rate limiting for RPC endpoints * Adds resource exhaustion error handling * Removes unused metrics buffer fields * Fixes replication manager concurrency control
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Rate Limiting for RPC Service
Summary
This PR introduces rate limiting to the SafeNode RPC service to prevent potential abuse and ensure service stability. It implements both global and per-IP rate limiting using the
governor
crate.Changes
Technical Details
governor
crate for efficient rate limitingMutex
Testing
Related Issues
Closes #XXXX (CPU usage issues)
Future Improvements