feat(p2p): add circuit breaker to p2p client #963
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.
Describe the changes
Before:
P2P client made unbounded requests to failing peers.
After:
Implements circuit breaker pattern for peer connections. Failed peers are temporarily isolated, preventing cascade failures and improving network resilience.
Changes
Circuit Breaker Implementation
CircuitBreakerManager<K>with atomic state management and capacity enforcementP2P Integration
GossipClienttracks circuit breakers per peer mining addresscheck_health()returns false when circuit is openget_data,pull_data) check circuit breaker before requestsRelated Issue(s)
Please link to the issue(s) that will be closed with this PR.
Checklist
Additional Context
Add any other context about the pull request here.