Quai之家
中文资讯网

SDK 快速入门 安装 Nexus zkVM


2024虚拟币不清退交易所大全 最新地址

1、全球第二大交易所OKX欧意

国区邀请链接: https://www.cnouyi.group/join/1837888 币种多,交易量大!

国际邀请链接:https://www.okx.com/join/1837888 注册简单,币种多,交易量大!操作简单安全!

2、全球最大交易所币安

国区邀请链接:https://accounts.suitechsui.cc/zh-CN/register?ref=16003031 支持86手机号码,直接注册。

国际邀请链接https://accounts.binance.com/zh-CN/register?ref=16003031开放注册了,国人实测能用!

3、老牌交易所比特儿现改名叫芝麻开门 :https://www.gatexx.net/signup/XgRDAQ8?ref_type=103  注册成功之后务必在网页端完成 手机号码绑定,推荐在APP端实名认证初级+高级更方便上传。网页端也可以实名认证。

4、火必所有用户现在可用了,但是要重新注册账号火币地址https://www.huobi.com

币安最新国区域名,哪个能用用哪个,网页,手机APP都行。

买好币上KuCoinhttps://www.kucoin.com/r/af/1f7w3CoinMarketCap前五的交易所,注册友好操简单快捷!

Bybit最高 $1,020 等您领取 $20 体验金和价值最高 $1,000 的福利卡:https://partner.bybit.com/b/49808

5、Bitget:https://partner.bitget.com/bg/5KYK6H

6、XT:https://www.xtfarsi.site/zh-CN/accounts/register?ref=Y6XN98K

 

SDK 快速入门

1. 安装 Nexus zkVM

首先,安装 Rust:Rust 安装说明(在新选项卡中打开).

此外,请确保您有CMAKE(在新选项卡中打开).

接下来,安装 RISC-V 目标:

rustup target add riscv32i-unknown-none-elf

然后,安装 Nexus zkVM:

cargo install --git https://github.com/nexus-xyz/nexus-zkvm cargo-nexus --tag 'v0.2.3'

验证安装:

cargo nexus --help

这应该会打印可用的 CLI 命令。

2. 创建新的 Nexus 主机项目

要以编程方式使用 zkVM,我们需要两个程序:一个运行在 zkVM 上的来宾程序,以及一个运行 zkVM 本身的主机程序。

在 nexus-zkvm 签出的某个地方,运行:

cargo nexus host nexus-host

这将创建一个具有以下结构的新 Rust 项目目录:

./nexus-host├── Cargo.lock├── Cargo.toml└── src    └── main.rs    └── guest        └── Cargo.toml        └── rust-toolchain.toml        └── src            └── main.rs

这里,是我们的主持人节目,而 是我们的嘉宾节目。./src/main.rs./src/guest/src/main.rs

例如,您可以将 的内容更改为:./src/guest/src/main.rs

#![cfg_attr(target_arch = "riscv32", no_std, no_main)] use nexus_rt::{println, read_private_input, write_output}; #[nexus_rt::main]fn main() {    let input = read_private_input::<(u32, u32)>();     let mut z: i32 = -1;    if let Ok((x, y)) = input {        println!("Read private input: ({}, {})", x, y);         z = (x * y) as i32;    } else {        println!("No private input provided...");    }     write_output::<i32>(&z)}

此来宾程序尝试从输入磁带中读取两个整数,记录它们是否存在,如果存在,则返回其产品。

然后,将 的内容更改为:./src/main.rs

