-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Refactor and rename sandboxing implementation #10297
Comments
I think, by carefully designing the API we can future-proof it to support potential chunked execution similar to what we have done for wasmi during our experiment. |
Maybe. It adds complexity, though. For example, we would need some kind of feature discovery then because not all execution engines will support this right off the bat. As a matter of fact none will support it as we only put it in for future proofing. Just creating a new version of the API when the need arises is better in my opinion. Future proofing APIs is worth nothing when users will depend on the implementation. |
Excerpt from our discussion about changing the terminology from sandoxing to a term based on virtualization, e.g. wasm virtualization API, hypervisor API, or whatever.
|
Updated the top post with new information after a discussion I had with @0x7CFE, today. |
Refined the top posting again after the picture got a bit clearer on how the final refactoring should look like. |
I narrowed down the scope in this issue and created a proper task list. |
hope polkadot parachain could use this feature soon... for now, parachain in polkadot even can not use sandbox hostfunction... |
What exactly do you need it for? |
run a piece of wasm in runtime |
You can still do that: Use |
No one is working on this anymore. |
Since we decided to go with wasmi for now and we don't really have the resources to work on that we will close it. |
The sandboxing code inside the client which is responsible for running the contracts of
pallet-contracts
needs a refactor. Currently, the different execution engines for contracts are crammed intosc-executor-common
. Neither should different execution engines be in the same crate nor should runtime execution and sandbox execution be intertwined in this way. For that reason we want to refactor that code in order to have proper abstractions that allows us to move the sandboxing code to its own set of crates.Rename
After a discussion with @pepyakin (see comments below) we agreed that we should also move away from the term "sandboxing" for this whole thing. One proposal what I also back is to use the terminology "Wasm Virtualization".
TODO
client/wasm-virt
with one additional crate per execution engine (sc-wasm-virt-wasmi, sc-wasm-virt-wasmer
). This should also move all wasm virtualization related traits that needs to be implement by the runtime executor to the new location.The text was updated successfully, but these errors were encountered: