124 lines
4.0 KiB
TOML
124 lines
4.0 KiB
TOML
# List of WS methods to whitelist.
|
|
ws_method_whitelist = [
|
|
"eth_subscribe",
|
|
"eth_call",
|
|
"eth_chainId"
|
|
]
|
|
# Enable WS on this backend group. There can only be one WS-enabled backend group.
|
|
ws_backend_group = "main"
|
|
|
|
[server]
|
|
# Host for the proxyd RPC server to listen on.
|
|
rpc_host = "0.0.0.0"
|
|
# Port for the above.
|
|
rpc_port = 8080
|
|
# Host for the proxyd WS server to listen on.
|
|
ws_host = "0.0.0.0"
|
|
# Port for the above
|
|
# Set the ws_port to 0 to disable WS
|
|
ws_port = 8085
|
|
# Maximum client body size, in bytes, that the server will accept.
|
|
max_body_size_bytes = 10485760
|
|
max_concurrent_rpcs = 1000
|
|
# Server log level
|
|
log_level = "info"
|
|
|
|
[redis]
|
|
# URL to a Redis instance.
|
|
url = "redis://localhost:6379"
|
|
|
|
[metrics]
|
|
# Whether or not to enable Prometheus metrics.
|
|
enabled = true
|
|
# Host for the Prometheus metrics endpoint to listen on.
|
|
host = "0.0.0.0"
|
|
# Port for the above.
|
|
port = 9761
|
|
|
|
[backend]
|
|
# How long proxyd should wait for a backend response before timing out.
|
|
response_timeout_seconds = 5
|
|
# Maximum response size, in bytes, that proxyd will accept from a backend.
|
|
max_response_size_bytes = 5242880
|
|
# Maximum number of times proxyd will try a backend before giving up.
|
|
max_retries = 3
|
|
# Number of seconds to wait before trying an unhealthy backend again.
|
|
out_of_service_seconds = 600
|
|
# Maximum latency accepted to serve requests, default 10s
|
|
max_latency_threshold = "30s"
|
|
# Maximum latency accepted to serve requests before degraded, default 5s
|
|
max_degraded_latency_threshold = "10s"
|
|
# Maximum error rate accepted to serve requests, default 0.5 (i.e. 50%)
|
|
max_error_rate_threshold = 0.3
|
|
|
|
[backends]
|
|
# A map of backends by name.
|
|
[backends.infura]
|
|
# The URL to contact the backend at. Will be read from the environment
|
|
# if an environment variable prefixed with $ is provided.
|
|
rpc_url = ""
|
|
# The WS URL to contact the backend at. Will be read from the environment
|
|
# if an environment variable prefixed with $ is provided.
|
|
ws_url = ""
|
|
username = ""
|
|
# An HTTP Basic password to authenticate with the backend. Will be read from
|
|
# the environment if an environment variable prefixed with $ is provided.
|
|
password = ""
|
|
max_rps = 3
|
|
max_ws_conns = 1
|
|
# Path to a custom root CA.
|
|
ca_file = ""
|
|
# Path to a custom client cert file.
|
|
client_cert_file = ""
|
|
# Path to a custom client key file.
|
|
client_key_file = ""
|
|
# Allows backends to skip peer count checking, default false
|
|
# consensus_skip_peer_count = true
|
|
# Specified the target method to get receipts, default "debug_getRawReceipts"
|
|
# See https://github.com/ethereum-optimism/optimism/blob/186e46a47647a51a658e699e9ff047d39444c2de/op-node/sources/receipts.go#L186-L253
|
|
consensus_receipts_target = "eth_getBlockReceipts"
|
|
|
|
[backends.alchemy]
|
|
rpc_url = ""
|
|
ws_url = ""
|
|
username = ""
|
|
password = ""
|
|
max_rps = 3
|
|
max_ws_conns = 1
|
|
consensus_receipts_target = "alchemy_getTransactionReceipts"
|
|
|
|
[backend_groups]
|
|
[backend_groups.main]
|
|
backends = ["infura"]
|
|
# Enable consensus awareness for backend group, making it act as a load balancer, default false
|
|
# consensus_aware = true
|
|
# Period in which the backend wont serve requests if banned, default 5m
|
|
# consensus_ban_period = "1m"
|
|
# Maximum delay for update the backend, default 30s
|
|
# consensus_max_update_threshold = "20s"
|
|
# Maximum block lag, default 8
|
|
# consensus_max_block_lag = 16
|
|
# Maximum block range (for eth_getLogs method), no default
|
|
# consensus_max_block_range = 20000
|
|
# Minimum peer count, default 3
|
|
# consensus_min_peer_count = 4
|
|
|
|
[backend_groups.alchemy]
|
|
backends = ["alchemy"]
|
|
|
|
# If the authentication group below is in the config,
|
|
# proxyd will only accept authenticated requests.
|
|
[authentication]
|
|
# Mapping of auth key to alias. The alias is used to provide a human-
|
|
# readable name for the auth key in monitoring. The auth key will be
|
|
# read from the environment if an environment variable prefixed with $
|
|
# is provided. Note that you will need to quote the environment variable
|
|
# in order for it to be value TOML, e.g. "$FOO_AUTH_KEY" = "foo_alias".
|
|
secret = "test"
|
|
|
|
# Mapping of methods to backend groups.
|
|
[rpc_method_mappings]
|
|
eth_call = "main"
|
|
eth_chainId = "main"
|
|
eth_blockNumber = "alchemy"
|