use nexus_sdk::{    compile::CompileOpts,    nova::seq::{Generate, Nova, PP},    Local, Prover, Verifiable,}; type Input = (u32, u32);type Output = i32; const PACKAGE: &str = "guest"; fn main() {    println!("Setting up Nova public parameters...");    let pp: PP = PP::generate().expect("failed to generate parameters");     let mut opts = CompileOpts::new(PACKAGE);    opts.set_memlimit(8); // use an 8mb memory     println!("Compiling guest program...");    let prover: Nova<Local> = Nova::compile(&opts).expect("failed to compile guest program");     let input: Input = (3, 5);     print!("Proving execution of vm...");    let proof = prover        .prove_with_input::<Input>(&pp, &input)        .expect("failed to prove program");     println!(        " output is {}!",        proof            .output::<Output>()            .expect("failed to deserialize output")    );     println!(">>>>> Logging\n{}<<<<<", proof.logs().join("\n"));     print!("Verifying execution...");    proof.verify(&pp).expect("failed to verify proof");     println!("  Succeeded!");}

此主机程序使用自定义内存限制编译来宾程序,然后调用生成的二进制文件作为 input。(3, 5)

然后,zkVM 将运行 guest 程序并生成其正确执行的证明。

证明完成后,主机程序从输出磁带上读取输出并将其与任何日志一起打印出来,然后验证证明。

3. 运行您的程序

cargo run -r

请注意,我们使用 ,而不是 。我们的主机程序只是一个普通的 Rust 程序,而用于从命令行执行客户程序。cargo runcargo nexus runcargo nexus run

您应该会看到主机程序打印:

Setting up Nova public parameters...Proving execution of vm... output is 15!>>>>> LoggingRead private input: (3, 5)<<<<<Verifying execution...  Succeeded!

如果要从命令行执行 guest 程序,可以导航到并使用命令来执行此操作。./src/guestcargo nexus

4. 其他主机程序选项

有几种方法可以配置 guest 程序的运行和验证方式。也许最重要的是,SDK 支持两个替代证明器:HyperNova 和 Jolt。

要使用 HyperNova,只需使用上面的示例,在程序中替换 。novahypernova

Jolt 支持是实验性的,特别是目前不允许在 guest 程序中输入、输出、日志记录或断言。您可以使用像

#![no_std]#![no_main] fn fib(n: u32) -> u32 {    match n {        0 => 0,        1 => 1,        _ => fib(n - 1) + fib(n - 2),    }} #[nexus_rt::main]fn main() {    let n = 10;    let result = fib(n);    core::hint::black_box(result);}

以及一个主机程序(如

use nexus_sdk::{compile::CompileOpts, jolt::Jolt, Local}; const PACKAGE: &str = "guest"; fn main() {    let opts = CompileOpts::new(PACKAGE);     // defaults to local proving    let prover: Jolt<Local> = Jolt::compile(&opts).expect("failed to load program");     println!("Proving execution of vm...");    let proof = prover.prove().expect("failed to prove program");     print!("Verifying execution...");    proof.verify().expect("failed to verify proof");     println!("  Succeeded!");}

要查看使用 SDK 的更多示例,请查看examples 文件夹(在新选项卡中打开).


2024虚拟币不清退交易所大全 最新地址

1、全球第二大交易所OKX欧意

国区邀请链接: https://www.cnouyi.group/join/1837888 币种多,交易量大!

国际邀请链接:https://www.okx.com/join/1837888 注册简单,币种多,交易量大!操作简单安全!

2、全球最大交易所币安

国区邀请链接:https://accounts.suitechsui.cc/zh-CN/register?ref=16003031 支持86手机号码,直接注册。

国际邀请链接https://accounts.binance.com/zh-CN/register?ref=16003031开放注册了,国人实测能用!

3、老牌交易所比特儿现改名叫芝麻开门 :https://www.gatexx.net/signup/XgRDAQ8?ref_type=103  注册成功之后务必在网页端完成 手机号码绑定,推荐在APP端实名认证初级+高级更方便上传。网页端也可以实名认证。

4、火必所有用户现在可用了,但是要重新注册账号火币地址https://www.huobi.com

币安最新国区域名,哪个能用用哪个,网页,手机APP都行。

买好币上KuCoinhttps://www.kucoin.com/r/af/1f7w3CoinMarketCap前五的交易所,注册友好操简单快捷!

Bybit最高 $1,020 等您领取 $20 体验金和价值最高 $1,000 的福利卡:https://partner.bybit.com/b/49808

5、Bitget:https://partner.bitget.com/bg/5KYK6H

6、XT:https://www.xtfarsi.site/zh-CN/accounts/register?ref=Y6XN98K

 

赞(0)
未经允许不得转载:Quai中文社区 » SDK 快速入门 安装 Nexus zkVM