New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Increase the Default of Batch Response Max Size #27923
Comments
Let me add some information: |
Agree with that one, as CL <-> EL's RPCs are guaranteed by JWT auth, so the limit can be weakened. |
We can definitely increase these limits for the engine API! |
@nisdas I'm curious about this statement:
The default limit is 25MB response size. What is prysm requesting there? Please note, if you are using the go-ethereum rpc client, that we have updated it in v1.12.1 to better deal with failed batch requests. The new version will correctly return the requests that were fulfilled even if the response is incomplete. |
@fjl When serving block batches in p2p to external peers we request the corresponding execution blocks from geth which is why the response is large.
Yeap, we have updated Prysm to take advantage of the changes in the rpc client for this case. |
Please try the PR #27924 |
Also let us know what limits you think should be applied to the engine endpoint. |
Great, thanks ! Will give the PR a shot |
Hey, @fjl I ran this particular PR on a custom devnet with full blocks and it seems to have worked. Unfortunately we can't test the PR in our testing infrastructure for mainnet until there is a tagged docker image for it.
I think the current limits applied in the PR are fine, if in a future ethereum fork execution payloads become much bigger then we can revisit them but they looks good to me |
@nisdas is this image(build with #27924) jsvisa/go-ethereum:v20230816 available for you? |
@jsvisa I can give that a try |
I think I will have difficulties running that in our infra since its a non-official image. After the PR is merged in, and an image is built in |
In v1.12.1,
This PR was included, which added hard request/response limits for batched rpc requests. Unfortunately this particular change has broken interaction between Prysm and Geth running via the default flags. Many users have run into the following error on updating to v1.12.1 and v1.12.2:
With these hard limits being enforced by geth, now any set of execution blocks being requested exceeds the response limit and the whole request fails. A workaround provided to users has been to use this flag with geth:
While the workaround works right now, we would prefer if geth and prysm had no issues communicating with the default set of flags. Is it possible to increase the default max size here ? If that is not viable, how about disabling the hard rpc limit for engine methods ? Communication between the consensus and execution client is already trusted, so it wouldn't be an issue for consensus clients to request a large amount of payloads from the execution client.
The text was updated successfully, but these errors were encountered: