Closed delehef closed 4 months ago
Can you send me a repo that I can use that has you jolt program in it rather than just an elf file so I can better debug?
Ok so it looks like trivial_tree
even when running without the std feature is trying to do something that requires the std (or some core
thing which we don't yet support) which causes it to null pointer when it tries to do some display stuff. I was able to fix it by enabling our experimental standard library support which you can do by adding the guest-std
feature to your jolt import in the guest.
Also note we've renamed the std
feature which you have to enable when importing jolt from the host to host
so you may need to change this if you update jolt.
Unfortunately we're hunting down a bug in jolt right now which breaks the std support sometimes when proving so it still errors when proving, but it now traces successfully. Will keep you updated here on that bug.
Thanks for the detailed report!
which causes it to null pointer when it tries to do some display stuff
There is no MMU, so the symptoms are the PC jumping to 0 and Jolt starting executing from there, right?
Also note we've renamed the std feature which you have to enable when importing jolt from the host to host
I believe I did, but probably pushed after you cloned my repo; sorry for that.
Yeah what we think is happening is its trying to load a function related to either a formatter or a error handling thing and it doesn't exist so its jumping to zero.
We are trying to chase down issues with the standard library and harden it a bit more, and eventually making it the default so these issues should crop up less.
Interesting, out of pure curiosity, I'd love to hear about the root issue when you will have narrowed it down.
Good hunt!
Hey, the same program fails again on the latest master
with:
emulator/cpu.rs:337:45:
called `Option::unwrap()` on a `None` value
Could you please take a look?
I was just able to generate a proof of your program successfully. I used stack_size = 200_0000
and memory_size = 100_000_000
.
I just pushed a new release to our rust toolchain this morning though so that may need to be installed. To ensure you have this, reinstall the jolt cli (since we only added the installer for our new toolchain recently) by running cargo +nightly install --git https://github.com/a16z/jolt --force --bins jolt
and install the toolchain using jolt install-toolchain
.
It looks like I still have an issue w.r.t. dependencies:
[...]
* `lib` target `guest`
* `bin` target `guest`
Compiling jolt-sdk v0.1.0 (https://github.com/a16z/jolt#8852dd14)
error[E0463]: can't find crate for `postcard`
--> [...]/.cargo/git/checkouts/jolt-6b856340b98daf0c/8852dd1/jolt-sdk/src/lib.rs:6:9
|
6 | pub use postcard;
| ^^^^^^^^ can't find crate
This is being built on latest master (8852dd14
).
Edit: this is avoided in disabling the guest-std
feature, but this should probably be fixed so that all combinations of features compile.
Thanks for the help!
Hello,
I'm currently trying to run a 435 KiB ELF (elf.zip), and run into several issues.
with
#[jolt::provable]
, which raises:increasing stack size with
#[jolt::provable(stack_size = 16_000_000, memory_size = 100_000_000)]
solves the first issue, but then raises:Any idea of what may be going wrong?
I advise to test it with my fork of jolt which streams traces to disk, as they grow quite large (>32GiB).