Module adaptive_ratelimit

Module adaptive_ratelimit 

Source
Expand description

Adaptive rate limiting with dynamic adjustments based on peer behavior.

This module provides intelligent rate limiting that adapts to peer reputation, network conditions, and historical behavior. Unlike static rate limiting, adaptive rate limits increase for trusted peers and decrease for suspicious ones.

§Example

use chie_core::{AdaptiveRateLimiter, AdaptiveRateLimitConfig};

let config = AdaptiveRateLimitConfig {
    base_rate: 100,
    base_window_secs: 60,
    min_rate: 10,
    max_rate: 1000,
    ..Default::default()
};

let mut limiter = AdaptiveRateLimiter::new(config);

// Check if peer can make request
let peer_id = "peer1";
if limiter.check_rate_limit(peer_id, 0.9) {
    println!("Request allowed");
} else {
    println!("Rate limit exceeded");
}

Structs§

AdaptiveRateLimitConfig
Configuration for adaptive rate limiting.
AdaptiveRateLimiter
Adaptive rate limiter with dynamic adjustments.
GlobalRateLimitStats
Global rate limit statistics.
PeerRateLimitStats
Per-peer rate limit statistics.