Do we want/need to support the "no std" environment in SabVM? #52
Replies: 5 comments 8 replies
-
We need to support
Can confirm that we don't plan on supporting embedded environments (e.g. Raspberry Pi).
Sounds good.
As discussed here, we should only tag you, me, and @razgraf in the foreseeable future. |
Beta Was this translation helpful? Give feedback.
-
Not sure (yet) how we'll include the ZK proofing into SabVM, but if it's correct to talk about it (ZK proofing) as a "dependency" of SabVM, then, I don't see why it'd be problematic to connect the 2, without the latter also supporting the If ZK proofing can function in both the The only problematic situation would be the one that involves ZK proofing "consuming"/"depending on" SabVM. However, even in this case, we could just make the final solution only support Am I mistaken?
Thanks for the confirmation!
Note taken. |
Beta Was this translation helpful? Give feedback.
-
What I meant to say is that, in general (not Wouldn't this make sense? re: I've gone through the whole RISC Zero @ ZK HACK III workshop, as well as the What does RISC V have to do with RISC Zero's zkVM presentation, the As a result, I've concluded the following:
I suggest we get in contact with the |
Beta Was this translation helpful? Give feedback.
-
Potentially relevant: |
Beta Was this translation helpful? Give feedback.
-
Here what a Risc 0 team member told me about our To me, "no known bugs" sounds like a green light for not limiting ourselves to just the The fact that they've even built a ZK prototype on top of @PaulRBerg, if you agree, then, we should, probably, edit the SabVM GitHub jobs, removing the parts that require the repository to also support the |
Beta Was this translation helpful? Give feedback.
-
revm, on top of which we're building SabVM, supports both the the "std" and "no std" Rust environments.
While it's clearly a worthy endeavor for a project like revm to also support the "stripped", "no std" environment (mostly targeting the eventual execution of revm in embedded systems, from what I could understand), it doesn't feel like it'd be worth it in our case. Unless I'm mistaken, SabVM is not intended to be run in an embedded environment, nor built on top of by some projects that also want to support "no std".
The clear downside of supporting the "no std" workflow is that we can only use the already-implemented tools from the Rust Standard Library in the "optional" SabVM features built specifically for the std-enabled configuration - and not throughout the whole codebase.
For example, I've found the
HashSet
fromstd
to be very suitable for checking the uniqueness of the Native Asset ids passed in the tx - and the use ofHashSet
is currently failing thecargo check no_std
step of the Tests (Stable) job.The downside of the alternative (not supporting the "no std" configuration) is that SabVM won't be able to run in a "no std" environment, such as an embedded system or some other Rust crates that work in both "std" and "no std" modes.
Am I wrong and do we, in fact, need/want to support "no std"?
PS: if "no std" turns out to be a thing we'll decide is worth supporting, we should be able to move SabVM from "std only" to "both std and no-std" in the future (by manually re-implementing the
std
tools we use).@sablier-labs/everybody, curious about your takes on this subject
Beta Was this translation helpful? Give feedback.
All reactions