Commit Graph

223 Commits

Author SHA1 Message Date
cody-wang-cb
0fb094feb4
Move base rate rate limit check inside handleBatchRPC() (#37)
* move base rate rate limit check

* fix comment
2024-07-31 13:25:53 -07:00
Jacob Elias
ec84826c4c
fix: allow multicall channel to handle multiple items to avoid blocking after inital response is returned. Improve metrics reporting (#35) 2024-07-30 13:28:59 -05:00
Jacob Elias
d4382bfa19
feat: add multi call routing strategy (#26)
* feat: add multicall routing strategy
    * Updated proxyd config to accept a routing strategy parameter 
    * Added multicall routing strategies
    * Refactored backendGroup.Forward to handle multiple types of routing strategies
    * Background.ForwardToBackend now will return results via a channel
2024-07-22 16:44:27 -05:00
Jacob Elias
1babca422e
feat: Improve updateBackend error handling and node banning logic (#15)
- Return early on network errors or invalid responses within updateBackend (e.g., zero block height)
- Prevent premature node banning
- Use existing sliding windows for node banning for unexpected tags or excessive network errors
2024-06-26 15:54:53 -05:00
Jacob Elias
82c9581727 feat: linting fixes 2024-06-11 14:34:44 -05:00
Jacob Elias
c2101a4fbb v1 circle-ci configs for proxyd 2024-06-11 14:17:04 -05:00
Jacob Elias
cbcf9d3c3b feat: misc logging improvements for fallback mode (#10775) 2024-06-10 20:04:47 +00:00
Jacob Elias
584322fced feat: proxyd: enable consensus-proxyd be able to fallback to a different list of backends if the primary list is experiencing downtime. (#10668)
Co-authored-by: Jacob Elias <jacob@jacobs-apple-macbook-pro.phoenix-vibes.ts.net>
2024-06-04 23:19:54 +00:00
Hteev Oli
2f424fd5c6 proxyd: remove unused error (#10444) 2024-05-08 16:20:35 +00:00
dependabot[bot]
0a2c79cafa build(deps): bump github.com/ethereum/go-ethereum in /proxyd (#10413)
Bumps [github.com/ethereum/go-ethereum](https://github.com/ethereum/go-ethereum) from 1.13.14 to 1.13.15.
- [Release notes](https://github.com/ethereum/go-ethereum/releases)
- [Commits](https://github.com/ethereum/go-ethereum/compare/v1.13.14...v1.13.15)

---
updated-dependencies:
- dependency-name: github.com/ethereum/go-ethereum
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-06 17:24:36 +00:00
Danyal Prout
f2e64d3c28 Update proxyd blacklist status to match geth not found status (#10052) 2024-04-17 02:42:13 +00:00
tdot
094edc4fc6 feat(proxyd): customise poller interval and enable cross origin check on web socket upgrader (#10107)
* feat: poller interval arg

* fix: websocket check origin

* fix: check origin behind flag

* fix: rename poller default interval
2024-04-11 22:07:16 +00:00
sellskin
3a1b2633bb refactor: Optimize code by using built-in constants in the standard library (#9963)
Signed-off-by: sellskin <mydesk@yeah.net>
2024-04-09 16:54:15 +00:00
Roberto Bayardo
82b11f53b2 Update op-geth dependency to v1.101309.0-rc.2 (#9935)
* use updated op-geth

* update geth moar

* resource usage cleanup

* remove sleeping

* go: fix broken indirect dependency of github.com/kataras/iris/v12

* proxyd: update to geth v1.13.10

* proxyd: update to geth v1.13.14

* op-chain-ops: reduce diff, utilize chainID from caller to make Permit2 path use correct chainID during deployment

* op-chain-ops: L2 backend only, enable shanghai/canyon by default, fix doc comments

* op-chain-ops: simulator without L2 features, to support op-upgrade

---------

Co-authored-by: protolambda <proto@protolambda.com>
2024-04-04 02:15:15 +00:00
felipe
84a504dc39 feat(proxyd): ha redis namespace should be both backend group name and the namespace itself (#9955) 2024-03-25 18:10:11 +00:00
felipe
94c236b467 feat(proxyd): add smoke test (#9875) 2024-03-18 18:26:59 +00:00
felipe
fcf6e3323d feat(proxyd): use a specific redis instance for consensus_ha (#9877) 2024-03-18 18:26:39 +00:00
dependabot[bot]
89cb5f5057 build(deps): bump google.golang.org/protobuf in /proxyd (#9851)
Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0.

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-14 00:37:24 +00:00
felipe
08b38db217 fix(proxyd): log initialization (#9785)
* fix(proxyd): log initialization

* update integration test as well
2024-03-08 00:29:59 +00:00
felipe
f44f147313 feat(proxyd): change default cache ttl to 2 hours and make it configurable (#9645) 2024-02-23 21:58:00 +00:00
felipe
a6c9489376 feat(proxyd): improved consensus HA error reporting (#9647)
* feat(proxyd): improved consensus HA error reporting

* error metric should be a counter
2024-02-23 21:17:07 +00:00
Oak
97767bcfa3 fix: typo on cache_test eth_call (#9462) 2024-02-09 18:11:30 +00:00
Sebastian Stammler
6eaf7ee2b4 Update op-geth dependency to upstream geth v1.13.8 and migrate to slog (#8917)
* Update op-geth dependency (v1.13.8) & migrate to slog

* op-e2e: format system_test.go

* op-chain-ops/genesis: Ignore nil addresses in BuildL1DeveloperGenesis

* go: Update to latest op-geth

commit fb90ca39bc5c4f45e99ef320abfab85eeb56c561

* update latest op-geth dependency

* op-program,op-wheel: Use new StateDB.OpenStorageTrie

* all: fix more slog stuff after merging

* proxyd: update geth 1.13.8 & migrate to slog

* op-ufm: update monorepo dependency to prev commit

* testlog: Return pointer with FindLog

* genesis: Parse addresses from dump string keys in BuildL1DeveloperGenesis

* op-ufm: go mod tidy

* update to latest op-geth

* genesis: Update ForgeDump.UnmarshalJSON to latest geth types

* eth: Use hexutils.U256 instead of uint256.Int as type in ExecutionPayload

This fixes JSON mashaling.

* op-e2e: fix usage of legacy geth levels

* go: update latest op-geth dependency

* check-ecotone: adapt to field type change

* Resolve remaining TODOs

* op-program: remove json-pretty formatting option from test

* go: update to latest op-geth v1.101308.0-rc.1

* op-dispute-mon: Fix logger setup

* log: improve LevelFromString docs

* op-e2e/config: treat EthNodeVerbosity as legacy log level

* all: fix order of imports
2024-02-06 21:02:02 +00:00
dependabot[bot]
f635c50eb5 build(deps): bump golang.org/x/crypto from 0.14.0 to 0.17.0 in /proxyd (#8674)
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.14.0 to 0.17.0.
- [Commits](https://github.com/golang/crypto/compare/v0.14.0...v0.17.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-18 23:59:12 +00:00
felipe
b1522ace51 feat(proxyd): impl proxyd_healthz method (#8658) 2023-12-18 18:58:18 +00:00
Raffaele
ca17102998 fix: resolving dependabot vulnerabilities. (#8643)
* resolving dependabot vulnerabilities.
setting go-ethereum v.1.13.5 everywhere and grpc to v1.56.3

* fixing sum sha
2023-12-15 22:46:37 +00:00
Joshua Gutow
55757dfacd Aggregate typo fixes 2023-12-13 09:50:18 -08:00
Zach Howard
678577a389 proxyd: adds test case, docs for allowing pre-eip155 txns 2023-12-12 13:04:52 -05:00
Chomtana
a6a84c0078 fix: unmarshaling -> unmarshalling on other files 2023-12-11 23:06:56 +07:00
Matthew Slipper
e84a39a28f proxyd: Delete bad test
This test was originally checking for a panic in the websocket code. However, we have since re-architected this code and have coverage for this issue elsewhere. Therefore, this test is now superfluous and can be removed. It causes a lot of spam in the logs, and makes debugging other tests harder.
2023-12-07 14:57:17 -07:00
felipe
fef2f0f965 Merge pull request #7977 from danyalprout/proxyd-weighting
feat(proxyd): add weighting feature to node selection
2023-11-11 09:56:01 +00:00
kaliubuntu0206
adb397c21b proxyd: add example block range regulation params (#8039) 2023-11-11 01:54:25 -08:00
Danyal Prout
7175c46a00 feat(proxyd): ability to add additional headers to backend requests (#8134) 2023-11-11 01:52:09 -08:00
Danyal Prout
20dd9feaf7 Weighted shuffle list 2023-11-08 20:23:49 -06:00
Danyal Prout
2ac9981e00 Code review feedback 2023-11-05 20:07:39 -06:00
Danyal Prout
bd7bd24e66 Review feedback 2023-11-05 14:20:49 -06:00
Danyal Prout
a5a4a5108d proxyd: add weighting feature to node selection 2023-11-05 14:20:49 -06:00
Danyal Prout
798878e455 proxyd: configurable IP rate limit header 2023-11-02 14:38:04 -05:00
Felipe Andrade
22b7237389 feat(proxyd): support eip-1898 in tag rewritting 2023-10-27 15:38:20 -07:00
protolambda
92058943d8 ops: buildx bake and fix ci docker publish/release 2023-10-25 16:00:26 +02:00
felipe
c4c88f4307 fix(proxyd): alpine version should be 3.18 (#7781) 2023-10-21 14:33:42 -07:00
Felipe Andrade
7abc329946 go get -u all 2023-10-21 14:20:10 -07:00
Matthew Slipper
4ed4ae99ba proxyd: Handle oversize requests/backend responses
Under certain conditions, users could provide batch requests that cause the upstream Geth nodes to return very large responses. These responses were being handled improperly, and rather than returning an error were being truncated and leading to backends being marked as offline. This issue extended to large client requests as well.

This PR also enables `pprof` on proxyd, which was used to debug this problem.
2023-10-21 15:18:53 -06:00
Felipe Andrade
a064fe06c1 chore(proxyd): bump go to 1.21 and update dependencies 2023-10-21 13:22:29 -07:00
Danyal Prout
a3e2b12363 Remove space after comma 2023-10-19 21:02:12 -05:00
felipe andrade
2e2259a0d9 Merge pull request #7754 from ethereum-optimism/felipe/avoid-caching-empty-get-raw-receipts
feat(proxyd): avoid caching debug_getRawReceipts responses with 0 receipts
2023-10-19 20:50:30 +00:00
Felipe Andrade
fed302dd19 fix cache_test 2023-10-19 12:58:54 -07:00
Felipe Andrade
56df3a6892 add x-served-by header 2023-10-19 12:48:03 -07:00
Felipe Andrade
c82a9a08de fix consensus tests 2023-10-19 12:32:39 -07:00
Felipe Andrade
7986edeb26 betterer tests 2023-10-19 11:46:24 -07:00