Matthew Slipper
e8bf87363d
Merge pull request #4894 from ethereum-optimism/develop
...
Develop -> Master
2023-02-15 09:33:54 -07:00
mergify[bot]
c8e0fa5676
Merge pull request #4891 from ethereum-optimism/feat/global-method-rl
...
proxyd: Add global flag to method overrides
2023-02-15 15:21:17 +00:00
Matthew Slipper
c17bcc9b83
proxyd: Add global flag to method overrides
...
This allows us to set global limits on individual RPCs that ignore any origin/user agent exemption.
2023-02-15 00:44:19 -07:00
Matthew Slipper
454bc10e44
Merge pull request #4797 from ethereum-optimism/bugfix/include-nonce-in-rate-limit
...
proxyd: Add nonce to sender-based rate limit
2023-01-27 12:42:30 -07:00
Matthew Slipper
d7c80a5a8c
proxyd: Add nonce to sender-based rate limit
2023-01-27 12:36:20 -07:00
mergify[bot]
8648b410b9
Merge pull request #4796 from ethereum-optimism/inphi/proxyd-log
...
proxyd: Add missing req_id to log entry
2023-01-27 18:39:55 +00:00
inphi
2a87efb68a
proxyd: Add missing req_id to log entry
2023-01-27 13:23:20 -05:00
Matthew Slipper
d1fbb44e03
Merge pull request #4769 from ethereum-optimism/develop
...
Develop -> Master
2023-01-23 12:36:45 -07:00
Matthew Slipper
f66cedbef5
Merge pull request #4768 from ethereum-optimism/changeset-release/master
...
Version Packages
2023-01-23 12:36:14 -07:00
github-actions[bot]
868d622e4f
Version Packages
2023-01-23 19:35:31 +00:00
mergify[bot]
98a303ae77
Merge pull request #4759 from ethereum-optimism/feat/sender-rate-limit
...
proxyd: Add sender-based rate limiter
2023-01-23 18:04:55 +00:00
Matthew Slipper
aa3a5c859a
proxyd: Add sender-based rate limiter
...
This PR adds a sender-based rate limiter to proxyd. This rate limiter throttles eth_sendRawTransaction requests based on sender in order to prevent abusive behavior on the sequencer.
Integration tests have been added to test this functionality.
2023-01-23 10:59:40 -07:00
Matthew Slipper
19562c34a9
Merge pull request #3750 from ethereum-optimism/develop
...
Develop -> Master
2022-10-20 10:43:49 -06:00
Matthew Slipper
928c30a48e
Merge pull request #3749 from ethereum-optimism/changeset-release/master
...
Version Packages
2022-10-20 10:43:32 -06:00
Matthew Slipper
1eceebb814
Merge pull request #3747 from ethereum-optimism/develop
...
Develop -> Master
2022-10-20 10:38:56 -06:00
Matthew Slipper
d81385e34c
Merge pull request #3746 from ethereum-optimism/changeset-release/master
...
Version Packages
2022-10-20 10:38:40 -06:00
Matthew Slipper
8afcf75d2b
Merge pull request #3724 from ethereum-optimism/develop
...
Develop -> Master
2022-10-17 18:22:07 -05:00
Matthew Slipper
3c8e654aba
Merge pull request #3723 from ethereum-optimism/changeset-release/master
...
Version Packages
2022-10-17 18:21:49 -05:00
github-actions[bot]
f1b582c385
Version Packages
2022-10-17 23:21:20 +00:00
Matthew Slipper
813a22ba27
Merge pull request #3722 from ethereum-optimism/develop
...
Develop -> Master
2022-10-17 18:19:47 -05:00
mergify[bot]
ce9f585d3e
Merge pull request #3700 from ethereum-optimism/feat/proxyd-allow-backend-lim-disable
...
proxyd: Allow disabling backend rate limiting
2022-10-17 16:01:48 +00:00
mergify[bot]
019f800e90
Merge branch 'develop' into feat/proxyd-allow-backend-lim-disable
2022-10-17 15:53:44 +00:00
mergify[bot]
43f0e88f5b
Merge pull request #3708 from ethereum-optimism/feat/pattern-origins
...
proxyd: Support pattern matching in origin and user agent
2022-10-17 15:18:22 +00:00
Matthew Slipper
fe8a89e61d
proxyd: Support pattern matching in origin and user agent
...
Adds support for pattern matchin in exempt origins. This should help with some of the issues Synthetix and others are seeing.
2022-10-17 07:08:33 -06:00
Matthew Slipper
fd5e974bd5
fix tests
2022-10-15 09:59:11 -05:00
Zach Howard
24a3668bc8
adds log level conf to proxyd ( #3704 )
2022-10-14 13:56:27 -05:00
Matthew Slipper
8a624bb2ca
proxyd: Allow disabling backend rate limiting
...
The backend rate limiter is in place to protect upstreams like the sequencer. However, in many cases it isn't needed and it causes unnecessary requests to Redis. This PR allows this to be disabled, and disables this by default.
2022-10-13 15:02:35 -05:00
Matthew Slipper
caea9831b2
Merge pull request #3699 from ethereum-optimism/develop
...
Develop -> Master
2022-10-13 12:53:27 -05:00
Matthew Slipper
53a58bcdc8
Merge pull request #3698 from ethereum-optimism/changeset-release/master
...
Version Packages
2022-10-13 12:52:59 -05:00
github-actions[bot]
053ce4ddfd
Version Packages
2022-10-13 15:32:03 +00:00
Matthew Slipper
82ab59b8c7
Merge pull request #3697 from ethereum-optimism/develop
...
Develop -> Master
2022-10-13 10:29:30 -05:00
Matthew Slipper
3f19d26ea8
Merge pull request #3681 from ethereum-optimism/10-09-proxyd_Integrate_custom_rate_limiter
...
proxyd: Integrate custom rate limiter
2022-10-12 15:34:14 -05:00
Matthew Slipper
7fd63c6c6c
Merge pull request #3679 from ethereum-optimism/10-09-proxyd_Custom_rate_limiter_implementation
...
proxyd: Custom rate limiter implementation
2022-10-12 15:34:02 -05:00
Matthew Slipper
f737002baa
proxyd: Integrate custom rate limiter
...
Integrates the custom rate limiter in the previous PR into the rest of the application. Also takes the opportunity to clean up how we instantiate Redis clients so that we can share them among multiple different services.
There are some config changes in this PR. Specifically, you must specify a `base_rate` and `base_interval` in the rate limit config.
2022-10-11 17:20:23 -05:00
Matthew Slipper
fa7425683a
proxyd: Custom rate limiter implementation
...
Our current proxyd deployment does not share rate limit state across multiple servers within a backend group. This means that rate limits on the public endpoint are artifically high.
This PR adds a Redis-based rate limiter to fix this problem. While our current rate limiting library (github.com/sethvargo/go-limiter) _does_ support Redis, the client library it uses is not type safe, is less performant, and would require us to update the other places we use Redis. To avoid these issues, I created a simple rate limiting interface with both Redis and memory backend.
Note that this PR only adds the new implementations - it does not integrate them with the rest of the codebase. I'll do that in a separate PR to make review easier.
2022-10-11 17:20:23 -05:00
Chris Wessels
15a59bad99
fix(proxyd): Fix compliance with JSON-RPC 2.0 spec by adding optional RPCError.Data ( #3683 )
...
* fix: add optional data field to RPCError struct
* fix: formatting lint
* feat(proxyd): add changeset
2022-10-11 08:51:02 -06:00
Matthew Slipper
8476e1b194
Merge pull request #3604 from ethereum-optimism/develop
...
Develop -> Master
2022-09-28 19:37:57 -06:00
Matthew Slipper
7cadaca188
Merge pull request #3603 from ethereum-optimism/changeset-release/master
...
Version Packages
2022-09-28 19:37:23 -06:00
github-actions[bot]
09552fddea
Version Packages
2022-09-29 01:37:00 +00:00
Matthew Slipper
3638b5575b
Merge pull request #3602 from ethereum-optimism/develop
...
Develop -> Master
2022-09-28 19:34:57 -06:00
Matthew Slipper
537717610e
proxyd: Add batch size metric and configurable max ( #3545 )
...
* proxyd: Add batch size metric and configurable max
The max batch size will be overwritten if it is over `MaxBatchRPCCallsHardLimit`.
Builds on https://github.com/ethereum-optimism/optimism/pull/3544 .
* changeset
* fix lint
* fix test
2022-09-23 15:06:02 -06:00
Matthew Slipper
485258d3c2
proxyd: Add customizable whitelist error message ( #3544 )
...
* proxyd: Add customizable whitelist error message
Alchemy is asking for this so that we can include their affiliate link.
* add missing test case
* fix error message
* goimports
2022-09-23 14:21:12 -06:00
Matthew Slipper
795d1025bb
Merge pull request #3540 from ethereum-optimism/develop
...
Version Packages
2022-09-23 15:49:28 +02:00
Matthew Slipper
7f2456f217
Merge pull request #3539 from ethereum-optimism/changeset-release/master
...
Version Packages
2022-09-23 15:47:59 +02:00
Matthew Slipper
11ffe341b2
Merge pull request #3510 from ethereum-optimism/develop
...
ci: release step 3
2022-09-20 17:27:49 +02:00
Matthew Slipper
9fb21b52b8
Merge pull request #3509 from ethereum-optimism/changeset-release/master
...
Version Packages
2022-09-20 17:24:31 +02:00
github-actions[bot]
70557fdafd
Version Packages
2022-09-20 15:21:51 +00:00
Matthew Slipper
787ae9b9a5
Merge pull request #3508 from ethereum-optimism/develop
...
ci: trigger releases
2022-09-20 17:19:04 +02:00
Matthew Slipper
d228a55bd7
proxyd: Fix error message in tests ( #3503 )
...
* proxyd: Fix error message in tests
The custom error message wasn't being carried over in batch responses.
* review fixes
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-09-19 16:44:08 +00:00
Matthew Slipper
3fb4debfe1
proxyd: Add logging for origin and remote IP ( #3482 )
...
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>
2022-09-16 17:28:56 +00:00