-
Notifications
You must be signed in to change notification settings - Fork 8
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
Generalize SUAVE Execution Namespace #79
Comments
ProblemCurrent suave-geth allows only one rpc backend and the DesignMultichain compatibility
Flexible Payload craftingGeneralizing
|
I have a different approach for the problem.
My goal is to deprecate these endpoints altogether because they can be built using Solidity + the arbitrary http precompile in suave-std as another protocol. Note that this change also implies that we do not have anymore a
Following the previous point, this can be generalised as a name resolve service on the MEVM for the arbitrary HTTP endpoint. suave-geth --suave.dns goerlisuavex=https://goerli.rigil.flashbots.net and then you can do: Suavex.simulateTxn("goerlisuavex", ...) |
I thought it should be the kettle operator running the rpc to keep everything under TEE. So I assumed setting arbitrary urls in contract should be forbidden. Otherwise someone might leak confidential store to his own endpoint. |
Yeah there is a friction here good call out @jinmel . when reading a suave contract we need to be able to guarantee that the URL someone is using to simulate is the kettle's domain service (or another kettle's domain service). I think with what @ferranbt recommended this is possible. also I like the idea of multiple endpoints per chain, sims can likely arbitrarily scale so this will be good to support, the main thing we will need to abstract away though in the multi domain setting is making sure sessions with "connection IDs" continue to use the same endpoint. Perhaps we can do this as follow on work and just assume 1 endpoint per chain for now. |
in your scenario @ferranbt, does the kettle operator set the whitelisted url endpoints that suapps can talk with? I am mildly concerned about the security of user setting arbitrary raw url. This is literally one loop hole where everything can be leaked out. |
@dmarzzz do you mean the builder sessions? I think that can be easily managed in the next PR. |
Yes, it is the kettle that whitelists the addresses. Of course, if the address is set on this dns registry, it is automatically whitelisted. |
Problem Statement
The current implementation of SUAVE is limited to interacting with Dencun Compatible L1 blockchains and only supports one chain at a time. This limitation restricts SUAVE to operate in a multi-chain manner. The Open Question is how to generalize the execution namespace within SUAVE to enable routing execution calls to nodes on any chain supporting this namespace.
https://github.com/flashbots/suave-specs/blob/main/specs/rigil/mevm.md#suavex-namespace
Design Goals
Multi-Chain Compatibility: Enable SUAVE to interact seamlessly with multiple blockchain networks with nodes that support the execution namespace.
Flexible Payload Crafting: Develop a system within SUAVE to efficiently craft and manage payloads for different chains .
Challenge
buildEthBlock
using thedoHttpRequest
precompile, which allows the smart contract to craft the payload flexibly and require less defined at the SUAVE protocol and precompile layer.The text was updated successfully, but these errors were encountered: