-
Notifications
You must be signed in to change notification settings - Fork 451
Engine API: Strict message ordering #89
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
Conversation
What do you think about enforcing CL to define a logical order of all messages in Engine API. I don't think it increases the complexity comparing to the original proposal but it could be used by EL in syncing process when it received a batch of |
5e5495f
to
fa01a68
Compare
I'm not 100% sure here. Respecting order is different depending on the operation and the context. executePayload order should be respected and each executed (!) because otherwise when in lock-step mode you could miss a dependency. Whereas forkchoice order only requires the latest message to be applied and earlier RPC IDs can be ignored |
Absolutely. What I am thinking about is CL signalling the order of all (not only some) messages to EL, and EL then decides what to do with the order. For |
Another thing that worries me a bit is hijacking on the JSON-RPC request id. It looks fine but having double semantics for this ID might be inconvenient in some cases. But we should see the need of separate ID in practice before introducing it. |
Co-authored-by: Mikhail Kalinin <noblesse.knight@gmail.com>
done |
Use direct CL and EL terms for clarity
Avoid degenerate race conditions via the following:
Note, there might be optimizations depending on message type (e.g. if multiple forkhcoice calls, only execute the latest) but these are left to implementation details