nssa basic project structure

This commit is contained in:
Sergio Chouhy 2025-08-06 13:39:09 -03:00
parent ebec84b3c0
commit a06af6da0a
11 changed files with 1675 additions and 41 deletions

335
Cargo.lock generated
View File

@ -779,6 +779,19 @@ dependencies = [
"generic-array",
]
[[package]]
name = "bonsai-sdk"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0bce8d6acc5286a16e94c29e9c885d1869358885e08a6feeb6bc54e36fe20055"
dependencies = [
"duplicate",
"maybe-async",
"reqwest 0.12.22",
"serde",
"thiserror 1.0.69",
]
[[package]]
name = "bonsai-sdk"
version = "1.4.0"
@ -1017,7 +1030,7 @@ dependencies = [
"k256",
"log",
"reqwest 0.11.27",
"risc0-zkvm",
"risc0-zkvm 2.3.1 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"rs_merkle",
"secp256k1-zkp",
"serde",
@ -2976,7 +2989,7 @@ dependencies = [
"log",
"rand 0.8.5",
"reqwest 0.11.27",
"risc0-zkvm",
"risc0-zkvm 2.3.1 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"sc_core",
"secp256k1-zkp",
"serde",
@ -3052,6 +3065,14 @@ dependencies = [
"minimal-lexical",
]
[[package]]
name = "nssa"
version = "0.1.0"
dependencies = [
"program-methods",
"risc0-zkvm 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "num-bigint"
version = "0.3.3"
@ -3418,6 +3439,13 @@ dependencies = [
"unicode-ident",
]
[[package]]
name = "program-methods"
version = "0.1.0"
dependencies = [
"risc0-build 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "prost"
version = "0.13.5"
@ -3783,6 +3811,25 @@ version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3df6368f71f205ff9c33c076d170dd56ebf68e8161c733c0caa07a7a5509ed53"
[[package]]
name = "risc0-binfmt"
version = "2.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62eb7025356a233c1bc267c458a2ce56fcfc89b136d813c8a77be14ef1eaf2b1"
dependencies = [
"anyhow",
"borsh",
"derive_more 2.0.1",
"elf",
"lazy_static",
"postcard",
"risc0-zkp 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
"risc0-zkvm-platform 2.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
"semver",
"serde",
"tracing",
]
[[package]]
name = "risc0-binfmt"
version = "2.0.2"
@ -3794,13 +3841,37 @@ dependencies = [
"elf",
"lazy_static",
"postcard",
"risc0-zkp",
"risc0-zkvm-platform",
"risc0-zkp 2.0.2 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"risc0-zkvm-platform 2.0.3 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"semver",
"serde",
"tracing",
]
[[package]]
name = "risc0-build"
version = "2.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62ffc0f135e6c1e9851e7e19438d03ff41a9d49199ee4f6c17b8bb30b4f83910"
dependencies = [
"anyhow",
"cargo_metadata",
"derive_builder",
"dirs",
"docker-generate",
"hex",
"risc0-binfmt 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
"risc0-zkos-v1compat 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
"risc0-zkp 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
"risc0-zkvm-platform 2.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
"rzup 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
"semver",
"serde",
"serde_json",
"stability",
"tempfile",
]
[[package]]
name = "risc0-build"
version = "2.3.1"
@ -3812,11 +3883,11 @@ dependencies = [
"dirs",
"docker-generate",
"hex",
"risc0-binfmt",
"risc0-zkos-v1compat",
"risc0-zkp",
"risc0-zkvm-platform",
"rzup",
"risc0-binfmt 2.0.2 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"risc0-zkos-v1compat 2.0.1 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"risc0-zkp 2.0.2 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"risc0-zkvm-platform 2.0.3 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"rzup 0.4.1 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"semver",
"serde",
"serde_json",
@ -3838,6 +3909,22 @@ dependencies = [
"tempfile",
]
[[package]]
name = "risc0-circuit-keccak"
version = "3.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0094af5a57b020388a03bdd3834959c7d62723f1687be81414ade25104d93263"
dependencies = [
"anyhow",
"bytemuck",
"paste",
"risc0-binfmt 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
"risc0-circuit-recursion 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"risc0-core 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"risc0-zkp 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
"tracing",
]
[[package]]
name = "risc0-circuit-keccak"
version = "3.0.0"
@ -3849,12 +3936,12 @@ dependencies = [
"keccak",
"paste",
"rayon",
"risc0-binfmt",
"risc0-binfmt 2.0.2 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"risc0-circuit-keccak-sys",
"risc0-circuit-recursion",
"risc0-core",
"risc0-circuit-recursion 3.0.0 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"risc0-core 2.0.0 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"risc0-sys",
"risc0-zkp",
"risc0-zkp 2.0.2 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"tracing",
"xz2",
]
@ -3869,11 +3956,26 @@ dependencies = [
"derive_more 2.0.1",
"glob",
"risc0-build-kernel",
"risc0-core",
"risc0-core 2.0.0 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"risc0-sys",
"sppark",
]
[[package]]
name = "risc0-circuit-recursion"
version = "3.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "76ebded45c902c2b6939924a1cddd1d06b5d1d4ad1531e8798ebfee78f9c038d"
dependencies = [
"anyhow",
"bytemuck",
"hex",
"metal",
"risc0-core 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"risc0-zkp 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
"tracing",
]
[[package]]
name = "risc0-circuit-recursion"
version = "3.0.0"
@ -3890,9 +3992,9 @@ dependencies = [
"rand 0.8.5",
"rayon",
"risc0-circuit-recursion-sys",
"risc0-core",
"risc0-core 2.0.0 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"risc0-sys",
"risc0-zkp",
"risc0-zkp 2.0.2 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"serde",
"sha2",
"tracing",
@ -3906,11 +4008,29 @@ source = "git+https://github.com/risc0/risc0.git?branch=release-2.3#03853380e36e
dependencies = [
"glob",
"risc0-build-kernel",
"risc0-core",
"risc0-core 2.0.0 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"risc0-sys",
"sppark",
]
[[package]]
name = "risc0-circuit-rv32im"
version = "3.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "15030849f8356f01f23c74b37dbfa4283100b594eb634109993e9e005ef45f64"
dependencies = [
"anyhow",
"bit-vec",
"bytemuck",
"derive_more 2.0.1",
"paste",
"risc0-binfmt 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
"risc0-core 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"risc0-zkp 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
"serde",
"tracing",
]
[[package]]
name = "risc0-circuit-rv32im"
version = "3.0.0"
@ -3932,11 +4052,11 @@ dependencies = [
"rand 0.8.5",
"rayon",
"ringbuffer",
"risc0-binfmt",
"risc0-binfmt 2.0.2 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"risc0-circuit-rv32im-sys",
"risc0-core",
"risc0-core 2.0.0 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"risc0-sys",
"risc0-zkp",
"risc0-zkp 2.0.2 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"serde",
"smallvec",
"tracing",
@ -3952,11 +4072,22 @@ dependencies = [
"derive_more 2.0.1",
"glob",
"risc0-build-kernel",
"risc0-core",
"risc0-core 2.0.0 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"risc0-sys",
"sppark",
]
[[package]]
name = "risc0-core"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "317bbf70a8750b64d4fd7a2bdc9d7d5f30d8bb305cae486962c797ef35c8d08e"
dependencies = [
"bytemuck",
"bytemuck_derive",
"rand_core 0.6.4",
]
[[package]]
name = "risc0-core"
version = "2.0.0"
@ -3969,6 +4100,27 @@ dependencies = [
"rand_core 0.6.4",
]
[[package]]
name = "risc0-groth16"
version = "2.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7cf5d0b673d5fc67a89147c2e9c53134707dcc8137a43d1ef06b4ff68e99b74f"
dependencies = [
"anyhow",
"ark-bn254",
"ark-ec",
"ark-groth16",
"ark-serialize",
"bytemuck",
"hex",
"num-bigint 0.4.6",
"num-traits",
"risc0-binfmt 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
"risc0-zkp 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
"serde",
"stability",
]
[[package]]
name = "risc0-groth16"
version = "2.0.2"
@ -3983,9 +4135,9 @@ dependencies = [
"hex",
"num-bigint 0.4.6",
"num-traits",
"risc0-binfmt",
"risc0-core",
"risc0-zkp",
"risc0-binfmt 2.0.2 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"risc0-core 2.0.0 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"risc0-zkp 2.0.2 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"serde",
"serde_json",
"stability",
@ -4004,6 +4156,16 @@ dependencies = [
"sppark",
]
[[package]]
name = "risc0-zkos-v1compat"
version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f76c479b69d1987cb54ac72dcc017197296fdcd6daf78fafc10cbbd3a167a7de"
dependencies = [
"include_bytes_aligned",
"no_std_strings",
]
[[package]]
name = "risc0-zkos-v1compat"
version = "2.0.1"
@ -4013,6 +4175,31 @@ dependencies = [
"no_std_strings",
]
[[package]]
name = "risc0-zkp"
version = "2.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a287e9cd6d7b3b38eeb49c62090c46a1935922309fbd997a9143ed8c43c8f3cb"
dependencies = [
"anyhow",
"blake2",
"borsh",
"bytemuck",
"cfg-if",
"digest",
"hex",
"hex-literal",
"metal",
"paste",
"rand_core 0.6.4",
"risc0-core 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"risc0-zkvm-platform 2.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
"serde",
"sha2",
"stability",
"tracing",
]
[[package]]
name = "risc0-zkp"
version = "2.0.2"
@ -4035,15 +4222,52 @@ dependencies = [
"rand 0.8.5",
"rand_core 0.6.4",
"rayon",
"risc0-core",
"risc0-core 2.0.0 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"risc0-sys",
"risc0-zkvm-platform",
"risc0-zkvm-platform 2.0.3 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"serde",
"sha2",
"stability",
"tracing",
]
[[package]]
name = "risc0-zkvm"
version = "2.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9684b333c1c5d83f29ce2a92314ccfafd9d8cdfa6c4e19c07b97015d2f1eb9d0"
dependencies = [
"anyhow",
"bincode",
"bonsai-sdk 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"borsh",
"bytemuck",
"bytes",
"derive_more 2.0.1",
"getrandom 0.2.16",
"hex",
"lazy-regex",
"prost",
"risc0-binfmt 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
"risc0-build 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"risc0-circuit-keccak 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"risc0-circuit-recursion 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"risc0-circuit-rv32im 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"risc0-core 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"risc0-groth16 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
"risc0-zkos-v1compat 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
"risc0-zkp 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
"risc0-zkvm-platform 2.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
"rrs-lib",
"rzup 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
"semver",
"serde",
"sha2",
"stability",
"tempfile",
"tracing",
]
[[package]]
name = "risc0-zkvm"
version = "2.3.1"
@ -4052,7 +4276,7 @@ dependencies = [
"addr2line 0.22.0",
"anyhow",
"bincode",
"bonsai-sdk",
"bonsai-sdk 1.4.0 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"borsh",
"bytemuck",
"bytes",
@ -4068,19 +4292,19 @@ dependencies = [
"prost",
"rand 0.8.5",
"rayon",
"risc0-binfmt",
"risc0-build",
"risc0-circuit-keccak",
"risc0-circuit-recursion",
"risc0-circuit-rv32im",
"risc0-core",
"risc0-groth16",
"risc0-zkos-v1compat",
"risc0-zkp",
"risc0-zkvm-platform",
"risc0-binfmt 2.0.2 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"risc0-build 2.3.1 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"risc0-circuit-keccak 3.0.0 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"risc0-circuit-recursion 3.0.0 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"risc0-circuit-rv32im 3.0.0 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"risc0-core 2.0.0 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"risc0-groth16 2.0.2 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"risc0-zkos-v1compat 2.0.1 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"risc0-zkp 2.0.2 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"risc0-zkvm-platform 2.0.3 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"rrs-lib",
"rustc-demangle",
"rzup",
"rzup 0.4.1 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"semver",
"serde",
"sha2",
@ -4090,6 +4314,20 @@ dependencies = [
"typetag",
]
[[package]]
name = "risc0-zkvm-platform"
version = "2.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cae9cb2c2f6cab2dfa395ea6e2576713929040c7fb0c5f4150d13e1119d18686"
dependencies = [
"bytemuck",
"cfg-if",
"getrandom 0.2.16",
"getrandom 0.3.3",
"libm",
"stability",
]
[[package]]
name = "risc0-zkvm-platform"
version = "2.0.3"
@ -4252,6 +4490,21 @@ version = "1.0.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
[[package]]
name = "rzup"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "400558bf12d4292a7804093b60a437ba8b0219ea7d53716b2c010a0d31e5f4a8"
dependencies = [
"semver",
"serde",
"strum",
"tempfile",
"thiserror 2.0.12",
"toml 0.8.23",
"yaml-rust2",
]
[[package]]
name = "rzup"
version = "0.4.1"
@ -4283,7 +4536,7 @@ dependencies = [
"light-poseidon",
"log",
"rand 0.8.5",
"risc0-zkvm",
"risc0-zkvm 2.3.1 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"secp256k1-zkp",
"serde",
"serde_json",
@ -4832,7 +5085,7 @@ dependencies = [
name = "test-methods"
version = "0.1.0"
dependencies = [
"risc0-build",
"risc0-build 2.3.1 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
]
[[package]]
@ -5929,7 +6182,7 @@ dependencies = [
"env_logger",
"log",
"rand 0.8.5",
"risc0-zkvm",
"risc0-zkvm 2.3.1 (git+https://github.com/risc0/risc0.git?branch=release-2.3)",
"serde",
"serde_json",
"test-methods",

View File

@ -18,6 +18,7 @@ members = [
"common",
"sc_core",
"integration_tests",
"nssa",
]
[workspace.dependencies]

8
nssa/Cargo.toml Normal file
View File

@ -0,0 +1,8 @@
[package]
name = "nssa"
version = "0.1.0"
edition = "2024"
[dependencies]
risc0-zkvm = "2.2"
program-methods = { path = "program_methods" }

View File

@ -0,0 +1,11 @@
[package]
name = "program-methods"
version = "0.1.0"
edition = "2021"
[build-dependencies]
risc0-build = { version = "2.2" }
[package.metadata.risc0]
methods = ["guest"]

View File

@ -0,0 +1,4 @@
fn main() {
risc0_build::embed_methods();
}

1321
nssa/program_methods/guest/Cargo.lock generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,10 @@
[package]
name = "programs"
version = "0.1.0"
edition = "2021"
[workspace]
[dependencies]
risc0-zkvm = { version = "2.2.0", default-features = false, features = ['std'] }

View File

@ -0,0 +1,6 @@
use risc0_zkvm::guest::env;
fn main() {
let a: u32 = env::read();
env::commit(&a);
}

View File

@ -0,0 +1 @@
include!(concat!(env!("OUT_DIR"), "/methods.rs"));

5
nssa/rust-toolchain.toml Normal file
View File

@ -0,0 +1,5 @@
[toolchain]
channel = "stable"
components = ["rustfmt", "rust-src"]
profile = "minimal"

14
nssa/src/lib.rs Normal file
View File

@ -0,0 +1,14 @@
pub fn add(left: u64, right: u64) -> u64 {
left + right
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn it_works() {
let result = add(2, 2);
assert_eq!(result, 4);
}
}