diff options
| author | Kamen Mladenov <kamen@syndamia.com> | 2025-01-17 17:10:26 +0200 |
|---|---|---|
| committer | Kamen Mladenov <kamen@syndamia.com> | 2025-01-17 17:10:26 +0200 |
| commit | 71db742684adadcc0ea202b1c3257c640227d65e (patch) | |
| tree | e473688f8eba40fe932e59f0bfa5f3d1fa1b5357 /zkvms/jolt/guest | |
| parent | ef57244d034b714709bb566c16819d54e3d33d6b (diff) | |
| download | zkVMs-benchmarks-71db742684adadcc0ea202b1c3257c640227d65e.tar zkVMs-benchmarks-71db742684adadcc0ea202b1c3257c640227d65e.tar.gz zkVMs-benchmarks-71db742684adadcc0ea202b1c3257c640227d65e.zip | |
feat(zkvms): Add jolt guest and it's macro
Had to reimplement and modify the build macro function so it would take
an elf path, instead of always doing a manual build.
Additionally, had to hard-code a **lot** of values.
Diffstat (limited to 'zkvms/jolt/guest')
| -rw-r--r-- | zkvms/jolt/guest/Cargo.toml | 17 | ||||
| -rw-r--r-- | zkvms/jolt/guest/guest.ld | 27 | ||||
| l--------- | zkvms/jolt/guest/guests | 1 | ||||
| l--------- | zkvms/jolt/guest/guests_macro | 1 | ||||
| -rw-r--r-- | zkvms/jolt/guest/src/lib.rs | 6 |
5 files changed, 52 insertions, 0 deletions
diff --git a/zkvms/jolt/guest/Cargo.toml b/zkvms/jolt/guest/Cargo.toml new file mode 100644 index 0000000..736873b --- /dev/null +++ b/zkvms/jolt/guest/Cargo.toml @@ -0,0 +1,17 @@ +[package] +name = "guest" +version = "0.1.0" +edition = "2021" + +[[bin]] +name = "guest" +path = "./src/lib.rs" + +[features] +guest = [] + +[dependencies] +jolt = { package = "jolt-sdk", path = "/nix/store/q8ix3vj7dw6w57zhjc9wa38vicymql0g-jolt-unstable-2024-12-18/jolt-sdk", features = ["guest-std"] } + +zkp = { path = "./src/zkp" } +wrapper_macro = { version = "0.1.0", path = "../wrapper_macro" } diff --git a/zkvms/jolt/guest/guest.ld b/zkvms/jolt/guest/guest.ld new file mode 100644 index 0000000..e4afb7b --- /dev/null +++ b/zkvms/jolt/guest/guest.ld @@ -0,0 +1,27 @@ +MEMORY { + program (rwx) : ORIGIN = 0x80000000, LENGTH = 10485760 +} + +SECTIONS { + .text.boot : { + *(.text.boot) + } > program + + .text : { + *(.text) + } > program + + .data : { + *(.data) + } > program + + .bss : { + *(.bss) + } > program + + . = ALIGN(8); + . = . + 4096; + _STACK_PTR = .; + . = ALIGN(8); + _HEAP_PTR = .; +} diff --git a/zkvms/jolt/guest/guests b/zkvms/jolt/guest/guests new file mode 120000 index 0000000..69bc8ed --- /dev/null +++ b/zkvms/jolt/guest/guests @@ -0,0 +1 @@ +../../../guests
\ No newline at end of file diff --git a/zkvms/jolt/guest/guests_macro b/zkvms/jolt/guest/guests_macro new file mode 120000 index 0000000..143a0b5 --- /dev/null +++ b/zkvms/jolt/guest/guests_macro @@ -0,0 +1 @@ +../../../guests_macro
\ No newline at end of file diff --git a/zkvms/jolt/guest/src/lib.rs b/zkvms/jolt/guest/src/lib.rs new file mode 100644 index 0000000..3fec863 --- /dev/null +++ b/zkvms/jolt/guest/src/lib.rs @@ -0,0 +1,6 @@ +//#![cfg_attr(feature = "guest", no_std)] +#![no_main] + +use wrapper_macro::make_wrapper; + +zkp::entrypoint_expr!{} |
