From 71db742684adadcc0ea202b1c3257c640227d65e Mon Sep 17 00:00:00 2001 From: Kamen Mladenov Date: Fri, 17 Jan 2025 17:10:26 +0200 Subject: 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. --- zkvms/jolt/guest/Cargo.toml | 17 +++++++++++++++++ zkvms/jolt/guest/guest.ld | 27 +++++++++++++++++++++++++++ zkvms/jolt/guest/guests | 1 + zkvms/jolt/guest/guests_macro | 1 + zkvms/jolt/guest/src/lib.rs | 6 ++++++ 5 files changed, 52 insertions(+) create mode 100644 zkvms/jolt/guest/Cargo.toml create mode 100644 zkvms/jolt/guest/guest.ld create mode 120000 zkvms/jolt/guest/guests create mode 120000 zkvms/jolt/guest/guests_macro create mode 100644 zkvms/jolt/guest/src/lib.rs (limited to 'zkvms/jolt/guest') 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!{} -- cgit v1.2.3