polkavm
polkavm copied to clipboard
A fast and secure RISC-V based virtual machine
I'm getting this error when trying to run some of the scripts on ubuntu, e.g.: ``` ubuntu@legal-redbird:~/polkavm$ ./ci/jobs/rustfmt.sh >> cargo fmt >> cargo fmt (zygote) >> cargo fmt (guests) /home/ubuntu/.rustup/toolchains/riscv32em-nightly-2024-01-05-r0-x86_64-unknown-linux-gnu/bin/cargo:...
I got the guest program to compile with this ```rust struct ReturnValue(u32, u32); impl IntoHost for ReturnValue { type Regs = (u32, u32); type Destructor = (); #[inline(always)] fn into_host(value:...
Any tips on how to debug a guest program? e.g. How to make it log something
Looks like currently only a few numeric types are supported and the ABI is simply pass the arguments via register. This means we can only pass small arguments by value....
Right now we can only pass arguments that fit into registers to exported functions. I want to pass larger types either on the stack or some other memory region. My...
Can we also include binary size to the benchmarks [here](https://github.com/koute/polkavm/blob/4ca06cc1b7cb435b2b92e81e30c2eb0e988f563e/BENCHMARKS.md)? Program size is an important factor for smart contracts so it should be benchmarked and ensure it is well optimized.
We should've some well optimized cryptographic code in the benchmarks. As symmetric, I'd think blake2s hashing some pre-prepared random data. As asymmetric, it's simplest to do curve25519-dalek I think. I...
`consume_gas` should return whether there's still gas left (probably by returning a `Return`, e.g. `Result` and then make `OutOfGas` convertible into a `Trap` with `?`; also perhaps have a special...
Apparently on NixOS the `/mnt` doesn't exist and the sandboxing code fails with `failed to initialize sandbox process: fatal error while spawning child: mount (errno = 2 (ENOENT)): failed to...