sort configs
This commit is contained in:
parent
d346b62e23
commit
337f5bc1f8
@ -15,6 +15,8 @@ volatile_redis_url = "redis://dev-vredis:6379/"
|
|||||||
redirect_public_url = "https://llamanodes.com/free-rpc-stats"
|
redirect_public_url = "https://llamanodes.com/free-rpc-stats"
|
||||||
redirect_user_url = "https://llamanodes.com/user-rpc-stats/{{user_id}}"
|
redirect_user_url = "https://llamanodes.com/user-rpc-stats/{{user_id}}"
|
||||||
|
|
||||||
|
# 0 = block all public requests
|
||||||
|
public_max_concurrent_requests = 5
|
||||||
# 0 = block all public requests
|
# 0 = block all public requests
|
||||||
public_requests_per_minute = 0
|
public_requests_per_minute = 0
|
||||||
|
|
||||||
|
@ -51,6 +51,7 @@ pub struct TopConfig {
|
|||||||
#[serde(deny_unknown_fields)]
|
#[serde(deny_unknown_fields)]
|
||||||
pub struct AppConfig {
|
pub struct AppConfig {
|
||||||
/// Request limit for allowed origins for anonymous users.
|
/// Request limit for allowed origins for anonymous users.
|
||||||
|
/// These requests get rate limited by IP.
|
||||||
pub allowed_origin_requests_per_minute: HashMap<String, u64>,
|
pub allowed_origin_requests_per_minute: HashMap<String, u64>,
|
||||||
|
|
||||||
/// EVM chain id. 1 for ETH
|
/// EVM chain id. 1 for ETH
|
||||||
@ -78,6 +79,11 @@ pub struct AppConfig {
|
|||||||
/// None = no code needed
|
/// None = no code needed
|
||||||
pub invite_code: Option<String>,
|
pub invite_code: Option<String>,
|
||||||
|
|
||||||
|
/// Rate limit for the login entrypoint.
|
||||||
|
/// This is separate from the rpc limits.
|
||||||
|
#[serde(default = "default_login_rate_limit_per_minute")]
|
||||||
|
pub login_rate_limit_per_minute: u64,
|
||||||
|
|
||||||
/// The soft limit prevents thundering herds as new blocks are seen.
|
/// The soft limit prevents thundering herds as new blocks are seen.
|
||||||
#[serde(default = "default_min_sum_soft_limit")]
|
#[serde(default = "default_min_sum_soft_limit")]
|
||||||
pub min_sum_soft_limit: u32,
|
pub min_sum_soft_limit: u32,
|
||||||
@ -86,30 +92,17 @@ pub struct AppConfig {
|
|||||||
#[serde(default = "default_min_synced_rpcs")]
|
#[serde(default = "default_min_synced_rpcs")]
|
||||||
pub min_synced_rpcs: usize,
|
pub min_synced_rpcs: usize,
|
||||||
|
|
||||||
/// Request limit for anonymous users.
|
|
||||||
/// Some(0) = block all requests
|
|
||||||
/// None = allow all requests
|
|
||||||
#[serde(default = "default_public_requests_per_minute")]
|
|
||||||
pub public_requests_per_minute: Option<u64>,
|
|
||||||
|
|
||||||
/// Concurrent request limit for anonymous users.
|
/// Concurrent request limit for anonymous users.
|
||||||
/// Some(0) = block all requests
|
/// Some(0) = block all requests
|
||||||
/// None = allow all requests
|
/// None = allow all requests
|
||||||
#[serde(default = "default_public_max_concurrent_requests")]
|
#[serde(default = "default_public_max_concurrent_requests")]
|
||||||
pub public_max_concurrent_requests: Option<usize>,
|
pub public_max_concurrent_requests: Option<usize>,
|
||||||
|
|
||||||
/// Rate limit for the login entrypoint.
|
/// Request limit for anonymous users.
|
||||||
/// This is separate from the rpc limits.
|
/// Some(0) = block all requests
|
||||||
#[serde(default = "default_login_rate_limit_per_minute")]
|
/// None = allow all requests
|
||||||
pub login_rate_limit_per_minute: u64,
|
#[serde(default = "default_public_requests_per_minute")]
|
||||||
|
pub public_requests_per_minute: Option<u64>,
|
||||||
/// Track rate limits in a redis (or compatible backend)
|
|
||||||
/// It is okay if this data is lost.
|
|
||||||
pub volatile_redis_url: Option<String>,
|
|
||||||
|
|
||||||
/// maximum size of the connection pool for the cache
|
|
||||||
/// If none, the minimum * 2 is used
|
|
||||||
pub volatile_redis_max_connections: Option<usize>,
|
|
||||||
|
|
||||||
/// RPC responses are cached locally
|
/// RPC responses are cached locally
|
||||||
#[serde(default = "default_response_cache_max_bytes")]
|
#[serde(default = "default_response_cache_max_bytes")]
|
||||||
@ -123,6 +116,14 @@ pub struct AppConfig {
|
|||||||
|
|
||||||
/// Optionally send errors to <https://sentry.io>
|
/// Optionally send errors to <https://sentry.io>
|
||||||
pub sentry_url: Option<String>,
|
pub sentry_url: Option<String>,
|
||||||
|
|
||||||
|
/// Track rate limits in a redis (or compatible backend)
|
||||||
|
/// It is okay if this data is lost.
|
||||||
|
pub volatile_redis_url: Option<String>,
|
||||||
|
|
||||||
|
/// maximum size of the connection pool for the cache
|
||||||
|
/// If none, the minimum * 2 is used
|
||||||
|
pub volatile_redis_max_connections: Option<usize>,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// This might cause a thundering herd!
|
/// This might cause a thundering herd!
|
||||||
|
Loading…
Reference in New Issue
Block a user