Difference between revisions of "Proxyd"
Jump to navigation
Jump to search
(24 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{lc}}<code>proxyd</code> is an [[RPC]] [[proxy]] | {{lc}}<code>proxyd</code> is an [[RPC]] [[proxy]] | ||
− | |||
* https://github.com/ethereum-optimism/infra/tree/main/proxyd | * https://github.com/ethereum-optimism/infra/tree/main/proxyd | ||
− | |||
− | |||
* Changelog: https://github.com/ethereum-optimism/infra/blob/main/proxyd/CHANGELOG.md | * Changelog: https://github.com/ethereum-optimism/infra/blob/main/proxyd/CHANGELOG.md | ||
* Config: https://github.com/ethereum-optimism/infra/blob/main/proxyd/config.go | * Config: https://github.com/ethereum-optimism/infra/blob/main/proxyd/config.go | ||
+ | ** [[Proxyd config example]]: https://github.com/ethereum-optimism/infra/blob/main/proxyd/example.config.toml | ||
+ | ** proxyd /etc/proxyd/[[proxyd.toml]]: <code>[[ws_method_whitelist]], [[response_timeout_seconds]], [[out_of_service_seconds]], [[max_latency_threshold]]</code> | ||
+ | * Releases: https://github.com/ethereum-optimism/infra/tags | ||
Features: | Features: | ||
− | * [[Whitelists]] [[RPC methods]] | + | * [[Whitelists]] [[RPC methods]] (<code>[[ws_method_whitelist]]</code>) |
* Routes RPC methods to groups of backend services | * Routes RPC methods to groups of backend services | ||
− | * Load balance requests across backend services | + | * [[Round-robin]] [[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 | ||
Line 21: | Line 21: | ||
− | * Applies [[rate limiting]] 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]]) | + | * 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]]) |
− | == | + | == [[Proxyd backend healthy]] == |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | == Errors examples == | ||
+ | [[Failed sync attempt]] to a7eaa64c50083f1xxxxxfd96eaabffd1c8f: one or more objects failed to apply, reason: error when patching | ||
+ | "/dev/shm/396xxxxx68": Deployment.apps "your-service" is invalid: spec.template.spec.containers[0].env[1].valueFrom: Invalid value: "": may not | ||
+ | be specified when `value` is not empty (retried 1 times). | ||
− | + | == [[Proxyd logs]] == | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | == Activities == | |
− | * | + | * Read [[Optimism Censorship Bug Disclosure]] |
− | |||
− | |||
== Related == | == Related == | ||
Line 53: | Line 41: | ||
* [[dRPC]] | * [[dRPC]] | ||
* [[Total number of primary candidates]] | * [[Total number of primary candidates]] | ||
− | * [[ | + | * [[RedisConfig]] |
+ | * [[Fallback]] | ||
== See also == | == See also == |
Latest revision as of 12:49, 21 October 2024
- 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
- Round-robin 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)
Proxyd backend healthy[edit]
Errors examples[edit]
Failed sync attempt to a7eaa64c50083f1xxxxxfd96eaabffd1c8f: one or more objects failed to apply, reason: error when patching "/dev/shm/396xxxxx68": Deployment.apps "your-service" is invalid: spec.template.spec.containers[0].env[1].valueFrom: Invalid value: "": may not be specified when `value` is not empty (retried 1 times).
Proxyd logs[edit]
Activities[edit]
Related[edit]
- Consensus
- Emerald Dshackle load balancer
- dRPC
- Total number of primary candidates
- RedisConfig
- Fallback
See also[edit]
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: