[app] chain_id = 1 # a database is optional. it is used for user authentication and accounting # TODO: how do we find the optimal db_max_connections? too high actually ends up being slower db_max_connections = 99 db_url = "mysql://root:dev_web3_proxy@127.0.0.1:13306/dev_web3_proxy" # thundering herd protection # only mark a block as the head block if the sum of their soft limits is greater than or equal to min_sum_soft_limit min_sum_soft_limit = 2_000 # only mark a block as the head block if the number of servers with it is great than or equal to min_synced_rpcs min_synced_rpcs = 2 # redis is optional. it is used for rate limits set by `hard_limit` # TODO: how do we find the optimal redis_max_connections? too high actually ends up being slower volatile_redis_max_connections = 300 volatile_redis_url = "redis://127.0.0.1:16379/" redirect_public_url = "https://llamanodes.com/public-rpc" # redirect_rpc_key_url only does something if db_url is set redirect_rpc_key_url = "https://llamanodes.com/dashboard/keys?key={rpc_key_id}" # sentry is optional. it is used for browsing error logs # sentry_url = "https://SENTRY_KEY_A.ingest.sentry.io/SENTRY_KEY_B" # public limits are when no key is used. these are instead grouped by ip # 0 = block all public requests public_max_concurrent_requests = 3 # 0 = block all public requests public_requests_per_period = 200 # 10GB of cache response_cache_max_bytes = 10_000_000_000 # allowed_origin_requests_per_period changes the min_sum_soft_limit for requests with the specified (AND SPOOFABLE) Origin header # origins not in the list for requests without an rpc_key will use public_requests_per_period instead [app.allowed_origin_requests_per_period] "https://chainlist.org" = 1_000 [balanced_rpcs] [balanced_rpcs.ankr] display_name = "Ankr" url = "https://rpc.ankr.com/eth" soft_limit = 1_000 weight = 0 [balanced_rpcs.cloudflare] display_name = "Cloudflare" url = "https://cloudflare-eth.com" soft_limit = 1_000 weight = 10 [balanced_rpcs.blastapi] display_name = "Blast" url = "https://eth-mainnet.public.blastapi.io" soft_limit = 1_000 weight = 10 [balanced_rpcs.mycryptoapi] display_name = "MyCrypto" disabled = true url = "https://api.mycryptoapi.com/eth" soft_limit = 1_000 weight = 25 [balanced_rpcs.pokt-v1] display_name = "Pokt #1" url = "https://eth-mainnet.gateway.pokt.network/v1/5f3453978e354ab992c4da79" soft_limit = 500 weight = 25 [balanced_rpcs.pokt] display_name = "Pokt #2" url = "https://eth-rpc.gateway.pokt.network" soft_limit = 500 weight = 50 [balanced_rpcs.runonflux] display_name = "Run on Flux (light)" url = "https://ethereumnodelight.app.runonflux.io" soft_limit = 1_000 weight = 75 [balanced_rpcs.linkpool] display_name = "Linkpool" url = "https://main-rpc.linkpool.io" soft_limit = 500 weight = 75 # load balanced light nodes are not very reliable [balanced_rpcs.linkpool-light] display_name = "Linkpool (light)" disabled = true url = "https://main-light.eth.linkpool.io" soft_limit = 100 weight = 75 [private_rpcs] # these worked well on ETH 1.0, but 2.0 ends up not working as well. we will re-assess as more validators turn on private transactions [private_rpcs.eden] disabled = true display_name = "Eden network" url = "https://api.edennetwork.io/v1/" soft_limit = 1_805 weight = 0 [private_rpcs.eden_beta] disabled = true display_name = "Eden network beta" url = "https://api.edennetwork.io/v1/beta" soft_limit = 5_861 weight = 0 [private_rpcs.ethermine] disabled = true display_name = "Ethermine" url = "https://rpc.ethermine.org" soft_limit = 5_861 weight = 0 [private_rpcs.flashbots] disabled = true display_name = "Flashbots Fast" url = "https://rpc.flashbots.net/fast" soft_limit = 7_074 weight = 0 [private_rpcs.securerpc] disabled = true display_name = "SecureRPC" url = "https://gibson.securerpc.com/v1" soft_limit = 4_560 weight = 0