Obtain the guest program
Zesu is distributed as a pre-built relocatable Executable and Linkable Format (ELF)
object, zesu.rv64im.o.
To use it, your zkVM platform needs to provide implementations of the platform-specific
functions Zesu depends on, then link them together to produce a runnable guest binary.
Prerequisites
- A zkVM that targets the
rv64im(RISC-V 64-bit base integer with multiply extension) instruction set.
Download the artifact
Download the pre-built zesu.rv64im.o
artifact for the release you want to integrate.
Integrate the artifact
Your zkVM host integration implements the platform-specific functions and links them
against zesu.rv64im.o to produce the final guest binary your zkVM runs.
Linking conventions are platform-specific. Your zkVM target determines the linker script,
entry point, heap layout, and accelerator wiring.
The zesu-zkvm repository contains example
integrations for the Zisk, OpenVM, and Linea zkVMs.
It is a stop-gap for zkVMs that don't yet implement the common guest interface, and shows
how to wire a non-compliant zkVM to Zesu.
As zkVMs adopt the zkVM standards, they can
satisfy the symbol contract directly and the example integrations become unnecessary.
The zkVM symbol reference contains complete tables of the I/O, runtime, and accelerator symbols the host object must implement.
Next steps
- Architecture: the full proving pipeline and why the ELF design was chosen.
- zkVM symbol reference: complete tables of the I/O, runtime, and accelerator symbols the host object must implement.