-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
7 changed files
with
53 additions
and
106 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,11 @@ | ||
# `riscv32im-curta-zkvm-elf` | ||
# `riscv32im-succinct-zkvm-elf` | ||
|
||
**Tier: 3** | ||
|
||
RISC Zero's Zero Knowledge Virtual Machine (zkVM) implementing the RV32IM instruction set. | ||
Succinct's Zero Knowledge Virtual Machine (zkVM) implementing the RV32IM instruction set. | ||
|
||
## Target maintainers | ||
|
||
- Frank Laub, `[email protected]`, https://github.com/flaub | ||
- Jeremy Bruestle, `[email protected]`, https://github.com/jbruestle | ||
- Erik Kaneda, `[email protected]`, https://github.com/SchmErik | ||
|
||
## Background | ||
|
||
This target is an execution environment to produce a proof of execution of | ||
|
@@ -20,7 +16,7 @@ cryptographic seal. This receipt can be verified to ensure the integrity of the | |
computation and its result. This target is implemented as software only; it has | ||
no hardware implementation. | ||
|
||
We have a cargo extension called [cargo-risczero] that allow users to generate | ||
We have a cargo extension called [cargo-prove] that allow users to generate | ||
project templates, install tools for improved user experience, build the binary | ||
using a docker environment and test programs. | ||
|
||
|
@@ -44,7 +40,7 @@ Calling `extern "C"` on the target uses the C calling convention outlined in the | |
|
||
Programs for the zkVM could be built by adding it to the `target` list in | ||
`config.toml`. However, we recommend building programs in our starter template | ||
generated by the [cargo-risczero] utility and the [curta-build] crate. This | ||
generated by the [cargo-prove] utility and the [sp1-build] crate. This | ||
crate calls `rustc` with `-C "link-arg=-Ttext=` so that it maps the text in the | ||
appropriate location as well as generating variables that represent the ELF and | ||
a unique ID associated with the ELF. The starter template provides developers | ||
|
@@ -57,15 +53,15 @@ Rust does not yet ship pre-compiled artifacts for this target. To compile for | |
this target, you will either need to build Rust with the target enabled (see | ||
"Building the target" above). We do not recommend using `build-std` as we have | ||
run into issues building core in the past on our starter template. An alternate | ||
solution is to download the curta tool chain by running `cargo risczero install`. | ||
solution is to download the SP1 tool chain by running `cargo prove install`. | ||
|
||
## Testing | ||
|
||
Note: the target is implemented as a software emulator called the zkVM and there | ||
is no hardware implementation of the target. | ||
|
||
The most practical way to test the target program is to use our starter template | ||
that can be generated by using the `cargo risczero new` command. The template | ||
that can be generated by using the `cargo prove new` command. The template | ||
generates a sample "host" and "guest" code. The guest code compiled to the | ||
target (which is RV32IM) whereas the "host" code is compiled to run on the | ||
programmer's machine running either a Linux distribution or macOS. The host | ||
|
@@ -77,10 +73,9 @@ The target currently does not support running the Rust test suite. | |
## Cross-compilation toolchains and C code | ||
|
||
Compatible C code can be built for this target on any compiler that has a RV32IM | ||
target. On clang and ld.lld linker, it can be generated using the | ||
target. On clang and ld.lld linker, it can be generated using the | ||
`-march=rv32im`, `-mabi=ilp32` with llvm features flag `features=+m` and llvm | ||
target `riscv32-unknown-none`. | ||
|
||
[RISC-V specification]: https://riscv.org/wp-content/uploads/2015/01/riscv-calling.pdf | ||
[cargo-risczero]: https://docs.rs/cargo-risczero/latest/cargo_risczero/ | ||
[curta-build]: https://crates.io/crates/curta-build | ||
[sp1-build]: https://crates.io/crates/sp1-build |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters