Difference between revisions of "Proxyd"
Jump to navigation
Jump to search
(37 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | {{lc}}proxyd is an [[RPC]] [[proxy]] | + | {{lc}}<code>proxyd</code> is an [[RPC]] [[proxy]] |
− | * https://github.com/ethereum-optimism/optimism/ | + | * https://github.com/ethereum-optimism/infra/tree/main/proxyd |
+ | |||
+ | proxyd /etc/proxyd/[[proxyd.toml]] [[ws_method_whitelist]] | ||
+ | |||
+ | * Changelog: https://github.com/ethereum-optimism/infra/blob/main/proxyd/CHANGELOG.md | ||
+ | * Config: https://github.com/ethereum-optimism/infra/blob/main/proxyd/config.go | ||
+ | * Releases: https://github.com/ethereum-optimism/infra/tags | ||
Features: | Features: | ||
− | * [[Whitelists]] RPC methods | + | * [[Whitelists]] [[RPC methods]] ([[ws_method_whitelist]]) |
* Routes RPC methods to groups of backend services | * Routes RPC methods to groups of backend services | ||
* Load balance requests across backend services | * Load balance requests across backend services | ||
* Automatically [[retries]] failed backend requests | * Automatically [[retries]] failed backend requests | ||
* Cache immutable responses from backends | * Cache immutable responses from backends | ||
− | * Provides metrics to measure request latency, error rates | + | * Provides metrics to measure request latency, error rates |
[[Consensus]] related: | [[Consensus]] related: | ||
Line 15: | Line 21: | ||
* Re-write requests and responses to enforce consensus | * Re-write requests and responses to enforce consensus | ||
+ | |||
+ | * Applies [[rate limiting]] (<code>[[SenderRateLimitConfig]]</code>) on a per-sender basis to avoid being bombarded with signed transactions causing a DOS (Denial of Service) of the sequencer ([[Optimism Censorship Bug Disclosure]]) | ||
+ | |||
+ | == Logs == | ||
+ | |||
+ | ERROR | ||
+ | * <code>[[error forwarding request to backend]]</code> | ||
+ | * <code>[[Error forwarding RPC batch]]</code> | ||
+ | * <code>[[error serving requests]]</code> | ||
+ | * <code>[[error proxying websocket]]</code> | ||
+ | * <code>[[error writing clientConn message]]</code> | ||
+ | |||
+ | |||
+ | WARN | ||
+ | * <code>[[backend request failed, trying again]]</code> | ||
+ | * <code>[[backend banned - not healthy]]</code> | ||
+ | * <code>[[backend banned - unexpected block tags]]</code> | ||
+ | * <code>proxied requests' [[XFF]] header will not contain the proxyd ip address</code> | ||
+ | * <code>[[peer count responded with 200 and 0 peers]]</code> | ||
+ | * <code>[[failed request]]</code> | ||
+ | * <code>[[error updating backend]]</code> | ||
+ | * <code>[[backend broke consensus]]</code> | ||
+ | |||
+ | INFO | ||
+ | * <code>[[starting proxyd]]</code> | ||
+ | * <code>[[Updating CA certificates.]]</code> | ||
+ | * <code>[[Running CMD.]]</code> | ||
+ | |||
+ | == Activities == | ||
+ | * Read [[Optimism Censorship Bug Disclosure]] | ||
== Related == | == Related == | ||
* [[Consensus]] | * [[Consensus]] | ||
* [[Emerald Dshackle]] [[load balancer]] | * [[Emerald Dshackle]] [[load balancer]] | ||
+ | * [[dRPC]] | ||
+ | * [[Total number of primary candidates]] | ||
+ | * [[RedisConfig]] | ||
+ | * [[Fallback]] | ||
== See also == | == See also == | ||
+ | * {{proxyd}} | ||
* {{op-}} | * {{op-}} | ||
− | |||
[[Category:Optisism]] | [[Category:Optisism]] |
Revision as of 11:42, 30 September 2024
proxyd /etc/proxyd/proxyd.toml ws_method_whitelist
- Changelog: https://github.com/ethereum-optimism/infra/blob/main/proxyd/CHANGELOG.md
- Config: https://github.com/ethereum-optimism/infra/blob/main/proxyd/config.go
- Releases: https://github.com/ethereum-optimism/infra/tags
Features:
- Whitelists RPC methods (ws_method_whitelist)
- Routes RPC methods to groups of backend services
- Load balance requests across backend services
- Automatically retries failed backend requests
- Cache immutable responses from backends
- Provides metrics to measure request latency, error rates
Consensus related:
- Track backend consensus (latest, safe, finalized blocks), peer count and sync state
- Re-write requests and responses to enforce consensus
- Applies rate limiting (
SenderRateLimitConfig
) on a per-sender basis to avoid being bombarded with signed transactions causing a DOS (Denial of Service) of the sequencer (Optimism Censorship Bug Disclosure)
Contents
Logs
ERROR
error forwarding request to backend
Error forwarding RPC batch
error serving requests
error proxying websocket
error writing clientConn message
WARN
backend request failed, trying again
backend banned - not healthy
backend banned - unexpected block tags
proxied requests' XFF header will not contain the proxyd ip address
peer count responded with 200 and 0 peers
failed request
error updating backend
backend broke consensus
INFO
Activities
Related
- Consensus
- Emerald Dshackle load balancer
- dRPC
- Total number of primary candidates
- RedisConfig
- Fallback
See also
proxyd, proxyd logs, config, routing_strategy, consensus_aware (deprecated), SenderRateLimitConfig
, Consensus awareness,ws_method_whitelist
, backend healthy, Proxyd logs- OP Stack:
op-, op-geth, op-node, op-proposer, op-batcher, op-contracts, op-challenger, op-heartbeat, op-ufm, op-service, op-deployer
, Snap Sync, op-conductor, op-dispute-mon
Advertising: