aboutsummaryrefslogtreecommitdiff
path: root/zkvms/jolt/guest
diff options
context:
space:
mode:
authorKamen Mladenov <kamen@syndamia.com>2025-01-17 17:10:26 +0200
committerKamen Mladenov <kamen@syndamia.com>2025-01-17 17:10:26 +0200
commit71db742684adadcc0ea202b1c3257c640227d65e (patch)
treee473688f8eba40fe932e59f0bfa5f3d1fa1b5357 /zkvms/jolt/guest
parentef57244d034b714709bb566c16819d54e3d33d6b (diff)
downloadzkVMs-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.toml17
-rw-r--r--zkvms/jolt/guest/guest.ld27
l---------zkvms/jolt/guest/guests1
l---------zkvms/jolt/guest/guests_macro1
-rw-r--r--zkvms/jolt/guest/src/lib.rs6
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!{}