From 18b942a07cc3347884784d3ec842a2db032e33ef Mon Sep 17 00:00:00 2001 From: Tej Qu Nair Date: Tue, 27 Aug 2024 15:58:49 -0700 Subject: [PATCH 01/20] fix: make v2 compiler deterministic (#1420) --- .../compiler/src/circuit/compiler.rs | 42 +++++++++++++++++-- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/crates/recursion/compiler/src/circuit/compiler.rs b/crates/recursion/compiler/src/circuit/compiler.rs index 2d830e53b..1d41dcb9a 100644 --- a/crates/recursion/compiler/src/circuit/compiler.rs +++ b/crates/recursion/compiler/src/circuit/compiler.rs @@ -7,7 +7,13 @@ use p3_field::{ use sp1_core_machine::utils::{sp1_debug_mode, SpanBuilder}; use sp1_recursion_core::air::{Block, RecursionPublicValues, RECURSIVE_PROOF_NUM_PV_ELTS}; use sp1_recursion_core_v2::{BaseAluInstr, BaseAluOpcode}; -use std::{borrow::Borrow, collections::HashMap, iter::repeat, mem::transmute}; +use std::{ + borrow::Borrow, + cmp::Ordering, + collections::BTreeMap, + iter::repeat, + mem::{take, transmute}, +}; use vec_map::VecMap; use sp1_recursion_core_v2::*; @@ -21,7 +27,7 @@ pub struct AsmCompiler { /// Map the frame pointers of the variables to the "physical" addresses. pub virtual_to_physical: VecMap>, /// Map base or extension field constants to "physical" addresses and mults. - pub consts: HashMap, (Address, C::F)>, + pub consts: BTreeMap, (Address, C::F)>, /// Map each "physical" address to its read count. pub addr_to_mult: VecMap, } @@ -599,7 +605,7 @@ where debug_assert!(self.addr_to_mult.is_empty()); // Initialize constants. let total_consts = self.consts.len(); - let instrs_consts = self.consts.drain().map(|(imm, (addr, mult))| { + let instrs_consts = take(&mut self.consts).into_iter().map(|(imm, (addr, mult))| { Instruction::Mem(MemInstr { addrs: MemIo { inner: addr }, vals: MemIo { inner: imm.as_block() }, @@ -661,6 +667,36 @@ pub enum Imm { EF(EF), } +impl PartialOrd for Imm +where + F: PartialEq + AbstractField + PartialOrd, + EF: PartialEq + AbstractExtensionField, +{ + fn partial_cmp(&self, other: &Self) -> Option { + match (self, other) { + (Imm::F(a), Imm::F(b)) => a.partial_cmp(b), + (Imm::F(_), Imm::EF(_)) => Some(Ordering::Less), + (Imm::EF(_), Imm::F(_)) => Some(Ordering::Greater), + (Imm::EF(a), Imm::EF(b)) => a.as_base_slice().partial_cmp(b.as_base_slice()), + } + } +} + +impl Ord for Imm +where + F: Eq + AbstractField + Ord, + EF: Eq + AbstractExtensionField, +{ + fn cmp(&self, other: &Self) -> Ordering { + match (self, other) { + (Imm::F(a), Imm::F(b)) => a.cmp(b), + (Imm::F(_), Imm::EF(_)) => Ordering::Less, + (Imm::EF(_), Imm::F(_)) => Ordering::Greater, + (Imm::EF(a), Imm::EF(b)) => a.as_base_slice().cmp(b.as_base_slice()), + } + } +} + impl Imm where F: AbstractField + Copy, From 328af9f619a957ddafc662281ad28550085f304e Mon Sep 17 00:00:00 2001 From: Yuwen Zhang Date: Wed, 28 Aug 2024 10:40:28 -0700 Subject: [PATCH 02/20] fix: add rint and rintf (#1422) --- crates/zkvm/entrypoint/src/libm.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/crates/zkvm/entrypoint/src/libm.rs b/crates/zkvm/entrypoint/src/libm.rs index 304624d00..4c8e6c3c5 100644 --- a/crates/zkvm/entrypoint/src/libm.rs +++ b/crates/zkvm/entrypoint/src/libm.rs @@ -423,6 +423,16 @@ pub fn remquo(x: f64, y: f64) -> (f64, i32) { libm::remquo(x, y) } +#[no_mangle] +pub extern "C" fn rint(arg: f64) -> f64 { + libm::rint(arg) +} + +#[no_mangle] +pub extern "C" fn rintf(arg: f32) -> f32 { + libm::rintf(arg) +} + #[no_mangle] pub fn remquof(x: f32, y: f32) -> (f32, i32) { libm::remquof(x, y) From b3b372c8ca2216fa32337d67954ccf5ed02bc03a Mon Sep 17 00:00:00 2001 From: Tej Qu Nair Date: Wed, 28 Aug 2024 11:13:05 -0700 Subject: [PATCH 03/20] perf: basic constant propagation for `Imm` instructions in v2 compiler (#1421) --- .../compiler/src/circuit/compiler.rs | 239 +++++++++--------- .../core-v2/src/chips/mem/constant.rs | 2 +- 2 files changed, 125 insertions(+), 116 deletions(-) diff --git a/crates/recursion/compiler/src/circuit/compiler.rs b/crates/recursion/compiler/src/circuit/compiler.rs index 1d41dcb9a..c83f973d8 100644 --- a/crates/recursion/compiler/src/circuit/compiler.rs +++ b/crates/recursion/compiler/src/circuit/compiler.rs @@ -27,7 +27,7 @@ pub struct AsmCompiler { /// Map the frame pointers of the variables to the "physical" addresses. pub virtual_to_physical: VecMap>, /// Map base or extension field constants to "physical" addresses and mults. - pub consts: BTreeMap, (Address, C::F)>, + pub consts: BTreeMap, Address>, /// Map each "physical" address to its read count. pub addr_to_mult: VecMap, } @@ -38,12 +38,11 @@ where { /// Allocate a fresh address. Checks that the address space is not full. pub fn alloc(next_addr: &mut C::F) -> Address { - let id = Address(*next_addr); *next_addr += C::F::one(); if next_addr.is_zero() { panic!("out of address space"); } - id + Address(*next_addr) } /// Map `fp` to its existing address without changing its mult. @@ -108,7 +107,7 @@ where /// /// Ensures that `addr` has already been assigned a `mult`. pub fn read_ghost_addr(&mut self, addr: Address) -> &mut C::F { - self.read_addr_internal(addr, true) + self.read_addr_internal(addr, false) } fn read_addr_internal(&mut self, addr: Address, increment_mult: bool) -> &mut C::F { @@ -143,27 +142,36 @@ where /// /// Increments the mult, first creating an entry if it does not yet exist. pub fn read_const(&mut self, imm: Imm) -> Address { - self.consts - .entry(imm) - .and_modify(|(_, x)| *x += C::F::one()) - .or_insert_with(|| (Self::alloc(&mut self.next_addr), C::F::one())) - .0 + use vec_map::Entry; + let addr = self.read_ghost_const(imm); + match self.addr_to_mult.entry(addr.as_usize()) { + Entry::Vacant(entry) => drop(entry.insert(C::F::one())), + Entry::Occupied(mut entry) => *entry.get_mut() += C::F::one(), + } + addr } /// Read a constant (a.k.a. immediate). /// /// Does not increment the mult. Creates an entry if it does not yet exist. pub fn read_ghost_const(&mut self, imm: Imm) -> Address { - self.consts.entry(imm).or_insert_with(|| (Self::alloc(&mut self.next_addr), C::F::zero())).0 + let addr = *self.consts.entry(imm).or_insert_with(|| Self::alloc(&mut self.next_addr)); + self.addr_to_mult.entry(addr.as_usize()).or_insert_with(C::F::zero); + addr } - fn mem_write_const(&mut self, dst: impl Reg, src: Imm) -> Instruction { - Instruction::Mem(MemInstr { - addrs: MemIo { inner: dst.write(self) }, - vals: MemIo { inner: src.as_block() }, - mult: C::F::zero(), - kind: MemAccessKind::Write, - }) + /// Turn `dst` into an alias for the constant `src`. + fn mem_write_const(&mut self, dst: impl HasVirtualAddress, src: Imm) { + use vec_map::Entry; + let src_addr = src.read_ghost(self); + match self.virtual_to_physical.entry(dst.vaddr()) { + Entry::Vacant(entry) => drop(entry.insert(src_addr)), + Entry::Occupied(entry) => panic!( + "unexpected entry: virtual_to_physical[{:?}] = {:?}", + dst.vaddr(), + entry.get() + ), + } } fn base_alu( @@ -203,7 +211,7 @@ where use BaseAluOpcode::*; let [diff, out] = core::array::from_fn(|_| Self::alloc(&mut self.next_addr)); f(self.base_alu(SubF, diff, lhs, rhs)); - f(self.base_alu(DivF, out, diff, Imm::F(C::F::zero()))); + f(self.base_alu(DivF, out, diff, Imm::f(C::F::zero()))); } fn base_assert_ne( @@ -216,7 +224,7 @@ where let [diff, out] = core::array::from_fn(|_| Self::alloc(&mut self.next_addr)); f(self.base_alu(SubF, diff, lhs, rhs)); - f(self.base_alu(DivF, out, Imm::F(C::F::one()), diff)); + f(self.base_alu(DivF, out, Imm::f(C::F::one()), diff)); } fn ext_assert_eq( @@ -229,7 +237,7 @@ where let [diff, out] = core::array::from_fn(|_| Self::alloc(&mut self.next_addr)); f(self.ext_alu(SubE, diff, lhs, rhs)); - f(self.ext_alu(DivE, out, diff, Imm::EF(C::EF::zero()))); + f(self.ext_alu(DivE, out, diff, Imm::ef(C::EF::zero()))); } fn ext_assert_ne( @@ -242,7 +250,7 @@ where let [diff, out] = core::array::from_fn(|_| Self::alloc(&mut self.next_addr)); f(self.ext_alu(SubE, diff, lhs, rhs)); - f(self.ext_alu(DivE, out, Imm::EF(C::EF::one()), diff)); + f(self.ext_alu(DivE, out, Imm::ef(C::EF::one()), diff)); } fn poseidon2_permute( @@ -384,71 +392,71 @@ where let mut f = |instr| consumer(Ok(instr)); match ir_instr { - DslIr::ImmV(dst, src) => f(self.mem_write_const(dst, Imm::F(src))), - DslIr::ImmF(dst, src) => f(self.mem_write_const(dst, Imm::F(src))), - DslIr::ImmE(dst, src) => f(self.mem_write_const(dst, Imm::EF(src))), + DslIr::ImmV(dst, src) => self.mem_write_const(dst, Imm::f(src)), + DslIr::ImmF(dst, src) => self.mem_write_const(dst, Imm::f(src)), + DslIr::ImmE(dst, src) => self.mem_write_const(dst, Imm::ef(src)), DslIr::AddV(dst, lhs, rhs) => f(self.base_alu(AddF, dst, lhs, rhs)), - DslIr::AddVI(dst, lhs, rhs) => f(self.base_alu(AddF, dst, lhs, Imm::F(rhs))), + DslIr::AddVI(dst, lhs, rhs) => f(self.base_alu(AddF, dst, lhs, Imm::f(rhs))), DslIr::AddF(dst, lhs, rhs) => f(self.base_alu(AddF, dst, lhs, rhs)), - DslIr::AddFI(dst, lhs, rhs) => f(self.base_alu(AddF, dst, lhs, Imm::F(rhs))), + DslIr::AddFI(dst, lhs, rhs) => f(self.base_alu(AddF, dst, lhs, Imm::f(rhs))), DslIr::AddE(dst, lhs, rhs) => f(self.ext_alu(AddE, dst, lhs, rhs)), - DslIr::AddEI(dst, lhs, rhs) => f(self.ext_alu(AddE, dst, lhs, Imm::EF(rhs))), + DslIr::AddEI(dst, lhs, rhs) => f(self.ext_alu(AddE, dst, lhs, Imm::ef(rhs))), DslIr::AddEF(dst, lhs, rhs) => f(self.ext_alu(AddE, dst, lhs, rhs)), - DslIr::AddEFI(dst, lhs, rhs) => f(self.ext_alu(AddE, dst, lhs, Imm::F(rhs))), - DslIr::AddEFFI(dst, lhs, rhs) => f(self.ext_alu(AddE, dst, lhs, Imm::EF(rhs))), + DslIr::AddEFI(dst, lhs, rhs) => f(self.ext_alu(AddE, dst, lhs, Imm::f(rhs))), + DslIr::AddEFFI(dst, lhs, rhs) => f(self.ext_alu(AddE, dst, lhs, Imm::ef(rhs))), DslIr::SubV(dst, lhs, rhs) => f(self.base_alu(SubF, dst, lhs, rhs)), - DslIr::SubVI(dst, lhs, rhs) => f(self.base_alu(SubF, dst, lhs, Imm::F(rhs))), - DslIr::SubVIN(dst, lhs, rhs) => f(self.base_alu(SubF, dst, Imm::F(lhs), rhs)), + DslIr::SubVI(dst, lhs, rhs) => f(self.base_alu(SubF, dst, lhs, Imm::f(rhs))), + DslIr::SubVIN(dst, lhs, rhs) => f(self.base_alu(SubF, dst, Imm::f(lhs), rhs)), DslIr::SubF(dst, lhs, rhs) => f(self.base_alu(SubF, dst, lhs, rhs)), - DslIr::SubFI(dst, lhs, rhs) => f(self.base_alu(SubF, dst, lhs, Imm::F(rhs))), - DslIr::SubFIN(dst, lhs, rhs) => f(self.base_alu(SubF, dst, Imm::F(lhs), rhs)), + DslIr::SubFI(dst, lhs, rhs) => f(self.base_alu(SubF, dst, lhs, Imm::f(rhs))), + DslIr::SubFIN(dst, lhs, rhs) => f(self.base_alu(SubF, dst, Imm::f(lhs), rhs)), DslIr::SubE(dst, lhs, rhs) => f(self.ext_alu(SubE, dst, lhs, rhs)), - DslIr::SubEI(dst, lhs, rhs) => f(self.ext_alu(SubE, dst, lhs, Imm::EF(rhs))), - DslIr::SubEIN(dst, lhs, rhs) => f(self.ext_alu(SubE, dst, Imm::EF(lhs), rhs)), - DslIr::SubEFI(dst, lhs, rhs) => f(self.ext_alu(SubE, dst, lhs, Imm::F(rhs))), + DslIr::SubEI(dst, lhs, rhs) => f(self.ext_alu(SubE, dst, lhs, Imm::ef(rhs))), + DslIr::SubEIN(dst, lhs, rhs) => f(self.ext_alu(SubE, dst, Imm::ef(lhs), rhs)), + DslIr::SubEFI(dst, lhs, rhs) => f(self.ext_alu(SubE, dst, lhs, Imm::f(rhs))), DslIr::SubEF(dst, lhs, rhs) => f(self.ext_alu(SubE, dst, lhs, rhs)), DslIr::MulV(dst, lhs, rhs) => f(self.base_alu(MulF, dst, lhs, rhs)), - DslIr::MulVI(dst, lhs, rhs) => f(self.base_alu(MulF, dst, lhs, Imm::F(rhs))), + DslIr::MulVI(dst, lhs, rhs) => f(self.base_alu(MulF, dst, lhs, Imm::f(rhs))), DslIr::MulF(dst, lhs, rhs) => f(self.base_alu(MulF, dst, lhs, rhs)), - DslIr::MulFI(dst, lhs, rhs) => f(self.base_alu(MulF, dst, lhs, Imm::F(rhs))), + DslIr::MulFI(dst, lhs, rhs) => f(self.base_alu(MulF, dst, lhs, Imm::f(rhs))), DslIr::MulE(dst, lhs, rhs) => f(self.ext_alu(MulE, dst, lhs, rhs)), - DslIr::MulEI(dst, lhs, rhs) => f(self.ext_alu(MulE, dst, lhs, Imm::EF(rhs))), - DslIr::MulEFI(dst, lhs, rhs) => f(self.ext_alu(MulE, dst, lhs, Imm::F(rhs))), + DslIr::MulEI(dst, lhs, rhs) => f(self.ext_alu(MulE, dst, lhs, Imm::ef(rhs))), + DslIr::MulEFI(dst, lhs, rhs) => f(self.ext_alu(MulE, dst, lhs, Imm::f(rhs))), DslIr::MulEF(dst, lhs, rhs) => f(self.ext_alu(MulE, dst, lhs, rhs)), DslIr::DivF(dst, lhs, rhs) => f(self.base_alu(DivF, dst, lhs, rhs)), - DslIr::DivFI(dst, lhs, rhs) => f(self.base_alu(DivF, dst, lhs, Imm::F(rhs))), - DslIr::DivFIN(dst, lhs, rhs) => f(self.base_alu(DivF, dst, Imm::F(lhs), rhs)), + DslIr::DivFI(dst, lhs, rhs) => f(self.base_alu(DivF, dst, lhs, Imm::f(rhs))), + DslIr::DivFIN(dst, lhs, rhs) => f(self.base_alu(DivF, dst, Imm::f(lhs), rhs)), DslIr::DivE(dst, lhs, rhs) => f(self.ext_alu(DivE, dst, lhs, rhs)), - DslIr::DivEI(dst, lhs, rhs) => f(self.ext_alu(DivE, dst, lhs, Imm::EF(rhs))), - DslIr::DivEIN(dst, lhs, rhs) => f(self.ext_alu(DivE, dst, Imm::EF(lhs), rhs)), - DslIr::DivEFI(dst, lhs, rhs) => f(self.ext_alu(DivE, dst, lhs, Imm::F(rhs))), - DslIr::DivEFIN(dst, lhs, rhs) => f(self.ext_alu(DivE, dst, Imm::F(lhs), rhs)), + DslIr::DivEI(dst, lhs, rhs) => f(self.ext_alu(DivE, dst, lhs, Imm::ef(rhs))), + DslIr::DivEIN(dst, lhs, rhs) => f(self.ext_alu(DivE, dst, Imm::ef(lhs), rhs)), + DslIr::DivEFI(dst, lhs, rhs) => f(self.ext_alu(DivE, dst, lhs, Imm::f(rhs))), + DslIr::DivEFIN(dst, lhs, rhs) => f(self.ext_alu(DivE, dst, Imm::f(lhs), rhs)), DslIr::DivEF(dst, lhs, rhs) => f(self.ext_alu(DivE, dst, lhs, rhs)), - DslIr::NegV(dst, src) => f(self.base_alu(SubF, dst, Imm::F(C::F::zero()), src)), - DslIr::NegF(dst, src) => f(self.base_alu(SubF, dst, Imm::F(C::F::zero()), src)), - DslIr::NegE(dst, src) => f(self.ext_alu(SubE, dst, Imm::EF(C::EF::zero()), src)), - DslIr::InvV(dst, src) => f(self.base_alu(DivF, dst, Imm::F(C::F::one()), src)), - DslIr::InvF(dst, src) => f(self.base_alu(DivF, dst, Imm::F(C::F::one()), src)), - DslIr::InvE(dst, src) => f(self.ext_alu(DivE, dst, Imm::F(C::F::one()), src)), + DslIr::NegV(dst, src) => f(self.base_alu(SubF, dst, Imm::f(C::F::zero()), src)), + DslIr::NegF(dst, src) => f(self.base_alu(SubF, dst, Imm::f(C::F::zero()), src)), + DslIr::NegE(dst, src) => f(self.ext_alu(SubE, dst, Imm::ef(C::EF::zero()), src)), + DslIr::InvV(dst, src) => f(self.base_alu(DivF, dst, Imm::f(C::F::one()), src)), + DslIr::InvF(dst, src) => f(self.base_alu(DivF, dst, Imm::f(C::F::one()), src)), + DslIr::InvE(dst, src) => f(self.ext_alu(DivE, dst, Imm::f(C::F::one()), src)), DslIr::AssertEqV(lhs, rhs) => self.base_assert_eq(lhs, rhs, f), DslIr::AssertEqF(lhs, rhs) => self.base_assert_eq(lhs, rhs, f), DslIr::AssertEqE(lhs, rhs) => self.ext_assert_eq(lhs, rhs, f), - DslIr::AssertEqVI(lhs, rhs) => self.base_assert_eq(lhs, Imm::F(rhs), f), - DslIr::AssertEqFI(lhs, rhs) => self.base_assert_eq(lhs, Imm::F(rhs), f), - DslIr::AssertEqEI(lhs, rhs) => self.ext_assert_eq(lhs, Imm::EF(rhs), f), + DslIr::AssertEqVI(lhs, rhs) => self.base_assert_eq(lhs, Imm::f(rhs), f), + DslIr::AssertEqFI(lhs, rhs) => self.base_assert_eq(lhs, Imm::f(rhs), f), + DslIr::AssertEqEI(lhs, rhs) => self.ext_assert_eq(lhs, Imm::ef(rhs), f), DslIr::AssertNeV(lhs, rhs) => self.base_assert_ne(lhs, rhs, f), DslIr::AssertNeF(lhs, rhs) => self.base_assert_ne(lhs, rhs, f), DslIr::AssertNeE(lhs, rhs) => self.ext_assert_ne(lhs, rhs, f), - DslIr::AssertNeVI(lhs, rhs) => self.base_assert_ne(lhs, Imm::F(rhs), f), - DslIr::AssertNeFI(lhs, rhs) => self.base_assert_ne(lhs, Imm::F(rhs), f), - DslIr::AssertNeEI(lhs, rhs) => self.ext_assert_ne(lhs, Imm::EF(rhs), f), + DslIr::AssertNeVI(lhs, rhs) => self.base_assert_ne(lhs, Imm::f(rhs), f), + DslIr::AssertNeFI(lhs, rhs) => self.base_assert_ne(lhs, Imm::f(rhs), f), + DslIr::AssertNeEI(lhs, rhs) => self.ext_assert_ne(lhs, Imm::ef(rhs), f), DslIr::CircuitV2Poseidon2PermuteBabyBear(data) => { f(self.poseidon2_permute(data.0, data.1)) @@ -536,7 +544,7 @@ where // Replace the mults using the address count data gathered in this previous. // Exhaustive match for refactoring purposes. - let total_memory = self.addr_to_mult.len() + self.consts.len(); + let total_memory = self.addr_to_mult.len(); let mut backfill = |(mult, addr): (&mut F, &Address)| { *mult = self.addr_to_mult.remove(addr.as_usize()).unwrap() }; @@ -553,12 +561,6 @@ where addrs: ExtAluIo { out: ref addr, .. }, .. }) => backfill((mult, addr)), - Instruction::Mem(MemInstr { - addrs: MemIo { inner: ref addr }, - mult, - kind: MemAccessKind::Write, - .. - }) => backfill((mult, addr)), Instruction::Poseidon2(instr) => { let Poseidon2SkinnyInstr { addrs: Poseidon2Io { output: ref addrs, .. }, @@ -595,21 +597,21 @@ where .iter_mut() .for_each(|(addr, mult)| backfill((mult, addr))); } + Instruction::Mem(_) => { + panic!("mem instructions should be produced through the `consts` map") + } // Instructions that do not write to memory. - Instruction::Mem(MemInstr { kind: MemAccessKind::Read, .. }) - | Instruction::CommitPublicValues(_) - | Instruction::Print(_) => (), + Instruction::CommitPublicValues(_) | Instruction::Print(_) => (), } } }); - debug_assert!(self.addr_to_mult.is_empty()); // Initialize constants. let total_consts = self.consts.len(); - let instrs_consts = take(&mut self.consts).into_iter().map(|(imm, (addr, mult))| { + let instrs_consts = take(&mut self.consts).into_iter().map(|(imm, addr)| { Instruction::Mem(MemInstr { addrs: MemIo { inner: addr }, vals: MemIo { inner: imm.as_block() }, - mult, + mult: self.addr_to_mult.remove(addr.as_usize()).unwrap(), kind: MemAccessKind::Write, }) }); @@ -627,6 +629,7 @@ where (instrs_consts.chain(instrs).collect(), traces) } }); + debug_assert!(self.addr_to_mult.is_empty()); RecursionProgram { instructions, total_memory, traces } } } @@ -667,6 +670,27 @@ pub enum Imm { EF(EF), } +impl Imm +where + F: Field, + EF: AbstractExtensionField, +{ + /// Wraps its argument in `Self::F`. + pub fn f(f: F) -> Self { + Self::F(f) + } + + /// If `ef` lives in the base field, then we encode it as `Self::F`. + /// Otherwise, we encode it as `Self::EF`. + pub fn ef(ef: EF) -> Self { + if ef.as_base_slice()[1..].iter().all(Field::is_zero) { + Self::F(ef.as_base_slice()[0]) + } else { + Self::EF(ef) + } + } +} + impl PartialOrd for Imm where F: PartialEq + AbstractField + PartialOrd, @@ -711,6 +735,25 @@ where } } +/// Expose the "virtual address" counter of the variable types. +trait HasVirtualAddress { + fn vaddr(&self) -> usize; +} + +macro_rules! impl_has_virtual_address { + ($type:ident<$($gen:ident),*>) => { + impl<$($gen),*> HasVirtualAddress for $type<$($gen),*> { + fn vaddr(&self) -> usize { + self.0 as usize + } + } + }; +} + +impl_has_virtual_address!(Var); +impl_has_virtual_address!(Felt); +impl_has_virtual_address!(Ext); + /// Utility functions for various register types. trait Reg { /// Mark the register as to be read from, returning the "physical" address. @@ -723,54 +766,20 @@ trait Reg { fn write(&self, compiler: &mut AsmCompiler) -> Address; } -macro_rules! impl_reg_borrowed { - ($a:ty) => { - impl Reg for $a - where - C: Config, - T: Reg + ?Sized, - { - fn read(&self, compiler: &mut AsmCompiler) -> Address { - (**self).read(compiler) - } - - fn read_ghost(&self, compiler: &mut AsmCompiler) -> Address { - (**self).read_ghost(compiler) - } - - fn write(&self, compiler: &mut AsmCompiler) -> Address { - (**self).write(compiler) - } - } - }; -} +impl, T: HasVirtualAddress> Reg for T { + fn read(&self, compiler: &mut AsmCompiler) -> Address { + compiler.read_vaddr(self.vaddr()) + } -// Allow for more flexibility in arguments. -impl_reg_borrowed!(&T); -impl_reg_borrowed!(&mut T); -impl_reg_borrowed!(Box); + fn read_ghost(&self, compiler: &mut AsmCompiler) -> Address { + compiler.read_ghost_vaddr(self.vaddr()) + } -macro_rules! impl_reg_vaddr { - ($a:ty) => { - impl> Reg for $a { - fn read(&self, compiler: &mut AsmCompiler) -> Address { - compiler.read_vaddr(self.0 as usize) - } - fn read_ghost(&self, compiler: &mut AsmCompiler) -> Address { - compiler.read_ghost_vaddr(self.0 as usize) - } - fn write(&self, compiler: &mut AsmCompiler) -> Address { - compiler.write_fp(self.0 as usize) - } - } - }; + fn write(&self, compiler: &mut AsmCompiler) -> Address { + compiler.write_fp(self.vaddr()) + } } -// These three types have `.fp()` but they don't share a trait. -impl_reg_vaddr!(Var); -impl_reg_vaddr!(Felt); -impl_reg_vaddr!(Ext); - impl> Reg for Imm { fn read(&self, compiler: &mut AsmCompiler) -> Address { compiler.read_const(*self) diff --git a/crates/recursion/core-v2/src/chips/mem/constant.rs b/crates/recursion/core-v2/src/chips/mem/constant.rs index 1b3654a1e..681cbac8d 100644 --- a/crates/recursion/core-v2/src/chips/mem/constant.rs +++ b/crates/recursion/core-v2/src/chips/mem/constant.rs @@ -12,7 +12,7 @@ use crate::{builder::SP1RecursionAirBuilder, *}; use super::MemoryAccessCols; -pub const NUM_MEM_ENTRIES_PER_ROW: usize = 16; +pub const NUM_MEM_ENTRIES_PER_ROW: usize = 6; #[derive(Default)] pub struct MemoryChip { From 0aca3c238d918d54371409ac90f3a8391a8b3a64 Mon Sep 17 00:00:00 2001 From: Matt Stam <15695189+mattstam@users.noreply.github.com> Date: Wed, 28 Aug 2024 14:23:29 -0700 Subject: [PATCH 04/20] fix: zkvm readme paths (#1416) --- crates/zkvm/entrypoint/Cargo.toml | 2 +- crates/zkvm/lib/Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/zkvm/entrypoint/Cargo.toml b/crates/zkvm/entrypoint/Cargo.toml index bd9fed014..03670adb6 100644 --- a/crates/zkvm/entrypoint/Cargo.toml +++ b/crates/zkvm/entrypoint/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "sp1-zkvm" description = "SP1 is a performant, 100% open-source, contributor-friendly zkVM." -readme = "../../README.md" +readme = "../../../README.md" version = { workspace = true } edition = { workspace = true } license = { workspace = true } diff --git a/crates/zkvm/lib/Cargo.toml b/crates/zkvm/lib/Cargo.toml index 3c819bbb6..86b4aacd0 100644 --- a/crates/zkvm/lib/Cargo.toml +++ b/crates/zkvm/lib/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "sp1-lib" description = "SP1 is a performant, 100% open-source, contributor-friendly zkVM." -readme = "../../README.md" +readme = "../../../README.md" version = { workspace = true } edition = { workspace = true } license = { workspace = true } From 68b0fe2fde04c94644ed82d26201d72650827def Mon Sep 17 00:00:00 2001 From: Tej Qu Nair Date: Wed, 28 Aug 2024 14:37:01 -0700 Subject: [PATCH 05/20] fix: avoid duplicate logic in `read_const` (#1424) --- crates/recursion/compiler/src/circuit/compiler.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/recursion/compiler/src/circuit/compiler.rs b/crates/recursion/compiler/src/circuit/compiler.rs index c83f973d8..377d92ab9 100644 --- a/crates/recursion/compiler/src/circuit/compiler.rs +++ b/crates/recursion/compiler/src/circuit/compiler.rs @@ -143,7 +143,7 @@ where /// Increments the mult, first creating an entry if it does not yet exist. pub fn read_const(&mut self, imm: Imm) -> Address { use vec_map::Entry; - let addr = self.read_ghost_const(imm); + let addr = *self.consts.entry(imm).or_insert_with(|| Self::alloc(&mut self.next_addr)); match self.addr_to_mult.entry(addr.as_usize()) { Entry::Vacant(entry) => drop(entry.insert(C::F::one())), Entry::Occupied(mut entry) => *entry.get_mut() += C::F::one(), From 71788761c82ddab0271d68c81a210d08b28e76d8 Mon Sep 17 00:00:00 2001 From: Shaked Regev Date: Wed, 28 Aug 2024 16:46:39 -0700 Subject: [PATCH 06/20] down to 8 errors --- crates/core/executor/src/events/alu.rs | 11 ++--- crates/core/executor/src/events/cpu.rs | 22 +++++----- .../executor/src/events/precompiles/ec.rs | 11 +++-- crates/core/executor/src/events/utils.rs | 42 ++++++++++++++++--- crates/core/executor/src/executor.rs | 28 ++++++++----- crates/core/executor/src/record.rs | 4 +- crates/core/executor/src/syscalls/context.rs | 6 +-- 7 files changed, 83 insertions(+), 41 deletions(-) diff --git a/crates/core/executor/src/events/alu.rs b/crates/core/executor/src/events/alu.rs index 67b30a6a1..25b2d3d8a 100644 --- a/crates/core/executor/src/events/alu.rs +++ b/crates/core/executor/src/events/alu.rs @@ -2,7 +2,7 @@ use serde::{Deserialize, Serialize}; use crate::Opcode; -use super::create_alu_lookups; +use super::{create_alu_lookups, LookupId}; /// Arithmetic Logic Unit (ALU) Event. /// @@ -11,7 +11,7 @@ use super::create_alu_lookups; #[derive(Debug, Clone, Copy, Serialize, Deserialize)] pub struct AluEvent { /// The lookup identifer. - pub lookup_id: u128, + pub lookup_id: LookupId, /// The shard number. pub shard: u32, /// The channel number. @@ -27,15 +27,16 @@ pub struct AluEvent { /// The third operand. pub c: u32, /// The result of the operation. - pub sub_lookups: [u128; 6], + /// make in the format of [LookupId; 6] + pub sub_lookups: [LookupId; 6], } - +//use crate::events::create_alu_lookup_id; impl AluEvent { /// Create a new [`AluEvent`]. #[must_use] pub fn new(shard: u32, channel: u8, clk: u32, opcode: Opcode, a: u32, b: u32, c: u32) -> Self { Self { - lookup_id: 0, + lookup_id: LookupId::default(), shard, channel, clk, diff --git a/crates/core/executor/src/events/cpu.rs b/crates/core/executor/src/events/cpu.rs index 31af950d4..cf6d9b4da 100644 --- a/crates/core/executor/src/events/cpu.rs +++ b/crates/core/executor/src/events/cpu.rs @@ -2,7 +2,7 @@ use serde::{Deserialize, Serialize}; use crate::Instruction; -use super::memory::MemoryRecordEnum; +use super::{memory::MemoryRecordEnum, LookupId}; /// CPU Event. /// @@ -41,23 +41,23 @@ pub struct CpuEvent { /// The exit code. pub exit_code: u32, /// The ALU lookup id. - pub alu_lookup_id: u128, + pub alu_lookup_id: LookupId, /// The syscall lookup id. - pub syscall_lookup_id: u128, + pub syscall_lookup_id: LookupId, /// The memory add lookup id. - pub memory_add_lookup_id: u128, + pub memory_add_lookup_id: LookupId, /// The memory sub lookup id. - pub memory_sub_lookup_id: u128, + pub memory_sub_lookup_id: LookupId, /// The branch gt lookup id. - pub branch_gt_lookup_id: u128, + pub branch_gt_lookup_id: LookupId, /// The branch lt lookup id. - pub branch_lt_lookup_id: u128, + pub branch_lt_lookup_id: LookupId, /// The branch add lookup id. - pub branch_add_lookup_id: u128, + pub branch_add_lookup_id: LookupId, /// The jump jal lookup id. - pub jump_jal_lookup_id: u128, + pub jump_jal_lookup_id: LookupId, /// The jump jalr lookup id. - pub jump_jalr_lookup_id: u128, + pub jump_jalr_lookup_id: LookupId, /// The auipc lookup id. - pub auipc_lookup_id: u128, + pub auipc_lookup_id: LookupId, } diff --git a/crates/core/executor/src/events/precompiles/ec.rs b/crates/core/executor/src/events/precompiles/ec.rs index 03efcb774..ff8fee984 100644 --- a/crates/core/executor/src/events/precompiles/ec.rs +++ b/crates/core/executor/src/events/precompiles/ec.rs @@ -9,7 +9,10 @@ use sp1_primitives::consts::{bytes_to_words_le_vec, words_to_bytes_le_vec}; use typenum::Unsigned; use crate::{ - events::memory::{MemoryReadRecord, MemoryWriteRecord}, + events::{ + memory::{MemoryReadRecord, MemoryWriteRecord}, + LookupId, + }, syscalls::SyscallContext, }; @@ -18,7 +21,7 @@ use crate::{ /// This event is emitted when an elliptic curve addition operation is performed. #[derive(Debug, Clone, Serialize, Deserialize)] pub struct EllipticCurveAddEvent { - pub(crate) lookup_id: u128, + pub(crate) lookup_id: LookupId, /// The shard number. pub shard: u32, /// The channel number. @@ -45,7 +48,7 @@ pub struct EllipticCurveAddEvent { #[derive(Debug, Clone, Serialize, Deserialize)] pub struct EllipticCurveDoubleEvent { /// The lookup identifer. - pub lookup_id: u128, + pub lookup_id: LookupId, /// The shard number. pub shard: u32, /// The channel number. @@ -66,7 +69,7 @@ pub struct EllipticCurveDoubleEvent { #[derive(Debug, Clone, Serialize, Deserialize)] pub struct EllipticCurveDecompressEvent { /// The lookup identifer. - pub lookup_id: u128, + pub lookup_id: LookupId, /// The shard number. pub shard: u32, /// The channel number. diff --git a/crates/core/executor/src/events/utils.rs b/crates/core/executor/src/events/utils.rs index 7ef304ae4..8f1c6f9a8 100644 --- a/crates/core/executor/src/events/utils.rs +++ b/crates/core/executor/src/events/utils.rs @@ -1,22 +1,52 @@ +use serde::Deserialize; +use serde::Serialize; use std::{ fmt::Display, iter::{Map, Peekable}, }; use rand::{thread_rng, Rng}; +#[derive(Deserialize, Serialize, Debug, Clone, Copy, Default, Eq, Hash, PartialEq)] +pub struct LookupId { + pub a: u32, + pub b: u32, + pub c: u32, + pub d: u32, +} + +// /// Creates a new ALU lookup id. +// #[must_use] +// pub fn create_alu_lookup_id() -> u128 { +// let mut rng = thread_rng(); +// rng.gen() +// } -/// Creates a new ALU lookup id. +/// Creates a new ALU lookup id with LookupId4 #[must_use] -pub fn create_alu_lookup_id() -> u128 { +pub fn create_alu_lookup_id() -> LookupId { let mut rng = thread_rng(); - rng.gen() + LookupId { a: rng.gen(), b: rng.gen(), c: rng.gen(), d: rng.gen() } } -/// Creates a new ALU lookup ids. +// /// Creates a new ALU lookup ids. +// #[must_use] +// pub fn create_alu_lookups() -> [u128; 6] { +// let mut rng = thread_rng(); +// [rng.gen(), rng.gen(), rng.gen(), rng.gen(), rng.gen(), rng.gen()] +// } + +/// Creates a new ALU lookup id with LookupId4 #[must_use] -pub fn create_alu_lookups() -> [u128; 6] { +pub fn create_alu_lookups() -> [LookupId; 6] { let mut rng = thread_rng(); - [rng.gen(), rng.gen(), rng.gen(), rng.gen(), rng.gen(), rng.gen()] + [ + LookupId { a: rng.gen(), b: rng.gen(), c: rng.gen(), d: rng.gen() }, + LookupId { a: rng.gen(), b: rng.gen(), c: rng.gen(), d: rng.gen() }, + LookupId { a: rng.gen(), b: rng.gen(), c: rng.gen(), d: rng.gen() }, + LookupId { a: rng.gen(), b: rng.gen(), c: rng.gen(), d: rng.gen() }, + LookupId { a: rng.gen(), b: rng.gen(), c: rng.gen(), d: rng.gen() }, + LookupId { a: rng.gen(), b: rng.gen(), c: rng.gen(), d: rng.gen() }, + ] } /// Returns sorted and formatted rows of a table of counts (e.g. `opcode_counts`). diff --git a/crates/core/executor/src/executor.rs b/crates/core/executor/src/executor.rs index 539034276..20ba50704 100644 --- a/crates/core/executor/src/executor.rs +++ b/crates/core/executor/src/executor.rs @@ -9,12 +9,14 @@ use nohash_hasher::BuildNoHashHasher; use serde::{Deserialize, Serialize}; use sp1_stark::SP1CoreOpts; use thiserror::Error; +use tracing::event; use crate::{ context::SP1Context, events::{ - create_alu_lookup_id, create_alu_lookups, AluEvent, CpuEvent, MemoryAccessPosition, - MemoryInitializeFinalizeEvent, MemoryReadRecord, MemoryRecord, MemoryWriteRecord, + self, create_alu_lookup_id, create_alu_lookups, AluEvent, CpuEvent, LookupId, + MemoryAccessPosition, MemoryInitializeFinalizeEvent, MemoryReadRecord, MemoryRecord, + MemoryWriteRecord, }, hook::{HookEnv, HookRegistry}, record::{ExecutionRecord, MemoryAccessRecord}, @@ -525,8 +527,8 @@ impl<'a> Executor<'a> { memory_store_value: Option, record: MemoryAccessRecord, exit_code: u32, - lookup_id: u128, - syscall_lookup_id: u128, + lookup_id: LookupId, + syscall_lookup_id: LookupId, ) { let cpu_event = CpuEvent { shard, @@ -560,7 +562,7 @@ impl<'a> Executor<'a> { } /// Emit an ALU event. - fn emit_alu(&mut self, clk: u32, opcode: Opcode, a: u32, b: u32, c: u32, lookup_id: u128) { + fn emit_alu(&mut self, clk: u32, opcode: Opcode, a: u32, b: u32, c: u32, lookup_id: LookupId) { let event = AluEvent { lookup_id, shard: self.shard(), @@ -628,7 +630,7 @@ impl<'a> Executor<'a> { a: u32, b: u32, c: u32, - lookup_id: u128, + lookup_id: LookupId, ) { self.rw(rd, a); if self.executor_mode == ExecutorMode::Trace { @@ -688,10 +690,16 @@ impl<'a> Executor<'a> { if self.executor_mode != ExecutorMode::Simple { self.memory_accesses = MemoryAccessRecord::default(); } - let lookup_id = - if self.executor_mode == ExecutorMode::Simple { 0 } else { create_alu_lookup_id() }; - let syscall_lookup_id = - if self.executor_mode == ExecutorMode::Simple { 0 } else { create_alu_lookup_id() }; + let lookup_id = if self.executor_mode == ExecutorMode::Simple { + LookupId::default() + } else { + create_alu_lookup_id() + }; + let syscall_lookup_id = if self.executor_mode == ExecutorMode::Simple { + LookupId::default() + } else { + create_alu_lookup_id() + }; if self.print_report && !self.unconstrained { self.report diff --git a/crates/core/executor/src/record.rs b/crates/core/executor/src/record.rs index fe2fab16d..ab78477f0 100644 --- a/crates/core/executor/src/record.rs +++ b/crates/core/executor/src/record.rs @@ -10,7 +10,7 @@ use super::{program::Program, Opcode}; use crate::events::{ add_sharded_byte_lookup_events, AluEvent, ByteLookupEvent, ByteRecord, CpuEvent, EdDecompressEvent, EllipticCurveAddEvent, EllipticCurveDecompressEvent, - EllipticCurveDoubleEvent, Fp2AddSubEvent, Fp2MulEvent, FpOpEvent, KeccakPermuteEvent, + EllipticCurveDoubleEvent, Fp2AddSubEvent, Fp2MulEvent, FpOpEvent, KeccakPermuteEvent, LookupId, MemoryInitializeFinalizeEvent, MemoryRecordEnum, ShaCompressEvent, ShaExtendEvent, Uint256MulEvent, }; @@ -89,7 +89,7 @@ pub struct ExecutionRecord { /// The public values. pub public_values: PublicValues, /// The nonce lookup. - pub nonce_lookup: HashMap, + pub nonce_lookup: HashMap, } impl ExecutionRecord { diff --git a/crates/core/executor/src/syscalls/context.rs b/crates/core/executor/src/syscalls/context.rs index 3d9716bb4..60c93e478 100644 --- a/crates/core/executor/src/syscalls/context.rs +++ b/crates/core/executor/src/syscalls/context.rs @@ -1,5 +1,5 @@ use crate::{ - events::{MemoryReadRecord, MemoryWriteRecord}, + events::{LookupId, MemoryReadRecord, MemoryWriteRecord}, record::ExecutionRecord, Executor, Register, }; @@ -19,7 +19,7 @@ pub struct SyscallContext<'a, 'b: 'a> { /// The runtime. pub rt: &'a mut Executor<'b>, /// The syscall lookup id. - pub syscall_lookup_id: u128, + pub syscall_lookup_id: LookupId, } impl<'a, 'b> SyscallContext<'a, 'b> { @@ -33,7 +33,7 @@ impl<'a, 'b> SyscallContext<'a, 'b> { next_pc: runtime.state.pc.wrapping_add(4), exit_code: 0, rt: runtime, - syscall_lookup_id: 0, + syscall_lookup_id: LookupId::default(), } } From 2dc8080c3f447ab16435c8724140b1dc57bfa3da Mon Sep 17 00:00:00 2001 From: Shaked Regev Date: Wed, 28 Aug 2024 17:06:50 -0700 Subject: [PATCH 07/20] changed u128 to LookupId --- .../executor/src/events/precompiles/edwards.rs | 7 +++++-- .../executor/src/events/precompiles/fptower.rs | 8 ++++---- .../events/precompiles/keccak256_permute.rs | 7 +++++-- .../src/events/precompiles/sha256_compress.rs | 7 +++++-- .../src/events/precompiles/sha256_extend.rs | 4 ++-- .../executor/src/events/precompiles/uint256.rs | 7 +++++-- .../src/syscalls/precompiles/fptower/fp.rs | 2 +- .../syscalls/precompiles/fptower/fp2_addsub.rs | 2 +- .../syscalls/precompiles/fptower/fp2_mul.rs | 2 +- crates/core/machine/src/cpu/trace.rs | 18 +++++++++--------- 10 files changed, 38 insertions(+), 26 deletions(-) diff --git a/crates/core/executor/src/events/precompiles/edwards.rs b/crates/core/executor/src/events/precompiles/edwards.rs index 672602b2e..17daf6837 100644 --- a/crates/core/executor/src/events/precompiles/edwards.rs +++ b/crates/core/executor/src/events/precompiles/edwards.rs @@ -1,7 +1,10 @@ use serde::{Deserialize, Serialize}; use sp1_curves::{edwards::WORDS_FIELD_ELEMENT, COMPRESSED_POINT_BYTES, NUM_BYTES_FIELD_ELEMENT}; -use crate::events::memory::{MemoryReadRecord, MemoryWriteRecord}; +use crate::events::{ + memory::{MemoryReadRecord, MemoryWriteRecord}, + LookupId, +}; /// Edwards Decompress Event. /// @@ -9,7 +12,7 @@ use crate::events::memory::{MemoryReadRecord, MemoryWriteRecord}; #[derive(Debug, Clone, Serialize, Deserialize)] pub struct EdDecompressEvent { /// The lookup identifer. - pub lookup_id: u128, + pub lookup_id: LookupId, /// The shard number. pub shard: u32, /// The channel number. diff --git a/crates/core/executor/src/events/precompiles/fptower.rs b/crates/core/executor/src/events/precompiles/fptower.rs index bfe30431f..e8eed2782 100644 --- a/crates/core/executor/src/events/precompiles/fptower.rs +++ b/crates/core/executor/src/events/precompiles/fptower.rs @@ -1,6 +1,6 @@ use serde::{Deserialize, Serialize}; -use crate::events::{MemoryReadRecord, MemoryWriteRecord}; +use crate::events::{LookupId, MemoryReadRecord, MemoryWriteRecord}; /// Airthmetic operation for emulating modular arithmetic. #[derive(PartialEq, Copy, Clone, Debug, Serialize, Deserialize)] @@ -21,7 +21,7 @@ pub enum FieldOperation { #[derive(Debug, Clone, Serialize, Deserialize)] pub struct FpOpEvent { /// The lookup id. - pub lookup_id: usize, + pub lookup_id: LookupId, /// The shard number. pub shard: u32, /// The channel number. @@ -50,7 +50,7 @@ pub struct FpOpEvent { #[derive(Debug, Clone, Serialize, Deserialize)] pub struct Fp2AddSubEvent { /// The lookup id. - pub lookup_id: usize, + pub lookup_id: LookupId, /// The shard number. pub shard: u32, /// The channel number. @@ -77,7 +77,7 @@ pub struct Fp2AddSubEvent { #[derive(Debug, Clone, Serialize, Deserialize)] pub struct Fp2MulEvent { /// The lookup id. - pub lookup_id: usize, + pub lookup_id: LookupId, /// The shard number. pub shard: u32, /// The channel number. diff --git a/crates/core/executor/src/events/precompiles/keccak256_permute.rs b/crates/core/executor/src/events/precompiles/keccak256_permute.rs index e9934eb2d..19ad29503 100644 --- a/crates/core/executor/src/events/precompiles/keccak256_permute.rs +++ b/crates/core/executor/src/events/precompiles/keccak256_permute.rs @@ -1,6 +1,9 @@ use serde::{Deserialize, Serialize}; -use crate::events::memory::{MemoryReadRecord, MemoryWriteRecord}; +use crate::events::{ + memory::{MemoryReadRecord, MemoryWriteRecord}, + LookupId, +}; pub(crate) const STATE_SIZE: usize = 25; @@ -10,7 +13,7 @@ pub(crate) const STATE_SIZE: usize = 25; #[derive(Debug, Clone, Serialize, Deserialize)] pub struct KeccakPermuteEvent { /// The lookup identifer. - pub lookup_id: u128, + pub lookup_id: LookupId, /// The shard number. pub shard: u32, /// The channel number. diff --git a/crates/core/executor/src/events/precompiles/sha256_compress.rs b/crates/core/executor/src/events/precompiles/sha256_compress.rs index 421ed54e8..4c3f42bf3 100644 --- a/crates/core/executor/src/events/precompiles/sha256_compress.rs +++ b/crates/core/executor/src/events/precompiles/sha256_compress.rs @@ -1,6 +1,9 @@ use serde::{Deserialize, Serialize}; -use crate::events::memory::{MemoryReadRecord, MemoryWriteRecord}; +use crate::events::{ + memory::{MemoryReadRecord, MemoryWriteRecord}, + LookupId, +}; /// SHA-256 Compress Event. /// @@ -8,7 +11,7 @@ use crate::events::memory::{MemoryReadRecord, MemoryWriteRecord}; #[derive(Debug, Clone, Serialize, Deserialize)] pub struct ShaCompressEvent { /// The lookup identifer. - pub lookup_id: u128, + pub lookup_id: LookupId, /// The shard number. pub shard: u32, /// The channel number. diff --git a/crates/core/executor/src/events/precompiles/sha256_extend.rs b/crates/core/executor/src/events/precompiles/sha256_extend.rs index 64d7e4330..5cf493aa8 100644 --- a/crates/core/executor/src/events/precompiles/sha256_extend.rs +++ b/crates/core/executor/src/events/precompiles/sha256_extend.rs @@ -1,14 +1,14 @@ use serde::{Deserialize, Serialize}; use crate::events::memory::{MemoryReadRecord, MemoryWriteRecord}; - +use crate::events::LookupId; /// SHA-256 Extend Event. /// /// This event is emitted when a SHA-256 extend operation is performed. #[derive(Debug, Clone, Serialize, Deserialize)] pub struct ShaExtendEvent { /// The lookup identifer. - pub lookup_id: u128, + pub lookup_id: LookupId, /// The shard number. pub shard: u32, /// The channel number. diff --git a/crates/core/executor/src/events/precompiles/uint256.rs b/crates/core/executor/src/events/precompiles/uint256.rs index 7c4cb136f..bcd13e140 100644 --- a/crates/core/executor/src/events/precompiles/uint256.rs +++ b/crates/core/executor/src/events/precompiles/uint256.rs @@ -1,6 +1,9 @@ use serde::{Deserialize, Serialize}; -use crate::events::memory::{MemoryReadRecord, MemoryWriteRecord}; +use crate::events::{ + memory::{MemoryReadRecord, MemoryWriteRecord}, + LookupId, +}; /// Uint256 Mul Event. /// @@ -8,7 +11,7 @@ use crate::events::memory::{MemoryReadRecord, MemoryWriteRecord}; #[derive(Debug, Clone, Serialize, Deserialize)] pub struct Uint256MulEvent { /// The lookup identifer. - pub lookup_id: u128, + pub lookup_id: LookupId, /// The shard number. pub shard: u32, /// The channel number. diff --git a/crates/core/executor/src/syscalls/precompiles/fptower/fp.rs b/crates/core/executor/src/syscalls/precompiles/fptower/fp.rs index 93ea8f3f7..703efa87a 100644 --- a/crates/core/executor/src/syscalls/precompiles/fptower/fp.rs +++ b/crates/core/executor/src/syscalls/precompiles/fptower/fp.rs @@ -55,7 +55,7 @@ impl Syscall for FpOpSyscall

{ rt.clk += 1; let x_memory_records = rt.mw_slice(x_ptr, &result); - let lookup_id = rt.syscall_lookup_id as usize; + let lookup_id = rt.syscall_lookup_id; let shard = rt.current_shard(); let channel = rt.current_channel(); match P::FIELD_TYPE { diff --git a/crates/core/executor/src/syscalls/precompiles/fptower/fp2_addsub.rs b/crates/core/executor/src/syscalls/precompiles/fptower/fp2_addsub.rs index 6d737db27..548566d61 100644 --- a/crates/core/executor/src/syscalls/precompiles/fptower/fp2_addsub.rs +++ b/crates/core/executor/src/syscalls/precompiles/fptower/fp2_addsub.rs @@ -63,7 +63,7 @@ impl Syscall for Fp2AddSubSyscall

{ result.resize(num_words, 0); let x_memory_records = rt.mw_slice(x_ptr, &result); - let lookup_id = rt.syscall_lookup_id as usize; + let lookup_id = rt.syscall_lookup_id; let shard = rt.current_shard(); let channel = rt.current_channel(); let op = self.op; diff --git a/crates/core/executor/src/syscalls/precompiles/fptower/fp2_mul.rs b/crates/core/executor/src/syscalls/precompiles/fptower/fp2_mul.rs index d4e4748d9..652bba003 100644 --- a/crates/core/executor/src/syscalls/precompiles/fptower/fp2_mul.rs +++ b/crates/core/executor/src/syscalls/precompiles/fptower/fp2_mul.rs @@ -62,7 +62,7 @@ impl Syscall for Fp2MulSyscall

{ result.resize(num_words, 0); let x_memory_records = rt.mw_slice(x_ptr, &result); - let lookup_id = rt.syscall_lookup_id as usize; + let lookup_id = rt.syscall_lookup_id; let shard = rt.current_shard(); let channel = rt.current_channel(); match P::FIELD_TYPE { diff --git a/crates/core/machine/src/cpu/trace.rs b/crates/core/machine/src/cpu/trace.rs index 5c9d413cb..5189d7774 100644 --- a/crates/core/machine/src/cpu/trace.rs +++ b/crates/core/machine/src/cpu/trace.rs @@ -2,11 +2,11 @@ use hashbrown::HashMap; use itertools::Itertools; use sp1_core_executor::{ events::{ - create_alu_lookups, AluEvent, ByteLookupEvent, ByteRecord, CpuEvent, MemoryRecordEnum, + create_alu_lookups, AluEvent, ByteLookupEvent, ByteRecord, CpuEvent, LookupId, + MemoryRecordEnum, }, syscalls::SyscallCode, - ByteOpcode, - ByteOpcode::U16Range, + ByteOpcode::{self, U16Range}, ExecutionRecord, Opcode, Program, Register::X0, }; @@ -110,7 +110,7 @@ impl CpuChip { fn event_to_row( &self, event: &CpuEvent, - nonce_lookup: &HashMap, + nonce_lookup: &HashMap, cols: &mut CpuCols, blu_events: &mut impl ByteRecord, ) -> HashMap> { @@ -252,7 +252,7 @@ impl CpuChip { event: &CpuEvent, new_alu_events: &mut HashMap>, blu_events: &mut impl ByteRecord, - nonce_lookup: &HashMap, + nonce_lookup: &HashMap, ) { if !matches!( event.instruction.opcode, @@ -406,7 +406,7 @@ impl CpuChip { cols: &mut CpuCols, event: &CpuEvent, alu_events: &mut HashMap>, - nonce_lookup: &HashMap, + nonce_lookup: &HashMap, ) { if event.instruction.is_branch_instruction() { let branch_columns = cols.opcode_specific_columns.branch_mut(); @@ -522,7 +522,7 @@ impl CpuChip { cols: &mut CpuCols, event: &CpuEvent, alu_events: &mut HashMap>, - nonce_lookup: &HashMap, + nonce_lookup: &HashMap, ) { if event.instruction.is_jump_instruction() { let jump_columns = cols.opcode_specific_columns.jump_mut(); @@ -593,7 +593,7 @@ impl CpuChip { cols: &mut CpuCols, event: &CpuEvent, alu_events: &mut HashMap>, - nonce_lookup: &HashMap, + nonce_lookup: &HashMap, ) { if matches!(event.instruction.opcode, Opcode::AUIPC) { let auipc_columns = cols.opcode_specific_columns.auipc_mut(); @@ -628,7 +628,7 @@ impl CpuChip { &self, cols: &mut CpuCols, event: &CpuEvent, - nonce_lookup: &HashMap, + nonce_lookup: &HashMap, ) -> bool { let mut is_halt = false; From 291157c457fdf8f7b4bce3924995d9df8f100c18 Mon Sep 17 00:00:00 2001 From: Shaked Regev Date: Wed, 28 Aug 2024 17:31:43 -0700 Subject: [PATCH 08/20] fixed warnings --- crates/core/executor/src/events/utils.rs | 14 ++++++++++++-- crates/core/executor/src/executor.rs | 3 +-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/crates/core/executor/src/events/utils.rs b/crates/core/executor/src/events/utils.rs index 8f1c6f9a8..a8312e293 100644 --- a/crates/core/executor/src/events/utils.rs +++ b/crates/core/executor/src/events/utils.rs @@ -7,10 +7,20 @@ use std::{ use rand::{thread_rng, Rng}; #[derive(Deserialize, Serialize, Debug, Clone, Copy, Default, Eq, Hash, PartialEq)] +/// A lookup id for the ALU. +/// This is used to identify the lookup table used by the ALU. +/// The ALU uses 6 lookup tables, each identified by a unique id. +/// The id is used to generate the lookup table. +/// The id is generated randomly and is unique. +/// We are using 4 u32 to generate the id to make this compatible with a c struct pub struct LookupId { + /// First part of the id. pub a: u32, + /// Second part of the id. pub b: u32, + /// Third part of the id. pub c: u32, + /// Fourth part of the id. pub d: u32, } @@ -21,7 +31,7 @@ pub struct LookupId { // rng.gen() // } -/// Creates a new ALU lookup id with LookupId4 +/// Creates a new ALU lookup id with ``LookupId`` #[must_use] pub fn create_alu_lookup_id() -> LookupId { let mut rng = thread_rng(); @@ -35,7 +45,7 @@ pub fn create_alu_lookup_id() -> LookupId { // [rng.gen(), rng.gen(), rng.gen(), rng.gen(), rng.gen(), rng.gen()] // } -/// Creates a new ALU lookup id with LookupId4 +/// Creates a new ALU lookup id with ``LookupId`` #[must_use] pub fn create_alu_lookups() -> [LookupId; 6] { let mut rng = thread_rng(); diff --git a/crates/core/executor/src/executor.rs b/crates/core/executor/src/executor.rs index 20ba50704..240313c09 100644 --- a/crates/core/executor/src/executor.rs +++ b/crates/core/executor/src/executor.rs @@ -9,12 +9,11 @@ use nohash_hasher::BuildNoHashHasher; use serde::{Deserialize, Serialize}; use sp1_stark::SP1CoreOpts; use thiserror::Error; -use tracing::event; use crate::{ context::SP1Context, events::{ - self, create_alu_lookup_id, create_alu_lookups, AluEvent, CpuEvent, LookupId, + create_alu_lookup_id, create_alu_lookups, AluEvent, CpuEvent, LookupId, MemoryAccessPosition, MemoryInitializeFinalizeEvent, MemoryReadRecord, MemoryRecord, MemoryWriteRecord, }, From 03be9331e800602411a7dd67b5bca36cd3240a5c Mon Sep 17 00:00:00 2001 From: Shaked Regev Date: Wed, 28 Aug 2024 17:36:37 -0700 Subject: [PATCH 09/20] fixed warnings --- crates/core/executor/src/events/alu.rs | 2 +- crates/core/executor/src/events/utils.rs | 14 -------------- 2 files changed, 1 insertion(+), 15 deletions(-) diff --git a/crates/core/executor/src/events/alu.rs b/crates/core/executor/src/events/alu.rs index 25b2d3d8a..f6a4f6790 100644 --- a/crates/core/executor/src/events/alu.rs +++ b/crates/core/executor/src/events/alu.rs @@ -27,7 +27,7 @@ pub struct AluEvent { /// The third operand. pub c: u32, /// The result of the operation. - /// make in the format of [LookupId; 6] + /// make in the format of [``LookupId``; 6] pub sub_lookups: [LookupId; 6], } //use crate::events::create_alu_lookup_id; diff --git a/crates/core/executor/src/events/utils.rs b/crates/core/executor/src/events/utils.rs index a8312e293..caf2639fc 100644 --- a/crates/core/executor/src/events/utils.rs +++ b/crates/core/executor/src/events/utils.rs @@ -24,13 +24,6 @@ pub struct LookupId { pub d: u32, } -// /// Creates a new ALU lookup id. -// #[must_use] -// pub fn create_alu_lookup_id() -> u128 { -// let mut rng = thread_rng(); -// rng.gen() -// } - /// Creates a new ALU lookup id with ``LookupId`` #[must_use] pub fn create_alu_lookup_id() -> LookupId { @@ -38,13 +31,6 @@ pub fn create_alu_lookup_id() -> LookupId { LookupId { a: rng.gen(), b: rng.gen(), c: rng.gen(), d: rng.gen() } } -// /// Creates a new ALU lookup ids. -// #[must_use] -// pub fn create_alu_lookups() -> [u128; 6] { -// let mut rng = thread_rng(); -// [rng.gen(), rng.gen(), rng.gen(), rng.gen(), rng.gen(), rng.gen()] -// } - /// Creates a new ALU lookup id with ``LookupId`` #[must_use] pub fn create_alu_lookups() -> [LookupId; 6] { From 0d84144fe0f49c693f2e7d4191269bd26e394628 Mon Sep 17 00:00:00 2001 From: John Guibas Date: Wed, 28 Aug 2024 19:02:50 -0700 Subject: [PATCH 10/20] fix: add nonce constraint to fp (#1423) --- .../core/machine/src/syscall/precompiles/fptower/fp.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/crates/core/machine/src/syscall/precompiles/fptower/fp.rs b/crates/core/machine/src/syscall/precompiles/fptower/fp.rs index a87170afc..35a04f823 100644 --- a/crates/core/machine/src/syscall/precompiles/fptower/fp.rs +++ b/crates/core/machine/src/syscall/precompiles/fptower/fp.rs @@ -8,7 +8,7 @@ use crate::air::MemoryAirBuilder; use generic_array::GenericArray; use itertools::Itertools; use num::{BigUint, Zero}; -use p3_air::{Air, BaseAir}; +use p3_air::{Air, AirBuilder, BaseAir}; use p3_field::{AbstractField, PrimeField32}; use p3_matrix::{dense::RowMajorMatrix, Matrix}; use sp1_core_executor::{ @@ -202,11 +202,18 @@ where let main = builder.main(); let local = main.row_slice(0); let local: &FpOpCols = (*local).borrow(); + let next = main.row_slice(1); + let next: &FpOpCols = (*next).borrow(); + + // Check that nonce is incremented. + builder.when_first_row().assert_zero(local.nonce); + builder.when_transition().assert_eq(local.nonce + AB::Expr::one(), next.nonce); // Check that operations flags are boolean. builder.assert_bool(local.is_add); builder.assert_bool(local.is_sub); builder.assert_bool(local.is_mul); + // Check that only one of them is set. builder.assert_eq(local.is_add + local.is_sub + local.is_mul, AB::Expr::one()); From e3025ff72b327346371e122c14bbc56133354348 Mon Sep 17 00:00:00 2001 From: Yuwen Zhang Date: Wed, 28 Aug 2024 20:47:38 -0700 Subject: [PATCH 11/20] feat: compile sdk to wasm-unknown-unknown (#1429) --- .github/workflows/pr.yml | 9 ++++++++ Cargo.lock | 4 ++++ crates/sdk/Cargo.toml | 19 +++++++++-------- crates/sdk/src/artifacts.rs | 15 +++++++++---- crates/sdk/src/install.rs | 35 ++++++++++++++++++++----------- crates/sdk/src/lib.rs | 21 +++++++++++++++++++ crates/sdk/src/network/prover.rs | 5 +++-- crates/stark/Cargo.toml | 2 ++ crates/zkvm/entrypoint/Cargo.toml | 2 +- 9 files changed, 84 insertions(+), 28 deletions(-) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 2d7673efe..70b0ec58b 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -153,6 +153,15 @@ jobs: env: CARGO_INCREMENTAL: 1 + - name: Add wasm target + run: rustup target add wasm32-unknown-unknown + + - name: Check wasm compatibility for sdk + uses: actions-rs/cargo@v1 + with: + command: check + args: -p sp1-sdk --target wasm32-unknown-unknown --no-default-features + examples: name: Examples runs-on: [runs-on, runner=8cpu-linux-x64, "run-id=${{ github.run_id }}"] diff --git a/Cargo.lock b/Cargo.lock index c94250fb4..319f045ec 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2091,8 +2091,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", + "js-sys", "libc", "wasi", + "wasm-bindgen", ] [[package]] @@ -5516,6 +5518,7 @@ dependencies = [ "dirs", "ethers", "futures", + "getrandom", "hashbrown 0.14.5", "hex", "indicatif", @@ -5553,6 +5556,7 @@ name = "sp1-stark" version = "1.2.0-rc1" dependencies = [ "arrayref", + "getrandom", "hashbrown 0.14.5", "itertools 0.13.0", "p3-air", diff --git a/crates/sdk/Cargo.toml b/crates/sdk/Cargo.toml index df0c75914..1d296f94b 100644 --- a/crates/sdk/Cargo.toml +++ b/crates/sdk/Cargo.toml @@ -13,21 +13,21 @@ categories = { workspace = true } prost = "0.12" serde = { version = "1.0.204", features = ["derive"] } serde_json = "1.0.121" -twirp = { package = "twirp-rs", version = "0.3.0-succinct" } +twirp = { package = "twirp-rs", version = "0.3.0-succinct" , optional=true } async-trait = "0.1.81" -reqwest-middleware = "0.3.2" +reqwest-middleware = { version = "0.3.2", optional = true } reqwest = { version = "0.12.4", features = [ "rustls-tls", "trust-dns", "stream", -] } +], optional = true } anyhow = "1.0.83" sp1-prover = { workspace = true } sp1-core-machine = { workspace = true } -sp1-cuda = { workspace = true } +sp1-cuda = { workspace = true , optional = true} futures = "0.3.30" bincode = "1.3.3" -tokio = { version = "1.39.2", features = ["full"] } +tokio = { version = "1.39.2", features = ["full"], optional = true} p3-matrix = { workspace = true } p3-commit = { workspace = true } p3-field = { workspace = true } @@ -37,14 +37,14 @@ indicatif = "0.17.8" tracing = "0.1.40" hex = "0.4.3" log = "0.4.22" -axum = "=0.7.4" +axum = { version = "=0.7.4", optional = true } alloy-sol-types = { version = "0.7.7", optional = true } sha2 = "0.10.8" dirs = "5.0.1" tempfile = "3.10.1" num-bigint = "0.4.6" cfg-if = "1.0" -ethers = { version = "2", default-features = false } +ethers = { version = "2", default-features = false, optional = true} strum_macros = "0.26.4" strum = "0.26.3" thiserror = "1.0.63" @@ -52,6 +52,7 @@ hashbrown = "0.14.5" sysinfo = "0.30.13" sp1-core-executor = { workspace = true } sp1-stark = { workspace = true } +getrandom = { version = "0.2.15", features = ["custom", "js"] } [features] default = ["network"] @@ -59,8 +60,8 @@ neon = ["sp1-core-machine/neon"] native-gnark = ["sp1-prover/native-gnark"] # TODO: Once alloy has a 1.* release, we can likely remove this feature flag, as there will be less # dependency resolution issues. -network = ["dep:alloy-sol-types"] -cuda = [] +network = ["dep:alloy-sol-types", "dep:tokio", "dep:ethers", "dep:reqwest", "dep:twirp", "dep:reqwest-middleware"] +cuda = ["sp1-cuda"] [build-dependencies] vergen = { version = "8", default-features = false, features = [ diff --git a/crates/sdk/src/artifacts.rs b/crates/sdk/src/artifacts.rs index 6bf52aaab..5718e4551 100644 --- a/crates/sdk/src/artifacts.rs +++ b/crates/sdk/src/artifacts.rs @@ -1,9 +1,15 @@ -use std::{cmp::min, fs::File, io::Write, path::PathBuf}; +use std::path::PathBuf; use anyhow::{Context, Result}; -use futures::StreamExt; -use indicatif::{ProgressBar, ProgressStyle}; -use reqwest::Client; + +#[cfg(feature = "network")] +use { + futures::StreamExt, + indicatif::{ProgressBar, ProgressStyle}, + reqwest::Client, + std::{cmp::min, fs::File, io::Write}, +}; + pub use sp1_prover::build::build_plonk_bn254_artifacts_with_dummy; use crate::install::try_install_circuit_artifacts; @@ -66,6 +72,7 @@ pub fn export_solidity_groth16_bn254_verifier(output_dir: impl Into) -> Ok(()) } +#[cfg(feature = "network")] pub async fn download_file( client: &Client, url: &str, diff --git a/crates/sdk/src/install.rs b/crates/sdk/src/install.rs index d0cbf87ca..4285cad51 100644 --- a/crates/sdk/src/install.rs +++ b/crates/sdk/src/install.rs @@ -1,9 +1,14 @@ -use std::{cmp::min, io::Write, path::PathBuf, process::Command}; - -use futures::StreamExt; -use indicatif::{ProgressBar, ProgressStyle}; -use reqwest::Client; -use sp1_cuda::block_on; +use cfg_if::cfg_if; +use std::path::PathBuf; + +#[cfg(feature = "network")] +use { + crate::block_on, + futures::StreamExt, + indicatif::{ProgressBar, ProgressStyle}, + reqwest::Client, + std::{cmp::min, io::Write, process::Command}, +}; use crate::SP1_CIRCUIT_VERSION; @@ -25,12 +30,16 @@ pub fn try_install_circuit_artifacts() -> PathBuf { build_dir.display() ); } else { - println!( - "[sp1] circuit artifacts for version {} do not exist at {}. downloading...", - SP1_CIRCUIT_VERSION, - build_dir.display() - ); - install_circuit_artifacts(build_dir.clone()); + cfg_if! { + if #[cfg(feature = "network")] { + println!( + "[sp1] circuit artifacts for version {} do not exist at {}. downloading...", + SP1_CIRCUIT_VERSION, + build_dir.display() + ); + install_circuit_artifacts(build_dir.clone()); + } + } } build_dir } @@ -39,6 +48,7 @@ pub fn try_install_circuit_artifacts() -> PathBuf { /// /// This function will download the latest circuit artifacts from the S3 bucket and extract them /// to the directory specified by [plonk_bn254_artifacts_dir()]. +#[cfg(feature = "network")] pub fn install_circuit_artifacts(build_dir: PathBuf) { // Create the build directory. std::fs::create_dir_all(&build_dir).expect("failed to create build directory"); @@ -72,6 +82,7 @@ pub fn install_circuit_artifacts_dir() -> PathBuf { } /// Download the file with a progress bar that indicates the progress. +#[cfg(feature = "network")] pub async fn download_file( client: &Client, url: &str, diff --git a/crates/sdk/src/lib.rs b/crates/sdk/src/lib.rs index d699a4c4b..da73835c0 100644 --- a/crates/sdk/src/lib.rs +++ b/crates/sdk/src/lib.rs @@ -6,6 +6,7 @@ //! in the official SP1 documentation for a quick start guide. #[rustfmt::skip] +#[cfg(feature = "network")] pub mod proto { pub mod network; } @@ -29,8 +30,12 @@ use cfg_if::cfg_if; pub use proof::*; pub use provers::SP1VerificationError; use sp1_prover::components::DefaultProverComponents; + use std::env; +#[cfg(feature = "network")] +use {std::future::Future, tokio::task::block_in_place}; + pub use provers::{CpuProver, MockProver, Prover}; pub use sp1_core_executor::{ExecutionReport, HookEnv, SP1Context, SP1ContextBuilder}; @@ -267,6 +272,22 @@ impl Default for ProverClient { } } +/// Utility method for blocking on an async function. +/// +/// If we're already in a tokio runtime, we'll block in place. Otherwise, we'll create a new +/// runtime. +#[cfg(feature = "network")] +pub fn block_on(fut: impl Future) -> T { + // Handle case if we're already in an tokio runtime. + if let Ok(handle) = tokio::runtime::Handle::try_current() { + block_in_place(|| handle.block_on(fut)) + } else { + // Otherwise create a new runtime. + let rt = tokio::runtime::Runtime::new().expect("Failed to create a new runtime"); + rt.block_on(fut) + } +} + #[cfg(test)] mod tests { diff --git a/crates/sdk/src/network/prover.rs b/crates/sdk/src/network/prover.rs index cd267cc2b..0b0759fcc 100644 --- a/crates/sdk/src/network/prover.rs +++ b/crates/sdk/src/network/prover.rs @@ -11,10 +11,11 @@ use crate::{ use anyhow::Result; use serde::de::DeserializeOwned; use sp1_core_machine::io::SP1Stdin; -use sp1_cuda::block_on; use sp1_prover::{components::DefaultProverComponents, SP1Prover, SP1_CIRCUIT_VERSION}; use sp1_stark::SP1ProverOpts; -use tokio::time::sleep; + +#[cfg(feature = "network")] +use {crate::block_on, tokio::time::sleep}; use crate::provers::{CpuProver, ProofOpts, ProverType}; diff --git a/crates/stark/Cargo.toml b/crates/stark/Cargo.toml index e9c76632e..e00ab2990 100644 --- a/crates/stark/Cargo.toml +++ b/crates/stark/Cargo.toml @@ -37,6 +37,8 @@ itertools = "0.13.0" tracing = "0.1.40" rayon-scan = "0.1.1" arrayref = "0.3.8" +getrandom = { version = "0.2.15", features = ["custom"] } + [dev-dependencies] sp1-zkvm = { workspace = true } diff --git a/crates/zkvm/entrypoint/Cargo.toml b/crates/zkvm/entrypoint/Cargo.toml index 03670adb6..e24ef6b10 100644 --- a/crates/zkvm/entrypoint/Cargo.toml +++ b/crates/zkvm/entrypoint/Cargo.toml @@ -12,7 +12,7 @@ categories = { workspace = true } [dependencies] bincode = "1.3.3" cfg-if = "1.0.0" -getrandom = { version = "0.2.14", features = ["custom"] } +getrandom = { version = "0.2.15", features = ["custom"] } once_cell = "1.19.0" rand = "0.8.5" serde = { version = "1.0.204", features = ["derive"] } From cb08706ae161e9d14ef3ac64b21f204c2f228879 Mon Sep 17 00:00:00 2001 From: Shaked Regev Date: Thu, 29 Aug 2024 09:34:26 -0700 Subject: [PATCH 12/20] fixed comments --- crates/core/executor/src/events/utils.rs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/crates/core/executor/src/events/utils.rs b/crates/core/executor/src/events/utils.rs index caf2639fc..681bc6cc7 100644 --- a/crates/core/executor/src/events/utils.rs +++ b/crates/core/executor/src/events/utils.rs @@ -6,13 +6,12 @@ use std::{ }; use rand::{thread_rng, Rng}; + +/// A unique identifier for lookups. +/// +/// We use 4 u32s instead of a u128 to make it compatible with C. #[derive(Deserialize, Serialize, Debug, Clone, Copy, Default, Eq, Hash, PartialEq)] -/// A lookup id for the ALU. -/// This is used to identify the lookup table used by the ALU. -/// The ALU uses 6 lookup tables, each identified by a unique id. -/// The id is used to generate the lookup table. -/// The id is generated randomly and is unique. -/// We are using 4 u32 to generate the id to make this compatible with a c struct + pub struct LookupId { /// First part of the id. pub a: u32, From 82675e91006fcf941cf6715e9c1a5257a257f32b Mon Sep 17 00:00:00 2001 From: Matt Stam <15695189+mattstam@users.noreply.github.com> Date: Thu, 29 Aug 2024 10:53:56 -0700 Subject: [PATCH 13/20] feat: performance test + add to CI (#1426) --- .github/workflows/eval.yml | 47 - .github/workflows/pr.yml | 36 +- Cargo.lock | 1452 +++++++++++++++-- Cargo.toml | 6 +- crates/eval/Cargo.toml | 27 + crates/eval/programs/fibonacci/elf | Bin 0 -> 127644 bytes crates/eval/programs/fibonacci/input.bin | Bin 0 -> 36 bytes crates/eval/programs/ssz-withdrawals/elf | Bin 0 -> 200548 bytes .../eval/programs/ssz-withdrawals/input.bin | Bin 0 -> 24 bytes crates/eval/programs/tendermint/elf | Bin 0 -> 1175064 bytes crates/eval/programs/tendermint/input.bin | Bin 0 -> 105667 bytes crates/eval/src/lib.rs | 404 +++++ crates/eval/src/main.rs | 8 + crates/eval/src/program.rs | 37 + crates/sdk/src/install.rs | 11 +- 15 files changed, 1824 insertions(+), 204 deletions(-) delete mode 100644 .github/workflows/eval.yml create mode 100644 crates/eval/Cargo.toml create mode 100755 crates/eval/programs/fibonacci/elf create mode 100644 crates/eval/programs/fibonacci/input.bin create mode 100755 crates/eval/programs/ssz-withdrawals/elf create mode 100644 crates/eval/programs/ssz-withdrawals/input.bin create mode 100755 crates/eval/programs/tendermint/elf create mode 100644 crates/eval/programs/tendermint/input.bin create mode 100644 crates/eval/src/lib.rs create mode 100644 crates/eval/src/main.rs create mode 100644 crates/eval/src/program.rs diff --git a/.github/workflows/eval.yml b/.github/workflows/eval.yml deleted file mode 100644 index 02e4e3c2c..000000000 --- a/.github/workflows/eval.yml +++ /dev/null @@ -1,47 +0,0 @@ -name: Evaluate Performance - -on: - schedule: - - cron: "0 0 * * *" # Runs at 00:00 UTC every day - -jobs: - benchmark: - name: Benchmark - runs-on: ${{ matrix.runner_label }} - strategy: - matrix: - include: - - runner_label: self-hosted-x86 - arch: x86 - - runner_label: self-hosted-arm64 - arch: arm64 - if: "! contains(toJSON(github.event.commits.*.message), '[skip-ci]')" - env: - CARGO_NET_GIT_FETCH_WITH_CLI: "true" - steps: - - name: Checkout sources - uses: actions/checkout@v4 - - - name: Set up git private repo access - run: | - git config --global url."https://${{ secrets.PRIVATE_PULL_TOKEN }}@github.com/".insteadOf ssh://git@github.com - git config --global url."https://${{ secrets.PRIVATE_PULL_TOKEN }}@github.com".insteadOf https://github.com - - - name: Setup toolchain - id: rustc-toolchain - run: rustup show - - - name: Install SP1 toolchain - run: | - curl -L https://sp1.succinct.xyz | bash - sp1up - - - name: Build and Run Evaluation - run: | - ./eval.sh - - - name: Upload Benchmark as Artifact - uses: actions/upload-artifact@v4 - with: - name: benchmark-results-${{ matrix.arch }} - path: benchmark.csv diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 70b0ec58b..6f29a0b47 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -49,8 +49,6 @@ jobs: FRI_QUERIES: 1 SP1_DEV: 1 - - test-x86: name: Test (x86-64) runs-on: @@ -230,3 +228,37 @@ jobs: cargo remove sp1-sdk cargo add sp1-sdk --path $GITHUB_WORKSPACE/crates/sdk SP1_DEV=1 RUST_LOG=info cargo run --release -- --prove + + performance: + name: Performance + runs-on: [runs-on, family=c7a.48xlarge, "run-id=${{ github.run_id }}"] + env: + CARGO_NET_GIT_FETCH_WITH_CLI: "true" + steps: + - name: Checkout sources + uses: actions/checkout@v4 + + - name: Setup CI + uses: ./.github/actions/setup + + - name: Install SP1 toolchain + run: | + curl -L https://sp1.succinct.xyz | bash + ~/.sp1/bin/sp1up + ~/.sp1/bin/cargo-prove prove --version + + - name: Build program and run script + run: | + cd crates/eval + RUSTFLAGS='-C target-cpu=native' cargo run --release -- \ + --programs fibonacci,ssz-withdrawals,tendermint \ + --slack-channel-id ${{ secrets.SLACK_CHANNEL_ID }} \ + --slack-token ${{ secrets.SLACK_TOKEN }} \ + --github-token "${{ secrets.GITHUB_TOKEN }}" \ + --repo-owner "${{ github.repository_owner }}" \ + --repo-name "${{ github.event.repository.name }}" \ + --pr-number "${{ github.event.pull_request.number }}" \ + --pr-name "${{ github.event.pull_request.title }}" \ + --branch-name "${{ github.head_ref || github.ref_name }}" \ + --commit-hash "${{ github.sha }}" \ + --author "${{ github.event.pull_request.user.login || github.actor }}" diff --git a/Cargo.lock b/Cargo.lock index 319f045ec..48a47df7c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -38,6 +38,26 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "aead" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fc95d1bdb8e6666b2b217308eeeb09f2d6728d104be3e31916cc74d15420331" +dependencies = [ + "generic-array 0.14.7", +] + +[[package]] +name = "aes" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884391ef1066acaa41e766ba8f596341b96e93ce34f9a43e7d24bf0a0eaf0561" +dependencies = [ + "aes-soft", + "aesni", + "cipher 0.2.5", +] + [[package]] name = "aes" version = "0.8.4" @@ -45,10 +65,44 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", - "cipher", + "cipher 0.4.4", "cpufeatures", ] +[[package]] +name = "aes-gcm" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5278b5fabbb9bd46e24aa69b2fdea62c99088e0a950a9be40e3e0101298f88da" +dependencies = [ + "aead", + "aes 0.6.0", + "cipher 0.2.5", + "ctr 0.6.0", + "ghash", + "subtle", +] + +[[package]] +name = "aes-soft" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be14c7498ea50828a38d0e24a765ed2effe92a705885b57d029cd67d45744072" +dependencies = [ + "cipher 0.2.5", + "opaque-debug", +] + +[[package]] +name = "aesni" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea2e11f5e94c2f7d386164cc2aa1f97823fed6f259e486940a71c174dd01b0ce" +dependencies = [ + "cipher 0.2.5", + "opaque-debug", +] + [[package]] name = "ahash" version = "0.8.11" @@ -83,7 +137,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccb3ead547f4532bc8af961649942f0b9c16ee9226e26caa3f38420651cc0bf4" dependencies = [ "alloy-rlp", - "bytes", + "bytes 1.7.1", "cfg-if", "const-hex", "derive_more", @@ -92,7 +146,7 @@ dependencies = [ "k256", "keccak-asm", "proptest", - "rand", + "rand 0.8.5", "ruint", "serde", "tiny-keccak", @@ -105,7 +159,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26154390b1d205a4a7ac7352aa2eb4f81f391399d4e2f546fb81a2f8bb383f62" dependencies = [ "arrayvec", - "bytes", + "bytes 1.7.1", ] [[package]] @@ -366,7 +420,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" dependencies = [ "num-traits", - "rand", + "rand 0.8.5", ] [[package]] @@ -376,7 +430,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" dependencies = [ "num-traits", - "rand", + "rand 0.8.5", ] [[package]] @@ -391,6 +445,172 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" +[[package]] +name = "async-attributes" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "async-channel" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" +dependencies = [ + "concurrent-queue", + "event-listener 2.5.3", + "futures-core", +] + +[[package]] +name = "async-channel" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" +dependencies = [ + "concurrent-queue", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-executor" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7ebdfa2ebdab6b1760375fa7d6f382b9f486eac35fc994625a00e89280bdbb7" +dependencies = [ + "async-task", + "concurrent-queue", + "fastrand 2.1.0", + "futures-lite 2.3.0", + "slab", +] + +[[package]] +name = "async-global-executor" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c" +dependencies = [ + "async-channel 2.3.1", + "async-executor", + "async-io 2.3.4", + "async-lock 3.4.0", + "blocking", + "futures-lite 2.3.0", + "once_cell", +] + +[[package]] +name = "async-io" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" +dependencies = [ + "async-lock 2.8.0", + "autocfg", + "cfg-if", + "concurrent-queue", + "futures-lite 1.13.0", + "log", + "parking", + "polling 2.8.0", + "rustix 0.37.27", + "slab", + "socket2 0.4.10", + "waker-fn", +] + +[[package]] +name = "async-io" +version = "2.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "444b0228950ee6501b3568d3c93bf1176a1fdbc3b758dcd9475046d30f4dc7e8" +dependencies = [ + "async-lock 3.4.0", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite 2.3.0", + "parking", + "polling 3.7.3", + "rustix 0.38.34", + "slab", + "tracing", + "windows-sys 0.59.0", +] + +[[package]] +name = "async-lock" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" +dependencies = [ + "event-listener 2.5.3", +] + +[[package]] +name = "async-lock" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" +dependencies = [ + "event-listener 5.3.1", + "event-listener-strategy", + "pin-project-lite", +] + +[[package]] +name = "async-std" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d" +dependencies = [ + "async-attributes", + "async-channel 1.9.0", + "async-global-executor", + "async-io 1.13.0", + "async-lock 2.8.0", + "crossbeam-utils", + "futures-channel", + "futures-core", + "futures-io", + "futures-lite 1.13.0", + "gloo-timers", + "kv-log-macro", + "log", + "memchr", + "once_cell", + "pin-project-lite", + "pin-utils", + "slab", + "wasm-bindgen-futures", +] + +[[package]] +name = "async-task" +version = "4.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" + +[[package]] +name = "async-tls" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f23d769dbf1838d5df5156e7b1ad404f4c463d1ac2c6aeb6cd943630f8a8400" +dependencies = [ + "futures-core", + "futures-io", + "rustls 0.19.1", + "webpki", + "webpki-roots 0.21.1", +] + [[package]] name = "async-trait" version = "0.1.81" @@ -402,6 +622,19 @@ dependencies = [ "syn 2.0.72", ] +[[package]] +name = "async-tungstenite" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6acf7e4a267eecbb127ed696bb2d50572c22ba7f586a646321e1798d8336a1" +dependencies = [ + "futures-io", + "futures-util", + "log", + "pin-project-lite", + "tungstenite", +] + [[package]] name = "async_io_stream" version = "0.3.3" @@ -444,7 +677,7 @@ checksum = "1236b4b292f6c4d6dc34604bb5120d85c3fe1d1aa596bd5cc52ca054d13e7b9e" dependencies = [ "async-trait", "axum-core", - "bytes", + "bytes 1.7.1", "futures-util", "http 1.1.0", "http-body 1.0.1", @@ -477,7 +710,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a15c63fd72d41492dc4f497196f5da1fb04fb7529e631d73630d1b491e47a2e3" dependencies = [ "async-trait", - "bytes", + "bytes 1.7.1", "futures-util", "http 1.1.0", "http-body 1.0.1", @@ -507,6 +740,12 @@ dependencies = [ "serde", ] +[[package]] +name = "base-x" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" + [[package]] name = "base16ct" version = "0.2.0" @@ -648,6 +887,15 @@ dependencies = [ "rayon-core", ] +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "generic-array 0.14.7", +] + [[package]] name = "block-buffer" version = "0.10.4" @@ -657,6 +905,19 @@ dependencies = [ "generic-array 0.14.7", ] +[[package]] +name = "blocking" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" +dependencies = [ + "async-channel 2.3.1", + "async-task", + "futures-io", + "futures-lite 2.3.0", + "piper", +] + [[package]] name = "bls12_381" version = "0.7.1" @@ -666,7 +927,7 @@ dependencies = [ "ff 0.12.1", "group 0.12.1", "pairing", - "rand_core", + "rand_core 0.6.4", "subtle", ] @@ -676,7 +937,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" dependencies = [ - "sha2", + "sha2 0.10.8", "tinyvec", ] @@ -704,6 +965,12 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" +[[package]] +name = "bytes" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" + [[package]] name = "bytes" version = "1.7.1" @@ -842,6 +1109,15 @@ dependencies = [ "half", ] +[[package]] +name = "cipher" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801" +dependencies = [ + "generic-array 0.14.7", +] + [[package]] name = "cipher" version = "0.4.4" @@ -882,7 +1158,7 @@ dependencies = [ "anstream", "anstyle", "clap_lex", - "strsim", + "strsim 0.11.1", ] [[package]] @@ -918,10 +1194,10 @@ dependencies = [ "bs58", "coins-core", "digest 0.10.7", - "hmac", + "hmac 0.12.1", "k256", "serde", - "sha2", + "sha2 0.10.8", "thiserror", ] @@ -933,11 +1209,11 @@ checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" dependencies = [ "bitvec", "coins-bip32", - "hmac", + "hmac 0.12.1", "once_cell", "pbkdf2 0.12.2", - "rand", - "sha2", + "rand 0.8.5", + "sha2 0.10.8", "thiserror", ] @@ -956,7 +1232,7 @@ dependencies = [ "ripemd", "serde", "serde_derive", - "sha2", + "sha2 0.10.8", "sha3", "thiserror", ] @@ -967,6 +1243,15 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "console" version = "0.15.8" @@ -999,6 +1284,12 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" +[[package]] +name = "const_fn" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "373e9fafaa20882876db20562275ff58d50e0caa2590077fe7ce7bef90211d0d" + [[package]] name = "constant_time_eq" version = "0.3.0" @@ -1011,6 +1302,23 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" +[[package]] +name = "cookie" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03a5d7b21829bc7b4bf4754a978a241ae54ea55a40f92bb20216e54096f4b951" +dependencies = [ + "aes-gcm", + "base64 0.13.1", + "hkdf", + "hmac 0.10.1", + "percent-encoding", + "rand 0.8.5", + "sha2 0.9.9", + "time 0.2.27", + "version_check", +] + [[package]] name = "core-foundation" version = "0.9.4" @@ -1036,6 +1344,12 @@ dependencies = [ "libc", ] +[[package]] +name = "cpuid-bool" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcb25d077389e53838a8158c8e99174c5a9d902dee4904320db714f3c653ffba" + [[package]] name = "criterion" version = "0.5.1" @@ -1110,7 +1424,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ "generic-array 0.14.7", - "rand_core", + "rand_core 0.6.4", "subtle", "zeroize", ] @@ -1125,6 +1439,16 @@ dependencies = [ "typenum", ] +[[package]] +name = "crypto-mac" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4857fd85a0c34b3c3297875b747c1e02e06b6a0ea32dd892d8192b9ce0813ea6" +dependencies = [ + "generic-array 0.14.7", + "subtle", +] + [[package]] name = "csv" version = "1.3.0" @@ -1146,13 +1470,22 @@ dependencies = [ "memchr", ] +[[package]] +name = "ctr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb4a30d54f7443bf3d6191dcd486aca19e67cb3c49fa7a06a319966346707e7f" +dependencies = [ + "cipher 0.2.5", +] + [[package]] name = "ctr" version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" dependencies = [ - "cipher", + "cipher 0.4.4", ] [[package]] @@ -1165,6 +1498,37 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "curl" +version = "0.4.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e2161dd6eba090ff1594084e95fd67aeccf04382ffea77999ea94ed42ec67b6" +dependencies = [ + "curl-sys", + "libc", + "openssl-probe", + "openssl-sys", + "schannel", + "socket2 0.5.7", + "windows-sys 0.52.0", +] + +[[package]] +name = "curl-sys" +version = "0.4.74+curl-8.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8af10b986114528fcdc4b63b6f5f021b7057618411046a4de2ba0f0149a097bf" +dependencies = [ + "cc", + "libc", + "libnghttp2-sys", + "libz-sys", + "openssl-sys", + "pkg-config", + "vcpkg", + "windows-sys 0.52.0", +] + [[package]] name = "curve25519-dalek" version = "4.1.3" @@ -1191,14 +1555,38 @@ dependencies = [ "syn 2.0.72", ] +[[package]] +name = "darling" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" +dependencies = [ + "darling_core 0.13.4", + "darling_macro 0.13.4", +] + [[package]] name = "darling" version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" dependencies = [ - "darling_core", - "darling_macro", + "darling_core 0.20.10", + "darling_macro 0.20.10", +] + +[[package]] +name = "darling_core" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.10.0", + "syn 1.0.109", ] [[package]] @@ -1211,17 +1599,28 @@ dependencies = [ "ident_case", "proc-macro2", "quote", - "strsim", + "strsim 0.11.1", "syn 2.0.72", ] +[[package]] +name = "darling_macro" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" +dependencies = [ + "darling_core 0.13.4", + "quote", + "syn 1.0.109", +] + [[package]] name = "darling_macro" version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ - "darling_core", + "darling_core 0.20.10", "quote", "syn 2.0.72", ] @@ -1363,7 +1762,7 @@ version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer", + "block-buffer 0.10.4", "const-oid", "crypto-common", "subtle", @@ -1411,6 +1810,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "discard" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0" + [[package]] name = "downcast-rs" version = "1.2.1" @@ -1424,7 +1829,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d05213e96f184578b5f70105d4d0a644a168e99e12d7bea0b200c15d67b5c182" dependencies = [ "futures", - "rand", + "rand 0.8.5", "reqwest 0.11.27", "thiserror", "tokio", @@ -1475,7 +1880,7 @@ dependencies = [ "generic-array 0.14.7", "group 0.13.0", "pkcs8", - "rand_core", + "rand_core 0.6.4", "sec1", "subtle", "zeroize", @@ -1521,11 +1926,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4" dependencies = [ "base64 0.21.7", - "bytes", + "bytes 1.7.1", "hex", "k256", "log", - "rand", + "rand 0.8.5", "rlp", "serde", "sha3", @@ -1554,17 +1959,17 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" dependencies = [ - "aes", - "ctr", + "aes 0.8.4", + "ctr 0.9.2", "digest 0.10.7", "hex", - "hmac", + "hmac 0.12.1", "pbkdf2 0.11.0", - "rand", + "rand 0.8.5", "scrypt", "serde", "serde_json", - "sha2", + "sha2 0.10.8", "sha3", "thiserror", "uuid", @@ -1708,7 +2113,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" dependencies = [ "arrayvec", - "bytes", + "bytes 1.7.1", "cargo_metadata", "chrono", "const-hex", @@ -1719,7 +2124,7 @@ dependencies = [ "num_enum 0.7.3", "once_cell", "open-fastrlp", - "rand", + "rand 0.8.5", "rlp", "serde", "serde_json", @@ -1766,7 +2171,7 @@ dependencies = [ "async-trait", "auto_impl", "base64 0.21.7", - "bytes", + "bytes 1.7.1", "const-hex", "enr", "ethers-core", @@ -1806,12 +2211,39 @@ dependencies = [ "elliptic-curve", "eth-keystore", "ethers-core", - "rand", - "sha2", + "rand 0.8.5", + "sha2 0.10.8", "thiserror", "tracing", ] +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "event-listener" +version = "5.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener-strategy" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" +dependencies = [ + "event-listener 5.3.1", + "pin-project-lite", +] + [[package]] name = "eyre" version = "0.6.12" @@ -1822,6 +2254,15 @@ dependencies = [ "once_cell", ] +[[package]] +name = "fastrand" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +dependencies = [ + "instant", +] + [[package]] name = "fastrand" version = "2.1.0" @@ -1836,7 +2277,7 @@ checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" dependencies = [ "arrayvec", "auto_impl", - "bytes", + "bytes 1.7.1", ] [[package]] @@ -1846,7 +2287,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" dependencies = [ "bitvec", - "rand_core", + "rand_core 0.6.4", "subtle", ] @@ -1859,7 +2300,7 @@ dependencies = [ "bitvec", "byteorder", "ff_derive", - "rand_core", + "rand_core 0.6.4", "subtle", ] @@ -1892,7 +2333,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" dependencies = [ "byteorder", - "rand", + "rand 0.8.5", "rustc-hex", "static_assertions", ] @@ -1903,6 +2344,17 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" +[[package]] +name = "flume" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bebadab126f8120d410b677ed95eee4ba6eb7c6dd8e34a5ec88a08050e26132" +dependencies = [ + "futures-core", + "futures-sink", + "spinning_top", +] + [[package]] name = "fnv" version = "1.0.7" @@ -1987,6 +2439,34 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +[[package]] +name = "futures-lite" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" +dependencies = [ + "fastrand 1.9.0", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite", + "waker-fn", +] + +[[package]] +name = "futures-lite" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" +dependencies = [ + "fastrand 2.1.0", + "futures-core", + "futures-io", + "parking", + "pin-project-lite", +] + [[package]] name = "futures-locks" version = "0.7.1" @@ -2084,6 +2564,17 @@ dependencies = [ "typenum", ] +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + [[package]] name = "getrandom" version = "0.2.15" @@ -2093,10 +2584,20 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi", + "wasi 0.11.0+wasi-snapshot-preview1", "wasm-bindgen", ] +[[package]] +name = "ghash" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97304e4cd182c3846f7575ced3890c53012ce534ad9114046b0a9e00bb30a375" +dependencies = [ + "opaque-debug", + "polyval", +] + [[package]] name = "gimli" version = "0.29.0" @@ -2153,7 +2654,7 @@ checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" dependencies = [ "ff 0.12.1", "memuse", - "rand_core", + "rand_core 0.6.4", "subtle", ] @@ -2164,7 +2665,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ "ff 0.13.0", - "rand_core", + "rand_core 0.6.4", "subtle", ] @@ -2174,7 +2675,7 @@ version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ - "bytes", + "bytes 1.7.1", "fnv", "futures-core", "futures-sink", @@ -2194,7 +2695,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" dependencies = [ "atomic-waker", - "bytes", + "bytes 1.7.1", "fnv", "futures-core", "futures-sink", @@ -2235,7 +2736,7 @@ dependencies = [ "ff 0.12.1", "group 0.12.1", "pasta_curves 0.4.1", - "rand_core", + "rand_core 0.6.4", "rayon", ] @@ -2277,6 +2778,12 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" +[[package]] +name = "hermit-abi" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" + [[package]] name = "hex" version = "0.4.3" @@ -2289,6 +2796,26 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" +[[package]] +name = "hkdf" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51ab2f639c231793c5f6114bdb9bbe50a7dbbfcd7c7c6bd8475dec2d991e964f" +dependencies = [ + "digest 0.9.0", + "hmac 0.10.1", +] + +[[package]] +name = "hmac" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15" +dependencies = [ + "crypto-mac", + "digest 0.9.0", +] + [[package]] name = "hmac" version = "0.12.1" @@ -2313,7 +2840,7 @@ version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ - "bytes", + "bytes 1.7.1", "fnv", "itoa", ] @@ -2324,7 +2851,7 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" dependencies = [ - "bytes", + "bytes 1.7.1", "fnv", "itoa", ] @@ -2335,7 +2862,7 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ - "bytes", + "bytes 1.7.1", "http 0.2.12", "pin-project-lite", ] @@ -2346,7 +2873,7 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ - "bytes", + "bytes 1.7.1", "http 1.1.0", ] @@ -2356,13 +2883,49 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ - "bytes", + "bytes 1.7.1", "futures-util", "http 1.1.0", "http-body 1.0.1", "pin-project-lite", ] +[[package]] +name = "http-client" +version = "6.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1947510dc91e2bf586ea5ffb412caad7673264e14bb39fb9078da114a94ce1a5" +dependencies = [ + "async-std", + "async-trait", + "cfg-if", + "http-types", + "isahc", + "log", +] + +[[package]] +name = "http-types" +version = "2.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e9b187a72d63adbfba487f48095306ac823049cb504ee195541e91c7775f5ad" +dependencies = [ + "anyhow", + "async-channel 1.9.0", + "async-std", + "base64 0.13.1", + "cookie", + "futures-lite 1.13.0", + "infer", + "pin-project-lite", + "rand 0.7.3", + "serde", + "serde_json", + "serde_qs", + "serde_urlencoded", + "url", +] + [[package]] name = "httparse" version = "1.9.4" @@ -2381,7 +2944,7 @@ version = "0.14.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" dependencies = [ - "bytes", + "bytes 1.7.1", "futures-channel", "futures-core", "futures-util", @@ -2392,7 +2955,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2", + "socket2 0.5.7", "tokio", "tower-service", "tracing", @@ -2405,7 +2968,7 @@ version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" dependencies = [ - "bytes", + "bytes 1.7.1", "futures-channel", "futures-util", "h2 0.4.5", @@ -2458,7 +3021,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ - "bytes", + "bytes 1.7.1", "http-body-util", "hyper 1.4.1", "hyper-util", @@ -2474,14 +3037,14 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ab92f4f49ee4fb4f997c784b7a2e0fa70050211e0b6a287f898c3c9785ca956" dependencies = [ - "bytes", + "bytes 1.7.1", "futures-channel", "futures-util", "http 1.1.0", "http-body 1.0.1", "hyper 1.4.1", "pin-project-lite", - "socket2", + "socket2 0.5.7", "tokio", "tower", "tower-service", @@ -2606,6 +3169,12 @@ dependencies = [ "unicode-width", ] +[[package]] +name = "infer" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64e9829a50b42bb782c1df523f78d332fe371b10c661e78b7a3c34b0198e9fac" + [[package]] name = "inout" version = "0.1.3" @@ -2624,6 +3193,17 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "io-lifetimes" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" +dependencies = [ + "hermit-abi 0.3.9", + "libc", + "windows-sys 0.48.0", +] + [[package]] name = "ipnet" version = "2.9.0" @@ -2636,7 +3216,7 @@ version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" dependencies = [ - "hermit-abi", + "hermit-abi 0.3.9", "libc", "windows-sys 0.52.0", ] @@ -2647,6 +3227,29 @@ version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" +[[package]] +name = "isahc" +version = "0.9.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2948a0ce43e2c2ef11d7edf6816508998d99e13badd1150be0914205df9388a" +dependencies = [ + "bytes 0.5.6", + "crossbeam-utils", + "curl", + "curl-sys", + "flume", + "futures-lite 1.13.0", + "http 0.2.12", + "log", + "once_cell", + "slab", + "sluice", + "tracing", + "tracing-futures", + "url", + "waker-fn", +] + [[package]] name = "itertools" version = "0.10.5" @@ -2722,7 +3325,7 @@ dependencies = [ "bls12_381", "ff 0.12.1", "group 0.12.1", - "rand_core", + "rand_core 0.6.4", "subtle", ] @@ -2736,7 +3339,7 @@ dependencies = [ "ecdsa", "elliptic-curve", "once_cell", - "sha2", + "sha2 0.10.8", "signature", ] @@ -2759,6 +3362,15 @@ dependencies = [ "sha3-asm", ] +[[package]] +name = "kv-log-macro" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" +dependencies = [ + "log", +] + [[package]] name = "lazy_static" version = "1.5.0" @@ -2808,6 +3420,16 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" +[[package]] +name = "libnghttp2-sys" +version = "0.1.10+1.61.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "959c25552127d2e1fa72f0e52548ec04fc386e827ba71a7bd01db46a447dc135" +dependencies = [ + "cc", + "libc", +] + [[package]] name = "libredox" version = "0.1.3" @@ -2830,6 +3452,12 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "linux-raw-sys" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" + [[package]] name = "linux-raw-sys" version = "0.4.14" @@ -2851,6 +3479,9 @@ name = "log" version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +dependencies = [ + "value-bag", +] [[package]] name = "matchers" @@ -2885,6 +3516,16 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" +[[package]] +name = "mime_guess" +version = "2.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" +dependencies = [ + "mime", + "unicase", +] + [[package]] name = "minimal-lexical" version = "0.2.1" @@ -2906,9 +3547,9 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4569e456d394deccd22ce1c1913e6ea0e54519f577285001215d33557431afe4" dependencies = [ - "hermit-abi", + "hermit-abi 0.3.9", "libc", - "wasi", + "wasi 0.11.0+wasi-snapshot-preview1", "windows-sys 0.52.0", ] @@ -3015,7 +3656,7 @@ checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ "num-integer", "num-traits", - "rand", + "rand 0.8.5", ] [[package]] @@ -3025,7 +3666,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" dependencies = [ "num-traits", - "rand", + "rand 0.8.5", ] [[package]] @@ -3096,7 +3737,7 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi", + "hermit-abi 0.3.9", "libc", ] @@ -3184,6 +3825,12 @@ version = "11.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b410bbe7e14ab526a0e86877eb47c6996a2bd7746f027ba551028c925390e4e9" +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + [[package]] name = "open-fastrlp" version = "0.1.4" @@ -3192,7 +3839,7 @@ checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" dependencies = [ "arrayvec", "auto_impl", - "bytes", + "bytes 1.7.1", "ethereum-types", "open-fastrlp-derive", ] @@ -3203,7 +3850,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" dependencies = [ - "bytes", + "bytes 1.7.1", "proc-macro2", "quote", "syn 1.0.109", @@ -3286,7 +3933,7 @@ dependencies = [ "p3-mds", "p3-poseidon2", "p3-symmetric", - "rand", + "rand 0.8.5", "serde", ] @@ -3311,7 +3958,7 @@ dependencies = [ "p3-field", "p3-poseidon2", "p3-symmetric", - "rand", + "rand 0.8.5", "serde", ] @@ -3365,7 +4012,7 @@ dependencies = [ "num-bigint 0.4.6", "num-traits", "p3-util", - "rand", + "rand 0.8.5", "serde", ] @@ -3435,7 +4082,7 @@ dependencies = [ "p3-field", "p3-maybe-rayon", "p3-util", - "rand", + "rand 0.8.5", "serde", "tracing", ] @@ -3461,7 +4108,7 @@ dependencies = [ "p3-matrix", "p3-symmetric", "p3-util", - "rand", + "rand 0.8.5", ] [[package]] @@ -3491,7 +4138,7 @@ dependencies = [ "p3-field", "p3-mds", "p3-symmetric", - "rand", + "rand 0.8.5", ] [[package]] @@ -3571,6 +4218,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "parking" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" + [[package]] name = "parking_lot" version = "0.12.3" @@ -3604,7 +4257,7 @@ dependencies = [ "ff 0.12.1", "group 0.12.1", "lazy_static", - "rand", + "rand 0.8.5", "static_assertions", "subtle", ] @@ -3619,7 +4272,7 @@ dependencies = [ "ff 0.13.0", "group 0.13.0", "lazy_static", - "rand", + "rand 0.8.5", "static_assertions", "subtle", ] @@ -3646,7 +4299,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" dependencies = [ "digest 0.10.7", - "hmac", + "hmac 0.12.1", ] [[package]] @@ -3727,6 +4380,17 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "piper" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" +dependencies = [ + "atomic-waker", + "fastrand 2.1.0", + "futures-io", +] + [[package]] name = "pkcs8" version = "0.10.2" @@ -3777,6 +4441,48 @@ dependencies = [ "plotters-backend", ] +[[package]] +name = "polling" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" +dependencies = [ + "autocfg", + "bitflags 1.3.2", + "cfg-if", + "concurrent-queue", + "libc", + "log", + "pin-project-lite", + "windows-sys 0.48.0", +] + +[[package]] +name = "polling" +version = "3.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511" +dependencies = [ + "cfg-if", + "concurrent-queue", + "hermit-abi 0.4.0", + "pin-project-lite", + "rustix 0.38.34", + "tracing", + "windows-sys 0.59.0", +] + +[[package]] +name = "polyval" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eebcc4aa140b9abd2bc40d9c3f7ccec842679cd79045ac3a7ac698c1a064b7cd" +dependencies = [ + "cpuid-bool", + "opaque-debug", + "universal-hash", +] + [[package]] name = "portable-atomic" version = "1.7.0" @@ -3891,6 +4597,12 @@ dependencies = [ "version_check", ] +[[package]] +name = "proc-macro-hack" +version = "0.5.20+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" + [[package]] name = "proc-macro2" version = "1.0.86" @@ -3911,8 +4623,8 @@ dependencies = [ "bitflags 2.6.0", "lazy_static", "num-traits", - "rand", - "rand_chacha", + "rand 0.8.5", + "rand_chacha 0.3.1", "rand_xorshift", "regex-syntax 0.8.4", "rusty-fork", @@ -3926,7 +4638,7 @@ version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" dependencies = [ - "bytes", + "bytes 1.7.1", "prost-derive", ] @@ -3936,7 +4648,7 @@ version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22505a5c94da8e3b7c2996394d1c933236c4d743e81a410bcca4e6989fc066a4" dependencies = [ - "bytes", + "bytes 1.7.1", "heck", "itertools 0.12.1", "log", @@ -3994,13 +4706,13 @@ version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b22d8e7369034b9a7132bc2008cac12f2013c8132b45e0554e6e20e2617f2156" dependencies = [ - "bytes", + "bytes 1.7.1", "pin-project-lite", "quinn-proto", "quinn-udp", "rustc-hash 2.0.0", "rustls 0.23.12", - "socket2", + "socket2 0.5.7", "thiserror", "tokio", "tracing", @@ -4012,8 +4724,8 @@ version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba92fb39ec7ad06ca2582c0ca834dfeadcaf06ddfc8e635c80aa7e1c05315fdd" dependencies = [ - "bytes", - "rand", + "bytes 1.7.1", + "rand 0.8.5", "ring 0.17.8", "rustc-hash 2.0.0", "rustls 0.23.12", @@ -4031,7 +4743,7 @@ checksum = "8bffec3605b73c6f1754535084a85229fa8a30f86014e6c81aeec4abb68b0285" dependencies = [ "libc", "once_cell", - "socket2", + "socket2 0.5.7", "tracing", "windows-sys 0.52.0", ] @@ -4051,6 +4763,19 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", +] + [[package]] name = "rand" version = "0.8.5" @@ -4058,8 +4783,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha", - "rand_core", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", ] [[package]] @@ -4069,7 +4804,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", ] [[package]] @@ -4078,7 +4822,16 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom", + "getrandom 0.2.15", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", ] [[package]] @@ -4087,7 +4840,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" dependencies = [ - "rand_core", + "rand_core 0.6.4", ] [[package]] @@ -4134,7 +4887,7 @@ version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" dependencies = [ - "getrandom", + "getrandom 0.2.15", "libredox", "thiserror", ] @@ -4190,7 +4943,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" dependencies = [ "base64 0.21.7", - "bytes", + "bytes 1.7.1", "encoding_rs", "futures-core", "futures-util", @@ -4231,7 +4984,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" dependencies = [ "base64 0.22.1", - "bytes", + "bytes 1.7.1", "encoding_rs", "futures-core", "futures-util", @@ -4295,7 +5048,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" dependencies = [ - "hmac", + "hmac 0.12.1", "subtle", ] @@ -4322,7 +5075,7 @@ checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", "cfg-if", - "getrandom", + "getrandom 0.2.15", "libc", "spin 0.9.8", "untrusted 0.9.0", @@ -4344,7 +5097,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" dependencies = [ - "bytes", + "bytes 1.7.1", "rlp-derive", "rustc-hex", ] @@ -4380,14 +5133,14 @@ dependencies = [ "alloy-rlp", "ark-ff 0.3.0", "ark-ff 0.4.2", - "bytes", + "bytes 1.7.1", "fastrlp", "num-bigint 0.4.6", "num-traits", "parity-scale-codec", "primitive-types", "proptest", - "rand", + "rand 0.8.5", "rlp", "ruint-macro", "serde", @@ -4425,6 +5178,15 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" +[[package]] +name = "rustc_version" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +dependencies = [ + "semver 0.9.0", +] + [[package]] name = "rustc_version" version = "0.3.3" @@ -4443,6 +5205,20 @@ dependencies = [ "semver 1.0.23", ] +[[package]] +name = "rustix" +version = "0.37.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" +dependencies = [ + "bitflags 1.3.2", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys 0.3.8", + "windows-sys 0.48.0", +] + [[package]] name = "rustix" version = "0.38.34" @@ -4452,10 +5228,23 @@ dependencies = [ "bitflags 2.6.0", "errno", "libc", - "linux-raw-sys", + "linux-raw-sys 0.4.14", "windows-sys 0.52.0", ] +[[package]] +name = "rustls" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" +dependencies = [ + "base64 0.13.1", + "log", + "ring 0.16.20", + "sct 0.6.1", + "webpki", +] + [[package]] name = "rustls" version = "0.21.12" @@ -4465,7 +5254,7 @@ dependencies = [ "log", "ring 0.17.8", "rustls-webpki 0.101.7", - "sct", + "sct 0.7.1", ] [[package]] @@ -4558,7 +5347,7 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" dependencies = [ - "cipher", + "cipher 0.4.4", ] [[package]] @@ -4644,10 +5433,20 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" dependencies = [ - "hmac", + "hmac 0.12.1", "pbkdf2 0.11.0", "salsa20", - "sha2", + "sha2 0.10.8", +] + +[[package]] +name = "sct" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" +dependencies = [ + "ring 0.16.20", + "untrusted 0.7.1", ] [[package]] @@ -4703,13 +5502,22 @@ dependencies = [ "libc", ] +[[package]] +name = "semver" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +dependencies = [ + "semver-parser 0.7.0", +] + [[package]] name = "semver" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" dependencies = [ - "semver-parser", + "semver-parser 0.10.2", ] [[package]] @@ -4721,6 +5529,12 @@ dependencies = [ "serde", ] +[[package]] +name = "semver-parser" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" + [[package]] name = "semver-parser" version = "0.10.2" @@ -4784,6 +5598,17 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_qs" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7715380eec75f029a4ef7de39a9200e0a63823176b759d055b613f5a87df6a6" +dependencies = [ + "percent-encoding", + "serde", + "thiserror", +] + [[package]] name = "serde_spanned" version = "0.6.7" @@ -4805,6 +5630,16 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_with" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" +dependencies = [ + "serde", + "serde_with_macros 1.5.2", +] + [[package]] name = "serde_with" version = "3.9.0" @@ -4819,8 +5654,20 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "serde_with_macros", - "time", + "serde_with_macros 3.9.0", + "time 0.3.36", +] + +[[package]] +name = "serde_with_macros" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" +dependencies = [ + "darling 0.13.4", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] @@ -4829,7 +5676,7 @@ version = "3.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350" dependencies = [ - "darling", + "darling 0.20.10", "proc-macro2", "quote", "syn 2.0.72", @@ -4860,6 +5707,45 @@ dependencies = [ "syn 2.0.72", ] +[[package]] +name = "sha1" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770" +dependencies = [ + "sha1_smol", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha1_smol" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d" + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + [[package]] name = "sha2" version = "0.10.8" @@ -4922,7 +5808,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ "digest 0.10.7", - "rand_core", + "rand_core 0.6.4", ] [[package]] @@ -4934,7 +5820,7 @@ dependencies = [ "num-bigint 0.4.6", "num-traits", "thiserror", - "time", + "time 0.3.36", ] [[package]] @@ -4952,6 +5838,36 @@ dependencies = [ "autocfg", ] +[[package]] +name = "slack-rust" +version = "0.0.1-alpha" +source = "git+https://github.com/dselans/slack-rust.git?branch=main#8212d4e8de30ebb3f536da35eab27e7e0820461b" +dependencies = [ + "async-std", + "async-tls", + "async-trait", + "async-tungstenite", + "futures-util", + "log", + "rustls 0.19.1", + "serde", + "serde_json", + "serde_with 1.14.0", + "surf", + "url", +] + +[[package]] +name = "sluice" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d7400c0eff44aa2fcb5e31a5f24ba9716ed90138769e4977a2ba6014ae63eb5" +dependencies = [ + "async-channel 1.9.0", + "futures-core", + "futures-io", +] + [[package]] name = "smallvec" version = "1.13.2" @@ -4974,6 +5890,16 @@ dependencies = [ "scale-info", ] +[[package]] +name = "socket2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "socket2" version = "0.5.7" @@ -5012,7 +5938,7 @@ dependencies = [ "hex", "indicatif", "prettytable-rs", - "rand", + "rand 0.8.5", "regex", "reqwest 0.12.5", "rustc-demangle", @@ -5048,10 +5974,10 @@ dependencies = [ "p3-field", "p3-keccak-air", "p3-maybe-rayon", - "rand", + "rand 0.8.5", "rrs-succinct", "serde", - "serde_with", + "serde_with 3.9.0", "sp1-curves", "sp1-derive", "sp1-primitives", @@ -5106,11 +6032,11 @@ dependencies = [ "p3-symmetric", "p3-uni-stark", "p3-util", - "rand", + "rand 0.8.5", "rayon-scan", "rrs-succinct", "serde", - "serde_with", + "serde_with 3.9.0", "size", "snowbridge-amcl", "sp1-core-executor", @@ -5165,7 +6091,7 @@ dependencies = [ "k256", "num", "p3-field", - "rand", + "rand 0.8.5", "serde", "snowbridge-amcl", "sp1-primitives", @@ -5182,6 +6108,26 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "sp1-eval" +version = "1.2.0-rc1" +dependencies = [ + "anyhow", + "bincode", + "clap", + "csv", + "p3-baby-bear", + "reqwest 0.12.5", + "serde", + "serde_json", + "slack-rust", + "sp1-prover", + "sp1-sdk", + "sp1-stark", + "time 0.3.36", + "tokio", +] + [[package]] name = "sp1-helper" version = "1.2.0-rc1" @@ -5271,7 +6217,7 @@ dependencies = [ "p3-poseidon2", "p3-symmetric", "p3-util", - "rand", + "rand 0.8.5", "serde", "sp1-core-machine", "sp1-recursion-compiler", @@ -5305,7 +6251,7 @@ dependencies = [ "p3-poseidon2", "p3-symmetric", "p3-util", - "rand", + "rand 0.8.5", "serde", "sp1-core-executor", "sp1-core-machine", @@ -5342,7 +6288,7 @@ dependencies = [ "p3-poseidon2", "p3-symmetric", "p3-util", - "rand", + "rand 0.8.5", "rayon", "serde", "sp1-core-machine", @@ -5379,9 +6325,9 @@ dependencies = [ "p3-poseidon2", "p3-symmetric", "p3-util", - "rand", + "rand 0.8.5", "serde", - "serde_with", + "serde_with 3.9.0", "sp1-core-executor", "sp1-core-machine", "sp1-derive", @@ -5416,9 +6362,9 @@ dependencies = [ "p3-poseidon2", "p3-symmetric", "p3-util", - "rand", + "rand 0.8.5", "serde", - "serde_with", + "serde_with 3.9.0", "sp1-core-executor", "sp1-core-machine", "sp1-derive", @@ -5465,10 +6411,10 @@ dependencies = [ "p3-baby-bear", "p3-field", "p3-symmetric", - "rand", + "rand 0.8.5", "serde", "serde_json", - "sha2", + "sha2 0.10.8", "sp1-core-machine", "sp1-recursion-compiler", "sp1-stark", @@ -5493,7 +6439,7 @@ dependencies = [ "p3-poseidon2", "p3-symmetric", "p3-util", - "rand", + "rand 0.8.5", "serde", "sp1-core-executor", "sp1-core-machine", @@ -5518,7 +6464,7 @@ dependencies = [ "dirs", "ethers", "futures", - "getrandom", + "getrandom 0.2.15", "hashbrown 0.14.5", "hex", "indicatif", @@ -5534,7 +6480,7 @@ dependencies = [ "reqwest-middleware", "serde", "serde_json", - "sha2", + "sha2 0.10.8", "sp1-core-executor", "sp1-core-machine", "sp1-cuda", @@ -5556,7 +6502,7 @@ name = "sp1-stark" version = "1.2.0-rc1" dependencies = [ "arrayref", - "getrandom", + "getrandom 0.2.15", "hashbrown 0.14.5", "itertools 0.13.0", "p3-air", @@ -5587,15 +6533,15 @@ version = "1.2.0-rc1" dependencies = [ "bincode", "cfg-if", - "getrandom", + "getrandom 0.2.15", "lazy_static", "libm", "once_cell", "p3-baby-bear", "p3-field", - "rand", + "rand 0.8.5", "serde", - "sha2", + "sha2 0.10.8", "sp1-lib", "sp1-primitives", ] @@ -5612,6 +6558,15 @@ version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +[[package]] +name = "spinning_top" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b9eb1a2f4c41445a3a0ff9abc5221c5fcd28e1f13cd7c0397706f9ac938ddb0" +dependencies = [ + "lock_api", +] + [[package]] name = "spki" version = "0.7.3" @@ -5635,12 +6590,76 @@ dependencies = [ "winapi", ] +[[package]] +name = "standback" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e113fb6f3de07a243d434a56ec6f186dfd51cb08448239fe7bcae73f87ff28ff" +dependencies = [ + "version_check", +] + [[package]] name = "static_assertions" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "stdweb" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5" +dependencies = [ + "discard", + "rustc_version 0.2.3", + "stdweb-derive", + "stdweb-internal-macros", + "stdweb-internal-runtime", + "wasm-bindgen", +] + +[[package]] +name = "stdweb-derive" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef" +dependencies = [ + "proc-macro2", + "quote", + "serde", + "serde_derive", + "syn 1.0.109", +] + +[[package]] +name = "stdweb-internal-macros" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11" +dependencies = [ + "base-x", + "proc-macro2", + "quote", + "serde", + "serde_derive", + "serde_json", + "sha1 0.6.1", + "syn 1.0.109", +] + +[[package]] +name = "stdweb-internal-runtime" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0" + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + [[package]] name = "strsim" version = "0.11.1" @@ -5684,6 +6703,29 @@ dependencies = [ "zeroize", ] +[[package]] +name = "surf" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718b1ae6b50351982dedff021db0def601677f2120938b070eadb10ba4038dd7" +dependencies = [ + "async-std", + "async-trait", + "cfg-if", + "encoding_rs", + "futures-util", + "getrandom 0.2.15", + "http-client", + "http-types", + "log", + "mime_guess", + "once_cell", + "pin-project-lite", + "serde", + "serde_json", + "web-sys", +] + [[package]] name = "syn" version = "1.0.109" @@ -5785,9 +6827,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8fcd239983515c23a32fb82099f97d0b11b8c72f654ed659363a95c3dad7a53" dependencies = [ "cfg-if", - "fastrand", + "fastrand 2.1.0", "once_cell", - "rustix", + "rustix 0.38.34", "windows-sys 0.52.0", ] @@ -5843,6 +6885,21 @@ dependencies = [ "once_cell", ] +[[package]] +name = "time" +version = "0.2.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4752a97f8eebd6854ff91f1c1824cd6160626ac4bd44287f7f4ea2035a02a242" +dependencies = [ + "const_fn", + "libc", + "standback", + "stdweb", + "time-macros 0.1.1", + "version_check", + "winapi", +] + [[package]] name = "time" version = "0.3.36" @@ -5857,7 +6914,7 @@ dependencies = [ "powerfmt", "serde", "time-core", - "time-macros", + "time-macros 0.2.18", ] [[package]] @@ -5866,6 +6923,16 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" +[[package]] +name = "time-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "957e9c6e26f12cb6d0dd7fc776bb67a706312e7299aed74c8dd5b17ebb27e2f1" +dependencies = [ + "proc-macro-hack", + "time-macros-impl", +] + [[package]] name = "time-macros" version = "0.2.18" @@ -5876,6 +6943,19 @@ dependencies = [ "time-core", ] +[[package]] +name = "time-macros-impl" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd3c141a1b43194f3f56a1411225df8646c55781d5f26db825b3d98507eb482f" +dependencies = [ + "proc-macro-hack", + "proc-macro2", + "quote", + "standback", + "syn 1.0.109", +] + [[package]] name = "tiny-keccak" version = "2.0.2" @@ -5917,13 +6997,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1" dependencies = [ "backtrace", - "bytes", + "bytes 1.7.1", "libc", "mio", "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2", + "socket2 0.5.7", "tokio-macros", "windows-sys 0.52.0", ] @@ -5976,7 +7056,7 @@ version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" dependencies = [ - "bytes", + "bytes 1.7.1", "futures-core", "futures-sink", "pin-project-lite", @@ -6158,6 +7238,25 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" +[[package]] +name = "tungstenite" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30ee6ab729cd4cf0fd55218530c4522ed30b7b6081752839b68fcec8d0960788" +dependencies = [ + "base64 0.13.1", + "byteorder", + "bytes 1.7.1", + "http 0.2.12", + "httparse", + "log", + "rand 0.8.5", + "sha1 0.10.6", + "thiserror", + "url", + "utf-8", +] + [[package]] name = "twirp-build-rs" version = "0.3.0" @@ -6175,7 +7274,7 @@ checksum = "dfa3161d8eee0abcad4e762f4215381a430cc1281870d575b0f1e4fbfc74b8ce" dependencies = [ "async-trait", "axum", - "bytes", + "bytes 1.7.1", "futures", "http 1.1.0", "http-body-util", @@ -6220,6 +7319,15 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" +[[package]] +name = "unicase" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" +dependencies = [ + "version_check", +] + [[package]] name = "unicode-bidi" version = "0.3.15" @@ -6259,6 +7367,16 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "229730647fbc343e3a80e463c1db7f78f3855d3f3739bee0dda773c9a037c90a" +[[package]] +name = "universal-hash" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8326b2c654932e3e4f9196e69d08fdf7cfd718e1dc6f66b347e6024a0c961402" +dependencies = [ + "generic-array 0.14.7", + "subtle", +] + [[package]] name = "untrusted" version = "0.7.1" @@ -6280,8 +7398,15 @@ dependencies = [ "form_urlencoded", "idna", "percent-encoding", + "serde", ] +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + [[package]] name = "utf8parse" version = "0.2.2" @@ -6294,7 +7419,7 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" dependencies = [ - "getrandom", + "getrandom 0.2.15", "serde", ] @@ -6304,6 +7429,12 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +[[package]] +name = "value-bag" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a84c137d37ab0142f0f2ddfe332651fdbf252e7b7dbb4e67b6c1f1b2e925101" + [[package]] name = "vcpkg" version = "0.2.15" @@ -6326,7 +7457,7 @@ dependencies = [ "cfg-if", "git2", "rustversion", - "time", + "time 0.3.36", ] [[package]] @@ -6344,6 +7475,12 @@ dependencies = [ "libc", ] +[[package]] +name = "waker-fn" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" + [[package]] name = "walkdir" version = "2.5.0" @@ -6363,6 +7500,12 @@ dependencies = [ "try-lock", ] +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -6468,6 +7611,25 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "webpki" +version = "0.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" +dependencies = [ + "ring 0.16.20", + "untrusted 0.7.1", +] + +[[package]] +name = "webpki-roots" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940" +dependencies = [ + "webpki", +] + [[package]] name = "webpki-roots" version = "0.25.4" @@ -6492,7 +7654,7 @@ dependencies = [ "either", "home", "once_cell", - "rustix", + "rustix 0.38.34", ] [[package]] @@ -6826,9 +7988,9 @@ dependencies = [ "jubjub", "lazy_static", "pasta_curves 0.5.1", - "rand", + "rand 0.8.5", "serde", - "sha2", + "sha2 0.10.8", "sha3", "subtle", ] diff --git a/Cargo.toml b/Cargo.toml index a64891779..18b20d5c1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,6 +14,7 @@ members = [ "crates/core/machine", "crates/curves", "crates/derive", + "crates/eval", "crates/helper", "crates/primitives", "crates/prover", @@ -48,11 +49,12 @@ debug-assertions = true [workspace.dependencies] # sp1 sp1-build = { path = "crates/build", version = "1.2.0-rc1" } +sp1-cli = { path = "crates/cli", version = "1.2.0-rc1", default-features = false } sp1-core-machine = { path = "crates/core/machine", version = "1.2.0-rc1" } sp1-core-executor = { path = "crates/core/executor", version = "1.2.0-rc1" } -sp1-derive = { path = "crates/derive", version = "1.2.0-rc1" } -sp1-cli = { path = "crates/cli", version = "1.2.0-rc1", default-features = false } sp1-curves = { path = "crates/curves", version = "1.2.0-rc1" } +sp1-derive = { path = "crates/derive", version = "1.2.0-rc1" } +sp1-eval = { path = "crates/eval", version = "1.2.0-rc1" } sp1-helper = { path = "crates/helper", version = "1.2.0-rc1", default-features = false } sp1-primitives = { path = "crates/primitives", version = "1.2.0-rc1" } sp1-prover = { path = "crates/prover", version = "1.2.0-rc1" } diff --git a/crates/eval/Cargo.toml b/crates/eval/Cargo.toml new file mode 100644 index 000000000..2f6163b98 --- /dev/null +++ b/crates/eval/Cargo.toml @@ -0,0 +1,27 @@ +[package] +name = "sp1-eval" +description = "A performance evaluation tool for SP1 programs." +readme = "../../README.md" +version = { workspace = true } +edition = { workspace = true } +license = { workspace = true } +repository = { workspace = true } +keywords = { workspace = true } +categories = { workspace = true } + +[dependencies] +sp1-prover = { workspace = true } +sp1-sdk = { workspace = true } +p3-baby-bear = { workspace = true } +sp1-stark = { workspace = true } + +anyhow = "1.0.83" +clap = { version = "4.5.9", features = ["derive"] } +csv = "1.3.0" +serde = "1.0.204" +bincode = "1.3.3" +time = "0.3.26" +slack-rust = { git = "https://github.com/dselans/slack-rust.git", branch = "main" } +tokio = { version = "1.39.0", features = ["full"] } +reqwest = { version = "0.12.4", features = ["json"] } +serde_json = "1.0.104" diff --git a/crates/eval/programs/fibonacci/elf b/crates/eval/programs/fibonacci/elf new file mode 100755 index 0000000000000000000000000000000000000000..10b446cae33f413cf491b66cbe04b8bc2b8f26c6 GIT binary patch literal 127644 zcmeFa33wIN-S~gz&YgRc7#5k3unB=n!cs)-2(f*uCWQdnR;w5mZMEeJsO_t55zsE0 zc)1C<>#(W?A#7S-s~tn^^3z1T3EIBef(c+PsF46_-H^qlbbO8mxxX8aeSKZ|fe;M+humA7ftd#s)azA)}_siUSGhhF& zca)O%3V`Z+gErGD@!?bCk)`62%T|H$3+ z(|=$8O@V(?;NKMZHwFGpf&cGOz&4D(#R^Xj#RgY|VuS7p#qtN5v5{vOu@NOkZ1_b+ zZ0L6lJM(nKeIqt#rE)Wil^rfoc2;-gW}P0gPs&$rxL94M%2j+`IK#FolxrEvj)aw4 z8CFZM$GgkRXPKoHD&BvTVHVV@c-YE_zqvZwo42~y39nYyy|?1i_@xi41kVzwq>A5K zW?ZN0Lh+nZGf{evir-ykwoEJdMA{|_N|jk)sl*x!xE5`99x@B)bN2pjcBELv?@MJQ z^6Nt;<4FuI37Nx;P-0lUVGge_62nUj^9zQ-n9Z5xN)_z~cdK-RZRM-j;FT&?__z}M zeVprVkb6?cwn~3hD|IVVkI2=oN_wtUY}gU%J|^QU9y+VLs?*OZQ@?SOjQfxJ{;hIf z#&z9$13nhK^IWB7sxjNmLW^-klv!8_TnjuR%C3y4JWrk{eq*jpK`ZXhi5T(wcs3^z ziud99M&16wylQ>@g?~*v!I%!mMxLw^Lo8({X_p+YVj~_`8t6Jx(e+=LOa1fF%G=wD_$N6 zbH5EfV%~G1WqklY^@6~&qm^|sH|`O7xxiAiF$9*6WAa6*l?*%W~^*qO_E8oUU4yrVg70$#$MI zt1afn6uk9V^&FN$gPsMdR_It6dC0MvR07%vU1pZ^EHbVmJ$~!cBl0^tl8?+Nc(&tn z>;L%A$2~>=$bjn7nVzLjAEBpyeo{cYda0kLX)w-9JHxJdCg}TF`UZA!G~kVt9eMDm zw&rC2*_sC7gU)crl=;s_HQJHy9Mvu{v2&k`HU)h?M_qsZH7^ye;1wfL&HX|1p36$GLK%0AAYExSzs`iJ(W35c(Op5 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�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 M@BeiwI6U`%01P#qEC2ui literal 0 HcmV?d00001 diff --git a/crates/eval/programs/fibonacci/input.bin b/crates/eval/programs/fibonacci/input.bin new file mode 100644 index 0000000000000000000000000000000000000000..a8e468e7760f7c99e246615b87321c7562ba53f2 GIT binary patch literal 36 ScmZQ%fB+UK{e=+W`9j literal 0 HcmV?d00001 diff --git a/crates/eval/programs/ssz-withdrawals/elf b/crates/eval/programs/ssz-withdrawals/elf new file mode 100755 index 0000000000000000000000000000000000000000..ef27bf0f3729d8a697d5f422bbc23b9d546185fc GIT binary patch literal 200548 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õV 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 literal 0 HcmV?d00001 diff --git a/crates/eval/programs/ssz-withdrawals/input.bin b/crates/eval/programs/ssz-withdrawals/input.bin new file mode 100644 index 0000000000000000000000000000000000000000..4ac5fc6cf890b46738523c4d4d9d964e312f368f GIT binary patch literal 24 KcmZQzzzzTa7ytnP literal 0 HcmV?d00001 diff --git a/crates/eval/programs/tendermint/elf b/crates/eval/programs/tendermint/elf new file mode 100755 index 0000000000000000000000000000000000000000..6ecc25003e0727a072640401ee3548822a263164 GIT binary patch literal 1175064 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

2w7!!XW0hrDZiUB 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

)y%z(KHA`uoI3J-INzMSB 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 OX`xOUUcaLNm^l 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%0AE`=4AR^X`$vW;J55= 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 jh0L=AA#P({h_, + + /// The shard size to use for the prover. + #[arg(long)] + pub shard_size: Option, + + /// The Slack channel ID to post results to, only required if you want to post to Slack. + #[arg(long)] + pub slack_channel_id: Option, + + /// The Slack bot token to post results to, only used if slack_channel_id is set. + #[arg(long)] + pub slack_token: Option, + + /// The GitHub token for authentication, only required if you want to post to GitHub. + #[arg(long)] + pub github_token: Option, + + /// The GitHub repository owner. + #[arg(long)] + pub repo_owner: Option, + + /// The GitHub repository name. + #[arg(long)] + pub repo_name: Option, + + /// The GitHub PR number. + #[arg(long)] + pub pr_number: Option, + + /// The name of the pull request. + #[arg(long)] + pub pr_name: Option, + + /// The name of the branch. + #[arg(long)] + pub branch_name: Option, + + /// The commit hash. + #[arg(long)] + pub commit_hash: Option, + + /// The author of the commit. + #[arg(long)] + pub author: Option, +} + +pub async fn evaluate_performance() -> Result<(), Box> +{ + let args = EvalArgs::parse(); + + // Set environment variables to configure the prover. + if let Some(shard_size) = args.shard_size { + std::env::set_var("SHARD_SIZE", format!("{}", 1 << shard_size)); + } + + // Choose which programs to evaluate. + let programs: Vec<&TesterProgram> = if args.programs.is_empty() { + PROGRAMS.iter().collect() + } else { + PROGRAMS + .iter() + .filter(|p| args.programs.iter().any(|arg| arg.eq_ignore_ascii_case(p.name))) + .collect() + }; + + // Run the evaluations on each program. + let mut reports = Vec::new(); + for program in &programs { + println!("Evaluating program: {}", program.name); + let report = run_evaluation::(program.name, program.elf, program.input); + reports.push(report); + println!("Program: {} completed", program.name); + } + + // Prepare and format the results. + let reports_len = reports.len(); + let success_count = reports.iter().filter(|r| r.success).count(); + let results_text = format_results(&args, &reports); + + // Print results + println!("{}", results_text.join("\n")); + + // Post to Slack if applicable + for message in &results_text { + if let (Some(token), Some(channel)) = (&args.slack_token, &args.slack_channel_id) { + post_to_slack(token, channel, message).await?; + } + } + + // Post to GitHub PR if applicable + if let (Some(owner), Some(repo), Some(pr_number), Some(token)) = + (&args.repo_owner, &args.repo_name, &args.pr_number, &args.github_token) + { + let message = format_github_message(&results_text); + post_to_github_pr(owner, repo, pr_number, token, &message).await?; + } + + // Exit with an error if any programs failed. + let all_successful = success_count == reports_len; + if !all_successful { + println!("Some programs failed. Please check the results above."); + std::process::exit(1); + } + + Ok(()) +} + +#[derive(Debug, Serialize)] +pub struct PerformanceReport { + program: String, + cycles: u64, + exec_khz: f64, + core_khz: f64, + compressed_khz: f64, + time: f64, + success: bool, +} + +fn run_evaluation( + program_name: &str, + elf_path: &str, + input_path: &str, +) -> PerformanceReport { + let (elf, stdin) = load_program(elf_path, input_path); + let cycles = get_cycles(&elf, &stdin); + + let prover = SP1Prover::::new(); + let (pk, vk) = prover.setup(&elf); + + let opts = SP1ProverOpts::default(); + let context = SP1Context::default(); + + let (_, exec_duration) = time_operation(|| prover.execute(&elf, &stdin, context.clone())); + + let (core_proof, core_duration) = + time_operation(|| prover.prove_core(&pk, &stdin, opts, context).unwrap()); + + let (_, compress_duration) = + time_operation(|| prover.compress(&vk, core_proof, vec![], opts).unwrap()); + + let total_duration = exec_duration + core_duration + compress_duration; + + PerformanceReport { + program: program_name.to_string(), + cycles, + exec_khz: calculate_khz(cycles, exec_duration), + core_khz: calculate_khz(cycles, core_duration), + compressed_khz: calculate_khz(cycles, compress_duration), + time: total_duration.as_secs_f64(), + success: true, + } +} + +fn format_results(args: &EvalArgs, results: &[PerformanceReport]) -> Vec { + let mut detail_text = String::new(); + if let Some(pr_name) = &args.pr_name { + detail_text.push_str(&format!("*PR*: {}\n", pr_name)); + } + if let Some(branch_name) = &args.branch_name { + detail_text.push_str(&format!("*Branch*: {}\n", branch_name)); + } + if let Some(commit_hash) = &args.commit_hash { + detail_text.push_str(&format!("*Commit*: {}\n", &commit_hash[..8])); + } + if let Some(author) = &args.author { + detail_text.push_str(&format!("*Author*: {}\n", author)); + } + + let mut table_text = String::new(); + table_text.push_str("```\n"); + table_text.push_str("| program | cycles | execute (mHz) | core (kHZ) | compress (KHz) | time | success |\n"); + table_text.push_str("|-------------------|-------------|----------------|----------------|----------------|--------|----------|"); + + for result in results.iter() { + table_text.push_str(&format!( + "\n| {:<17} | {:>11} | {:>14.2} | {:>14.2} | {:>14.2} | {:>6} | {:<7} |", + result.program, + result.cycles, + result.exec_khz / 1000.0, + result.core_khz, + result.compressed_khz, + format_duration(result.time), + if result.success { "✅" } else { "❌" } + )); + } + table_text.push_str("\n```"); + + vec!["*SP1 Performance Test Results*\n".to_string(), detail_text, table_text] +} + +pub fn time_operation T>(operation: F) -> (T, Duration) { + let start = Instant::now(); + let result = operation(); + let duration = start.elapsed(); + (result, duration) +} + +fn calculate_khz(cycles: u64, duration: Duration) -> f64 { + let duration_secs = duration.as_secs_f64(); + if duration_secs > 0.0 { + (cycles as f64 / duration_secs) / 1_000.0 + } else { + 0.0 + } +} + +fn format_duration(duration: f64) -> String { + let secs = duration.round() as u64; + let minutes = secs / 60; + let seconds = secs % 60; + + if minutes > 0 { + format!("{}m{}s", minutes, seconds) + } else if seconds > 0 { + format!("{}s", seconds) + } else { + format!("{}ms", (duration * 1000.0).round() as u64) + } +} + +async fn post_to_slack(slack_token: &str, slack_channel_id: &str, message: &str) -> Result<()> { + let slack_api_client = default_client(); + let request = PostMessageRequest { + channel: slack_channel_id.to_string(), + text: Some(message.to_string()), + ..Default::default() + }; + + post_message(&slack_api_client, &request, slack_token).await.expect("slack api call error"); + + Ok(()) +} + +fn format_github_message(results_text: &[String]) -> String { + let mut formatted_message = String::new(); + + if let Some(title) = results_text.first() { + // Add an extra asterisk for GitHub bold formatting + formatted_message.push_str(&title.replace('*', "**")); + formatted_message.push('\n'); + } + + if let Some(details) = results_text.get(1) { + // Add an extra asterisk for GitHub bold formatting + formatted_message.push_str(&details.replace('*', "**")); + formatted_message.push('\n'); + } + + if let Some(table) = results_text.get(2) { + // Remove the triple backticks as GitHub doesn't require them for table formatting + let cleaned_table = table.trim_start_matches("```").trim_end_matches("```"); + formatted_message.push_str(cleaned_table); + } + + formatted_message +} + +async fn post_to_github_pr( + owner: &str, + repo: &str, + pr_number: &str, + token: &str, + message: &str, +) -> Result<(), Box> { + let client = Client::new(); + let base_url = format!("https://api.github.com/repos/{}/{}", owner, repo); + + // Get all comments on the PR + let comments_url = format!("{}/issues/{}/comments", base_url, pr_number); + let comments_response = client + .get(&comments_url) + .header("Authorization", format!("token {}", token)) + .header("User-Agent", "sp1-perf-bot") + .send() + .await?; + + let comments: Vec = comments_response.json().await?; + + // Look for an existing comment from our bot + let bot_comment = comments.iter().find(|comment| { + comment["user"]["login"] + .as_str() + .map(|login| login == "github-actions[bot]") + .unwrap_or(false) + }); + + if let Some(existing_comment) = bot_comment { + // Update the existing comment + let comment_url = existing_comment["url"].as_str().unwrap(); + let response = client + .patch(comment_url) + .header("Authorization", format!("token {}", token)) + .header("User-Agent", "sp1-perf-bot") + .json(&json!({ + "body": message + })) + .send() + .await?; + + if !response.status().is_success() { + return Err(format!("Failed to update comment: {:?}", response.text().await?).into()); + } + } else { + // Create a new comment + let response = client + .post(&comments_url) + .header("Authorization", format!("token {}", token)) + .header("User-Agent", "sp1-perf-bot") + .json(&json!({ + "body": message + })) + .send() + .await?; + + if !response.status().is_success() { + return Err(format!("Failed to post comment: {:?}", response.text().await?).into()); + } + } + + Ok(()) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_format_results() { + let dummy_reports = vec![ + PerformanceReport { + program: "fibonacci".to_string(), + cycles: 11291, + exec_khz: 29290.0, + core_khz: 30.0, + compressed_khz: 0.1, + time: 622.385, + success: true, + }, + PerformanceReport { + program: "super-program".to_string(), + cycles: 275735600, + exec_khz: 70190.0, + core_khz: 310.0, + compressed_khz: 120.0, + time: 812.285, + success: true, + }, + ]; + + let args = EvalArgs { + programs: vec!["fibonacci".to_string(), "super-program".to_string()], + shard_size: None, + slack_channel_id: None, + slack_token: None, + pr_name: Some("Test PR".to_string()), + branch_name: Some("feature-branch".to_string()), + commit_hash: Some("abcdef1234567890".to_string()), + author: Some("John Doe".to_string()), + repo_owner: Some("succinctlabs".to_string()), + repo_name: Some("sp1".to_string()), + pr_number: Some("123456".to_string()), + github_token: Some("abcdef1234567890".to_string()), + }; + + let formatted_results = format_results(&args, &dummy_reports); + + for line in &formatted_results { + println!("{}", line); + } + + assert_eq!(formatted_results.len(), 3); + assert!(formatted_results[0].contains("SP1 Performance Test Results")); + assert!(formatted_results[1].contains("*PR*: Test PR")); + assert!(formatted_results[1].contains("*Branch*: feature-branch")); + assert!(formatted_results[1].contains("*Commit*: abcdef12")); + assert!(formatted_results[1].contains("*Author*: John Doe")); + assert!(formatted_results[2].contains("fibonacci")); + assert!(formatted_results[2].contains("super-program")); + } +} diff --git a/crates/eval/src/main.rs b/crates/eval/src/main.rs new file mode 100644 index 000000000..e0e5b7888 --- /dev/null +++ b/crates/eval/src/main.rs @@ -0,0 +1,8 @@ +use anyhow::Result; +use sp1_eval::evaluate_performance; +use sp1_prover::components::DefaultProverComponents; + +#[tokio::main] +async fn main() -> Result<(), Box> { + evaluate_performance::().await +} diff --git a/crates/eval/src/program.rs b/crates/eval/src/program.rs new file mode 100644 index 000000000..49d576a9e --- /dev/null +++ b/crates/eval/src/program.rs @@ -0,0 +1,37 @@ +use sp1_sdk::SP1Stdin; +use std::fs::File; +use std::io::Read; + +#[derive(Clone)] +pub struct TesterProgram { + pub name: &'static str, + pub elf: &'static str, + pub input: &'static str, +} + +impl TesterProgram { + const fn new(name: &'static str, elf: &'static str, input: &'static str) -> Self { + Self { name, elf, input } + } +} + +pub const PROGRAMS: &[TesterProgram] = &[ + TesterProgram::new("fibonacci", "fibonacci/elf", "fibonacci/input.bin"), + TesterProgram::new("ssz-withdrawals", "ssz-withdrawals/elf", "ssz-withdrawals/input.bin"), + TesterProgram::new("tendermint", "tendermint/elf", "tendermint/input.bin"), +]; + +pub fn load_program(elf_path: &str, input_path: &str) -> (Vec, SP1Stdin) { + let elf_path = format!("./programs/{}", elf_path); + let input_path = format!("./programs/{}", input_path); + + let mut elf_file = File::open(elf_path).expect("failed to open elf"); + let mut elf = Vec::new(); + elf_file.read_to_end(&mut elf).expect("failed to read elf"); + + let input_file = File::open(input_path).expect("failed to open input"); + let stdin: SP1Stdin = + bincode::deserialize_from(input_file).expect("failed to deserialize input"); + + (elf, stdin) +} diff --git a/crates/sdk/src/install.rs b/crates/sdk/src/install.rs index 4285cad51..4b7ed858d 100644 --- a/crates/sdk/src/install.rs +++ b/crates/sdk/src/install.rs @@ -15,14 +15,14 @@ use crate::SP1_CIRCUIT_VERSION; /// The base URL for the S3 bucket containing the ciruit artifacts. pub const CIRCUIT_ARTIFACTS_URL_BASE: &str = "https://sp1-circuits.s3-us-east-2.amazonaws.com"; -/// Gets the directory where the circuit artifacts are installed. -fn circuit_artifacts_dir() -> PathBuf { +/// The directory where the circuit artifacts will be stored. +pub fn install_circuit_artifacts_dir() -> PathBuf { dirs::home_dir().unwrap().join(".sp1").join("circuits").join(SP1_CIRCUIT_VERSION) } /// Tries to install the circuit artifacts if they are not already installed. pub fn try_install_circuit_artifacts() -> PathBuf { - let build_dir = circuit_artifacts_dir(); + let build_dir = install_circuit_artifacts_dir(); if build_dir.exists() { println!( @@ -76,11 +76,6 @@ pub fn install_circuit_artifacts(build_dir: PathBuf) { println!("[sp1] downloaded {} to {:?}", download_url, build_dir.to_str().unwrap(),); } -/// The directory where the circuit artifacts will be stored. -pub fn install_circuit_artifacts_dir() -> PathBuf { - dirs::home_dir().unwrap().join(".sp1").join("circuits").join(SP1_CIRCUIT_VERSION) -} - /// Download the file with a progress bar that indicates the progress. #[cfg(feature = "network")] pub async fn download_file( From a7454bccebf681a499c0f56f3de3706b255e041b Mon Sep 17 00:00:00 2001 From: Shaked Regev Date: Thu, 29 Aug 2024 10:57:12 -0700 Subject: [PATCH 14/20] fixed comments --- crates/core/executor/src/events/alu.rs | 5 ++--- crates/core/executor/src/events/precompiles/fptower.rs | 2 +- crates/core/executor/src/events/precompiles/sha256_extend.rs | 1 + 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/core/executor/src/events/alu.rs b/crates/core/executor/src/events/alu.rs index f6a4f6790..b2ace9b67 100644 --- a/crates/core/executor/src/events/alu.rs +++ b/crates/core/executor/src/events/alu.rs @@ -26,11 +26,10 @@ pub struct AluEvent { pub b: u32, /// The third operand. pub c: u32, - /// The result of the operation. - /// make in the format of [``LookupId``; 6] + /// The result of the operation in the format of [``LookupId``; 6] pub sub_lookups: [LookupId; 6], } -//use crate::events::create_alu_lookup_id; + impl AluEvent { /// Create a new [`AluEvent`]. #[must_use] diff --git a/crates/core/executor/src/events/precompiles/fptower.rs b/crates/core/executor/src/events/precompiles/fptower.rs index e8eed2782..1ae2afd00 100644 --- a/crates/core/executor/src/events/precompiles/fptower.rs +++ b/crates/core/executor/src/events/precompiles/fptower.rs @@ -2,7 +2,7 @@ use serde::{Deserialize, Serialize}; use crate::events::{LookupId, MemoryReadRecord, MemoryWriteRecord}; -/// Airthmetic operation for emulating modular arithmetic. +/// This is an arithmetic operation for emulating modular arithmetic. #[derive(PartialEq, Copy, Clone, Debug, Serialize, Deserialize)] pub enum FieldOperation { /// Addition. diff --git a/crates/core/executor/src/events/precompiles/sha256_extend.rs b/crates/core/executor/src/events/precompiles/sha256_extend.rs index 5cf493aa8..f63998362 100644 --- a/crates/core/executor/src/events/precompiles/sha256_extend.rs +++ b/crates/core/executor/src/events/precompiles/sha256_extend.rs @@ -2,6 +2,7 @@ use serde::{Deserialize, Serialize}; use crate::events::memory::{MemoryReadRecord, MemoryWriteRecord}; use crate::events::LookupId; + /// SHA-256 Extend Event. /// /// This event is emitted when a SHA-256 extend operation is performed. From cfdc095715a78843cedfb1c28b7b67438b83ae70 Mon Sep 17 00:00:00 2001 From: "Chris T." Date: Thu, 29 Aug 2024 12:25:11 -0700 Subject: [PATCH 15/20] fix: memory not added to checkpoint in unconstrained mode (#1436) --- crates/core/executor/src/executor.rs | 33 +++++++++++++++++++--------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/crates/core/executor/src/executor.rs b/crates/core/executor/src/executor.rs index 240313c09..10eaaae2c 100644 --- a/crates/core/executor/src/executor.rs +++ b/crates/core/executor/src/executor.rs @@ -144,6 +144,10 @@ pub enum ExecutionError { /// The execution failed with an unimplemented feature. #[error("got unimplemented as opcode")] Unimplemented(), + + /// The program ended in unconstrained mode. + #[error("program ended in unconstrained mode")] + EndInUnconstrained(), } macro_rules! assert_valid_memory_access { @@ -253,7 +257,10 @@ impl<'a> Executor<'a> { let addr = Register::from_u32(i as u32) as u32; let record = self.state.memory.get(&addr); - if self.executor_mode != ExecutorMode::Simple { + // Only add the previous memory state to checkpoint map if we're in checkpoint mode, + // or if we're in unconstrained mode. In unconstrained mode, the mode is always + // Simple. + if self.executor_mode == ExecutorMode::Checkpoint || self.unconstrained { match record { Some(record) => { self.memory_checkpoint.entry(addr).or_insert_with(|| Some(*record)); @@ -278,7 +285,7 @@ impl<'a> Executor<'a> { let addr = register as u32; let record = self.state.memory.get(&addr); - if self.executor_mode != ExecutorMode::Simple { + if self.executor_mode == ExecutorMode::Checkpoint || self.unconstrained { match record { Some(record) => { self.memory_checkpoint.entry(addr).or_insert_with(|| Some(*record)); @@ -301,7 +308,7 @@ impl<'a> Executor<'a> { #[allow(clippy::single_match_else)] let record = self.state.memory.get(&addr); - if self.executor_mode != ExecutorMode::Simple { + if self.executor_mode == ExecutorMode::Checkpoint || self.unconstrained { match record { Some(record) => { self.memory_checkpoint.entry(addr).or_insert_with(|| Some(*record)); @@ -349,7 +356,7 @@ impl<'a> Executor<'a> { pub fn mr(&mut self, addr: u32, shard: u32, timestamp: u32) -> MemoryReadRecord { // Get the memory record entry. let entry = self.state.memory.entry(addr); - if self.executor_mode != ExecutorMode::Simple { + if self.executor_mode == ExecutorMode::Checkpoint || self.unconstrained { match entry { Entry::Occupied(ref entry) => { let record = entry.get(); @@ -394,7 +401,7 @@ impl<'a> Executor<'a> { pub fn mw(&mut self, addr: u32, value: u32, shard: u32, timestamp: u32) -> MemoryWriteRecord { // Get the memory record entry. let entry = self.state.memory.entry(addr); - if self.executor_mode != ExecutorMode::Simple { + if self.executor_mode == ExecutorMode::Checkpoint || self.unconstrained { match entry { Entry::Occupied(ref entry) => { let record = entry.get(); @@ -686,7 +693,7 @@ impl<'a> Executor<'a> { let (addr, memory_read_value): (u32, u32); let mut memory_store_value: Option = None; - if self.executor_mode != ExecutorMode::Simple { + if self.executor_mode == ExecutorMode::Trace { self.memory_accesses = MemoryAccessRecord::default(); } let lookup_id = if self.executor_mode == ExecutorMode::Simple { @@ -1126,8 +1133,14 @@ impl<'a> Executor<'a> { } } - Ok(self.state.pc.wrapping_sub(self.program.pc_base) - >= (self.program.instructions.len() * 4) as u32) + let done = self.state.pc == 0 + || self.state.pc.wrapping_sub(self.program.pc_base) + >= (self.program.instructions.len() * 4) as u32; + if done && self.unconstrained { + log::error!("program ended in unconstrained mode at clk {}", self.state.global_clk); + return Err(ExecutionError::EndInUnconstrained()); + } + Ok(done) } /// Bump the record. @@ -1163,7 +1176,7 @@ impl<'a> Executor<'a> { self.executor_mode = ExecutorMode::Checkpoint; self.print_report = true; - // Take memory out and then clone so that memory is not cloned. + // Take memory out of state before cloning it so that memory is not cloned. let memory = std::mem::take(&mut self.state.memory); let mut checkpoint = tracing::info_span!("clone").in_scope(|| self.state.clone()); self.state.memory = memory; @@ -1354,7 +1367,7 @@ impl<'a> Executor<'a> { self.report.touched_memory_addresses = self.state.memory.len() as u64; for addr in self.state.memory.keys() { - if addr == &0 { + if *addr == 0 { // Handled above. continue; } From 2458741021f8d276465272ededccfbc2c10c1378 Mon Sep 17 00:00:00 2001 From: Matt Stam <15695189+mattstam@users.noreply.github.com> Date: Thu, 29 Aug 2024 12:32:57 -0700 Subject: [PATCH 16/20] ci: only post perfomance to slack on dev merge (#1431) --- .github/workflows/pr.yml | 10 ++++---- crates/eval/src/lib.rs | 50 ++++++++++++++++++++++++++++------------ 2 files changed, 41 insertions(+), 19 deletions(-) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 6f29a0b47..498ab0960 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -2,7 +2,7 @@ name: PR on: push: - branches: [main] + branches: [main, dev] pull_request: branches: - "**" @@ -158,7 +158,7 @@ jobs: uses: actions-rs/cargo@v1 with: command: check - args: -p sp1-sdk --target wasm32-unknown-unknown --no-default-features + args: -p sp1-sdk --target wasm32-unknown-unknown --no-default-features examples: name: Examples @@ -252,8 +252,10 @@ jobs: cd crates/eval RUSTFLAGS='-C target-cpu=native' cargo run --release -- \ --programs fibonacci,ssz-withdrawals,tendermint \ - --slack-channel-id ${{ secrets.SLACK_CHANNEL_ID }} \ - --slack-token ${{ secrets.SLACK_TOKEN }} \ + --post-to-slack ${{ github.ref == 'refs/heads/dev' }} \ + --slack-channel-id "${{ secrets.SLACK_CHANNEL_ID }}" \ + --slack-token "${{ secrets.SLACK_TOKEN }}" \ + --post-to-github ${{ github.event_name == 'pull_request' }} \ --github-token "${{ secrets.GITHUB_TOKEN }}" \ --repo-owner "${{ github.repository_owner }}" \ --repo-name "${{ github.event.repository.name }}" \ diff --git a/crates/eval/src/lib.rs b/crates/eval/src/lib.rs index 578667f0d..d30027bff 100644 --- a/crates/eval/src/lib.rs +++ b/crates/eval/src/lib.rs @@ -27,15 +27,23 @@ struct EvalArgs { #[arg(long)] pub shard_size: Option, - /// The Slack channel ID to post results to, only required if you want to post to Slack. + /// Whether to post results to Slack. + #[arg(long, default_missing_value="true", num_args=0..=1)] + pub post_to_slack: Option, + + /// The Slack channel ID to post results to, only used if post_to_slack is true. #[arg(long)] pub slack_channel_id: Option, - /// The Slack bot token to post results to, only used if slack_channel_id is set. + /// The Slack bot token to post results to, only used if post_to_slack is true. #[arg(long)] pub slack_token: Option, - /// The GitHub token for authentication, only required if you want to post to GitHub. + /// Whether to post results to GitHub PR. + #[arg(long, default_missing_value="true", num_args=0..=1)] + pub post_to_github: Option, + + /// The GitHub token for authentication, only used if post_to_github is true. #[arg(long)] pub github_token: Option, @@ -105,18 +113,28 @@ pub async fn evaluate_performance() -> Result<(), Box { + for message in &results_text { + post_to_slack(token, channel, message).await?; + } + } + _ => println!("Warning: post_to_slack is true, required Slack arguments are missing."), } } // Post to GitHub PR if applicable - if let (Some(owner), Some(repo), Some(pr_number), Some(token)) = - (&args.repo_owner, &args.repo_name, &args.pr_number, &args.github_token) - { - let message = format_github_message(&results_text); - post_to_github_pr(owner, repo, pr_number, token, &message).await?; + if args.post_to_github.unwrap_or(false) { + match (&args.repo_owner, &args.repo_name, &args.pr_number, &args.github_token) { + (Some(owner), Some(repo), Some(pr_number), Some(token)) => { + let message = format_github_message(&results_text); + post_to_github_pr(owner, repo, pr_number, token, &message).await?; + } + _ => { + println!("Warning: post_to_github is true, required GitHub arguments are missing.") + } + } } // Exit with an error if any programs failed. @@ -374,16 +392,18 @@ mod tests { let args = EvalArgs { programs: vec!["fibonacci".to_string(), "super-program".to_string()], shard_size: None, + post_to_slack: Some(false), slack_channel_id: None, slack_token: None, + post_to_github: Some(true), + github_token: Some("abcdef1234567890".to_string()), + repo_owner: Some("succinctlabs".to_string()), + repo_name: Some("sp1".to_string()), + pr_number: Some("123456".to_string()), pr_name: Some("Test PR".to_string()), branch_name: Some("feature-branch".to_string()), commit_hash: Some("abcdef1234567890".to_string()), author: Some("John Doe".to_string()), - repo_owner: Some("succinctlabs".to_string()), - repo_name: Some("sp1".to_string()), - pr_number: Some("123456".to_string()), - github_token: Some("abcdef1234567890".to_string()), }; let formatted_results = format_results(&args, &dummy_reports); From 0433f9b165b2f2399c686146b006795ed4025f46 Mon Sep 17 00:00:00 2001 From: "Chris T." Date: Thu, 29 Aug 2024 13:56:18 -0700 Subject: [PATCH 17/20] chore: v1.2.0-rc.2 (#1438) --- Cargo.lock | 48 +++++++++---------- Cargo.toml | 46 +++++++++--------- crates/build/CHANGELOG.md | 2 +- crates/cli/CHANGELOG.md | 7 ++- crates/core/executor/src/lib.rs | 1 + crates/core/executor/src/state.rs | 17 +++---- .../utils/serde.rs => executor/src/utils.rs} | 2 +- crates/core/machine/CHANGELOG.md | 4 +- crates/core/machine/src/utils/mod.rs | 2 - crates/derive/CHANGELOG.md | 2 +- crates/eval/CHANGELOG.md | 36 ++++++++++++++ crates/helper/CHANGELOG.md | 2 +- crates/primitives/CHANGELOG.md | 2 +- crates/prover/CHANGELOG.md | 9 +++- crates/recursion/circuit/CHANGELOG.md | 2 +- crates/recursion/compiler/CHANGELOG.md | 2 +- crates/recursion/core/CHANGELOG.md | 2 +- crates/recursion/derive/CHANGELOG.md | 2 +- crates/recursion/gnark-cli/CHANGELOG.md | 7 ++- crates/recursion/gnark-ffi/CHANGELOG.md | 4 +- crates/recursion/program/CHANGELOG.md | 2 +- crates/sdk/CHANGELOG.md | 4 +- crates/zkvm/entrypoint/CHANGELOG.md | 2 +- crates/zkvm/lib/CHANGELOG.md | 2 +- tests/bls12381-decompress/Cargo.lock | 6 +-- 25 files changed, 133 insertions(+), 82 deletions(-) rename crates/core/{machine/src/utils/serde.rs => executor/src/utils.rs} (95%) create mode 100644 crates/eval/CHANGELOG.md diff --git a/Cargo.lock b/Cargo.lock index 48a47df7c..efb79c4ff 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5912,7 +5912,7 @@ dependencies = [ [[package]] name = "sp1-build" -version = "1.2.0-rc1" +version = "1.2.0-rc2" dependencies = [ "anyhow", "cargo_metadata", @@ -5923,7 +5923,7 @@ dependencies = [ [[package]] name = "sp1-cli" -version = "1.2.0-rc1" +version = "1.2.0-rc2" dependencies = [ "anstyle", "anyhow", @@ -5958,7 +5958,7 @@ dependencies = [ [[package]] name = "sp1-core-executor" -version = "1.2.0-rc1" +version = "1.2.0-rc2" dependencies = [ "bincode", "bytemuck", @@ -5993,7 +5993,7 @@ dependencies = [ [[package]] name = "sp1-core-machine" -version = "1.2.0-rc1" +version = "1.2.0-rc2" dependencies = [ "anyhow", "arrayref", @@ -6060,7 +6060,7 @@ dependencies = [ [[package]] name = "sp1-cuda" -version = "1.2.0-rc1" +version = "1.2.0-rc2" dependencies = [ "bincode", "ctrlc", @@ -6081,7 +6081,7 @@ dependencies = [ [[package]] name = "sp1-curves" -version = "1.2.0-rc1" +version = "1.2.0-rc2" dependencies = [ "curve25519-dalek", "dashu", @@ -6101,7 +6101,7 @@ dependencies = [ [[package]] name = "sp1-derive" -version = "1.2.0-rc1" +version = "1.2.0-rc2" dependencies = [ "proc-macro2", "quote", @@ -6110,7 +6110,7 @@ dependencies = [ [[package]] name = "sp1-eval" -version = "1.2.0-rc1" +version = "1.2.0-rc2" dependencies = [ "anyhow", "bincode", @@ -6130,14 +6130,14 @@ dependencies = [ [[package]] name = "sp1-helper" -version = "1.2.0-rc1" +version = "1.2.0-rc2" dependencies = [ "sp1-build", ] [[package]] name = "sp1-lib" -version = "1.2.0-rc1" +version = "1.2.0-rc2" dependencies = [ "anyhow", "bincode", @@ -6149,7 +6149,7 @@ dependencies = [ [[package]] name = "sp1-primitives" -version = "1.2.0-rc1" +version = "1.2.0-rc2" dependencies = [ "itertools 0.13.0", "lazy_static", @@ -6161,7 +6161,7 @@ dependencies = [ [[package]] name = "sp1-prover" -version = "1.2.0-rc1" +version = "1.2.0-rc2" dependencies = [ "anyhow", "bincode", @@ -6199,7 +6199,7 @@ dependencies = [ [[package]] name = "sp1-recursion-circuit" -version = "1.2.0-rc1" +version = "1.2.0-rc2" dependencies = [ "bincode", "ff 0.13.0", @@ -6231,7 +6231,7 @@ dependencies = [ [[package]] name = "sp1-recursion-circuit-v2" -version = "1.2.0-rc1" +version = "1.2.0-rc2" dependencies = [ "bincode", "ff 0.13.0", @@ -6270,7 +6270,7 @@ dependencies = [ [[package]] name = "sp1-recursion-compiler" -version = "1.2.0-rc1" +version = "1.2.0-rc2" dependencies = [ "backtrace", "criterion", @@ -6303,7 +6303,7 @@ dependencies = [ [[package]] name = "sp1-recursion-core" -version = "1.2.0-rc1" +version = "1.2.0-rc2" dependencies = [ "arrayref", "backtrace", @@ -6340,7 +6340,7 @@ dependencies = [ [[package]] name = "sp1-recursion-core-v2" -version = "1.2.0-rc1" +version = "1.2.0-rc2" dependencies = [ "arrayref", "backtrace", @@ -6380,7 +6380,7 @@ dependencies = [ [[package]] name = "sp1-recursion-derive" -version = "1.2.0-rc1" +version = "1.2.0-rc2" dependencies = [ "proc-macro2", "quote", @@ -6389,7 +6389,7 @@ dependencies = [ [[package]] name = "sp1-recursion-gnark-cli" -version = "1.2.0-rc1" +version = "1.2.0-rc2" dependencies = [ "bincode", "clap", @@ -6398,7 +6398,7 @@ dependencies = [ [[package]] name = "sp1-recursion-gnark-ffi" -version = "1.2.0-rc1" +version = "1.2.0-rc2" dependencies = [ "anyhow", "bincode", @@ -6423,7 +6423,7 @@ dependencies = [ [[package]] name = "sp1-recursion-program" -version = "1.2.0-rc1" +version = "1.2.0-rc2" dependencies = [ "itertools 0.13.0", "p3-air", @@ -6453,7 +6453,7 @@ dependencies = [ [[package]] name = "sp1-sdk" -version = "1.2.0-rc1" +version = "1.2.0-rc2" dependencies = [ "alloy-sol-types", "anyhow", @@ -6499,7 +6499,7 @@ dependencies = [ [[package]] name = "sp1-stark" -version = "1.2.0-rc1" +version = "1.2.0-rc2" dependencies = [ "arrayref", "getrandom 0.2.15", @@ -6529,7 +6529,7 @@ dependencies = [ [[package]] name = "sp1-zkvm" -version = "1.2.0-rc1" +version = "1.2.0-rc2" dependencies = [ "bincode", "cfg-if", diff --git a/Cargo.toml b/Cargo.toml index 18b20d5c1..6ae5f36cd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [workspace.package] -version = "1.2.0-rc1" +version = "1.2.0-rc2" edition = "2021" license = "MIT OR Apache-2.0" repository = "https://github.com/succinctlabs/sp1" @@ -48,28 +48,28 @@ debug-assertions = true [workspace.dependencies] # sp1 -sp1-build = { path = "crates/build", version = "1.2.0-rc1" } -sp1-cli = { path = "crates/cli", version = "1.2.0-rc1", default-features = false } -sp1-core-machine = { path = "crates/core/machine", version = "1.2.0-rc1" } -sp1-core-executor = { path = "crates/core/executor", version = "1.2.0-rc1" } -sp1-curves = { path = "crates/curves", version = "1.2.0-rc1" } -sp1-derive = { path = "crates/derive", version = "1.2.0-rc1" } -sp1-eval = { path = "crates/eval", version = "1.2.0-rc1" } -sp1-helper = { path = "crates/helper", version = "1.2.0-rc1", default-features = false } -sp1-primitives = { path = "crates/primitives", version = "1.2.0-rc1" } -sp1-prover = { path = "crates/prover", version = "1.2.0-rc1" } -sp1-recursion-compiler = { path = "crates/recursion/compiler", version = "1.2.0-rc1" } -sp1-recursion-core = { path = "crates/recursion/core", version = "1.2.0-rc1", default-features = false } -sp1-recursion-core-v2 = { path = "crates/recursion/core-v2", version = "1.2.0-rc1", default-features = false } -sp1-recursion-derive = { path = "crates/recursion/derive", version = "1.2.0-rc1", default-features = false } -sp1-recursion-gnark-ffi = { path = "crates/recursion/gnark-ffi", version = "1.2.0-rc1", default-features = false } -sp1-recursion-program = { path = "crates/recursion/program", version = "1.2.0-rc1", default-features = false } -sp1-recursion-circuit = { path = "crates/recursion/circuit", version = "1.2.0-rc1", default-features = false } -sp1-sdk = { path = "crates/sdk", version = "1.2.0-rc1" } -sp1-cuda = { path = "crates/cuda", version = "1.2.0-rc1" } -sp1-stark = { path = "crates/stark", version = "1.2.0-rc1" } -sp1-lib = { path = "crates/zkvm/lib", version = "1.2.0-rc1", default-features = false } -sp1-zkvm = { path = "crates/zkvm/entrypoint", version = "1.2.0-rc1", default-features = false } +sp1-build = { path = "crates/build", version = "1.2.0-rc2" } +sp1-cli = { path = "crates/cli", version = "1.2.0-rc2", default-features = false } +sp1-core-machine = { path = "crates/core/machine", version = "1.2.0-rc2" } +sp1-core-executor = { path = "crates/core/executor", version = "1.2.0-rc2" } +sp1-curves = { path = "crates/curves", version = "1.2.0-rc2" } +sp1-derive = { path = "crates/derive", version = "1.2.0-rc2" } +sp1-eval = { path = "crates/eval", version = "1.2.0-rc2" } +sp1-helper = { path = "crates/helper", version = "1.2.0-rc2", default-features = false } +sp1-primitives = { path = "crates/primitives", version = "1.2.0-rc2" } +sp1-prover = { path = "crates/prover", version = "1.2.0-rc2" } +sp1-recursion-compiler = { path = "crates/recursion/compiler", version = "1.2.0-rc2" } +sp1-recursion-core = { path = "crates/recursion/core", version = "1.2.0-rc2", default-features = false } +sp1-recursion-core-v2 = { path = "crates/recursion/core-v2", version = "1.2.0-rc2", default-features = false } +sp1-recursion-derive = { path = "crates/recursion/derive", version = "1.2.0-rc2", default-features = false } +sp1-recursion-gnark-ffi = { path = "crates/recursion/gnark-ffi", version = "1.2.0-rc2", default-features = false } +sp1-recursion-program = { path = "crates/recursion/program", version = "1.2.0-rc2", default-features = false } +sp1-recursion-circuit = { path = "crates/recursion/circuit", version = "1.2.0-rc2", default-features = false } +sp1-sdk = { path = "crates/sdk", version = "1.2.0-rc2" } +sp1-cuda = { path = "crates/cuda", version = "1.2.0-rc2" } +sp1-stark = { path = "crates/stark", version = "1.2.0-rc2" } +sp1-lib = { path = "crates/zkvm/lib", version = "1.2.0-rc2", default-features = false } +sp1-zkvm = { path = "crates/zkvm/entrypoint", version = "1.2.0-rc2", default-features = false } # p3 p3-air = "0.1.3-succinct" diff --git a/crates/build/CHANGELOG.md b/crates/build/CHANGELOG.md index 971ec16ea..90563fbe0 100644 --- a/crates/build/CHANGELOG.md +++ b/crates/build/CHANGELOG.md @@ -12,7 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - use C++ toolchain when building programs that need C ([#1092](https://github.com/succinctlabs/sp1/pull/1092)) -## [1.0.0-rc.1](https://github.com/succinctlabs/sp1/compare/sp1-build-v1.0.0-rc.1...sp1-build-v1.0.0-rc.1) - 2024-07-19 +## [1.0.0-rc1](https://github.com/succinctlabs/sp1/compare/sp1-build-v1.0.0-rc1...sp1-build-v1.0.0-rc1) - 2024-07-19 ### Fixed diff --git a/crates/cli/CHANGELOG.md b/crates/cli/CHANGELOG.md index 8dd86ddcb..6a82f8338 100644 --- a/crates/cli/CHANGELOG.md +++ b/crates/cli/CHANGELOG.md @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.2.0-rc2](https://github.com/succinctlabs/sp1/compare/sp1-cli-v1.2.0-rc1...sp1-cli-v1.2.0-rc2) - 2024-08-29 + +### Other +- update Cargo.lock dependencies + ## [1.1.0](https://github.com/succinctlabs/sp1/compare/sp1-cli-v1.0.1...sp1-cli-v1.1.0) - 2024-08-02 ### Added @@ -21,7 +26,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - *(deps)* bump anstyle from 1.0.7 to 1.0.8 ([#1194](https://github.com/succinctlabs/sp1/pull/1194)) - Merge branch 'main' into dev -## [1.0.0-rc.1](https://github.com/succinctlabs/sp1/compare/sp1-cli-v1.0.0-rc.1...sp1-cli-v1.0.0-rc.1) - 2024-07-19 +## [1.0.0-rc1](https://github.com/succinctlabs/sp1/compare/sp1-cli-v1.0.0-rc1...sp1-cli-v1.0.0-rc1) - 2024-07-19 ### Added diff --git a/crates/core/executor/src/lib.rs b/crates/core/executor/src/lib.rs index e45a5ea6c..eb9b85024 100644 --- a/crates/core/executor/src/lib.rs +++ b/crates/core/executor/src/lib.rs @@ -36,6 +36,7 @@ mod report; mod state; pub mod subproof; pub mod syscalls; +mod utils; pub use context::*; pub use executor::*; diff --git a/crates/core/executor/src/state.rs b/crates/core/executor/src/state.rs index be4371825..8334df013 100644 --- a/crates/core/executor/src/state.rs +++ b/crates/core/executor/src/state.rs @@ -13,6 +13,7 @@ use crate::{ events::MemoryRecord, record::{ExecutionRecord, MemoryAccessRecord}, syscalls::SyscallCode, + utils::{deserialize_hashmap_as_vec, serialize_hashmap_as_vec}, ExecutorMode, }; @@ -39,18 +40,18 @@ pub struct ExecutionState { /// The memory which instructions operate over. Values contain the memory value and last shard /// + timestamp that each memory address was accessed. - // #[serde( - // serialize_with = "serialize_hashmap_as_vec", - // deserialize_with = "deserialize_hashmap_as_vec" - // )] + #[serde( + serialize_with = "serialize_hashmap_as_vec", + deserialize_with = "deserialize_hashmap_as_vec" + )] pub memory: HashMap>, /// Uninitialized memory addresses that have a specific value they should be initialized with. /// SyscallHintRead uses this to write hint data into uninitialized memory. - // #[serde( - // serialize_with = "serialize_hashmap_as_vec", - // deserialize_with = "deserialize_hashmap_as_vec" - // )] + #[serde( + serialize_with = "serialize_hashmap_as_vec", + deserialize_with = "deserialize_hashmap_as_vec" + )] pub uninitialized_memory: HashMap>, /// A stream of input values (global to the entire program). diff --git a/crates/core/machine/src/utils/serde.rs b/crates/core/executor/src/utils.rs similarity index 95% rename from crates/core/machine/src/utils/serde.rs rename to crates/core/executor/src/utils.rs index fa7fdcef9..2b1448a89 100644 --- a/crates/core/machine/src/utils/serde.rs +++ b/crates/core/executor/src/utils.rs @@ -1,4 +1,4 @@ -use std::collections::HashMap; +use hashbrown::HashMap; use nohash_hasher::BuildNoHashHasher; use serde::{Deserialize, Deserializer, Serialize, Serializer}; diff --git a/crates/core/machine/CHANGELOG.md b/crates/core/machine/CHANGELOG.md index 8d1e6df78..d989945fb 100644 --- a/crates/core/machine/CHANGELOG.md +++ b/crates/core/machine/CHANGELOG.md @@ -54,11 +54,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - generate dep optimizations ([#1125](https://github.com/succinctlabs/sp1/pull/1125)) - add audit reports ([#1142](https://github.com/succinctlabs/sp1/pull/1142)) -## [1.0.0-rc.1](https://github.com/succinctlabs/sp1/compare/sp1-core-v1.0.0-rc.1...sp1-core-v1.0.0-rc.1) - 2024-07-19 +## [1.0.0-rc1](https://github.com/succinctlabs/sp1/compare/sp1-core-v1.0.0-rc1...sp1-core-v1.0.0-rc1) - 2024-07-19 ### Added -- 1.0.0-rc.1 ([#1126](https://github.com/succinctlabs/sp1/pull/1126)) +- 1.0.0-rc1 ([#1126](https://github.com/succinctlabs/sp1/pull/1126)) - multi-threaded tracing ([#1124](https://github.com/succinctlabs/sp1/pull/1124)) - parallel recursion tracegen ([#1095](https://github.com/succinctlabs/sp1/pull/1095)) - publish sp1 to crates.io ([#1052](https://github.com/succinctlabs/sp1/pull/1052)) diff --git a/crates/core/machine/src/utils/mod.rs b/crates/core/machine/src/utils/mod.rs index 6c08a5656..38d650052 100644 --- a/crates/core/machine/src/utils/mod.rs +++ b/crates/core/machine/src/utils/mod.rs @@ -4,14 +4,12 @@ mod logger; #[cfg(any(test, feature = "programs"))] mod programs; mod prove; -mod serde; mod span; mod tracer; pub use buffer::*; pub use logger::*; pub use prove::*; -pub use serde::*; use sp1_curves::params::Limbs; pub use span::*; pub use tracer::*; diff --git a/crates/derive/CHANGELOG.md b/crates/derive/CHANGELOG.md index 449fe7ad8..63727ac0c 100644 --- a/crates/derive/CHANGELOG.md +++ b/crates/derive/CHANGELOG.md @@ -12,7 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - update tg ([#1214](https://github.com/succinctlabs/sp1/pull/1214)) -## [1.0.0-rc.1](https://github.com/succinctlabs/sp1/compare/sp1-derive-v1.0.0-rc.1...sp1-derive-v1.0.0-rc.1) - 2024-07-19 +## [1.0.0-rc1](https://github.com/succinctlabs/sp1/compare/sp1-derive-v1.0.0-rc1...sp1-derive-v1.0.0-rc1) - 2024-07-19 ### Other diff --git a/crates/eval/CHANGELOG.md b/crates/eval/CHANGELOG.md new file mode 100644 index 000000000..dfd5cda08 --- /dev/null +++ b/crates/eval/CHANGELOG.md @@ -0,0 +1,36 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## [1.2.0-rc2](https://github.com/succinctlabs/sp1/compare/sp1-eval-v1.2.0-rc1...sp1-eval-v1.2.0-rc2) - 2024-08-29 + +### Added +- performance test + add to CI ([#1426](https://github.com/succinctlabs/sp1/pull/1426)) +- restore acknolwedgements +- update tg ([#1214](https://github.com/succinctlabs/sp1/pull/1214)) +- v1.0.1 ([#1165](https://github.com/succinctlabs/sp1/pull/1165)) +- new README img ([#226](https://github.com/succinctlabs/sp1/pull/226)) +- readme updates ([#205](https://github.com/succinctlabs/sp1/pull/205)) +- more final touches ([#194](https://github.com/succinctlabs/sp1/pull/194)) +- curtaup + release system + cargo prove CLI updates ([#178](https://github.com/succinctlabs/sp1/pull/178)) +- (perf) updates from Plonky3 and verifier refactor ([#156](https://github.com/succinctlabs/sp1/pull/156)) +- developer experience improvements ([#145](https://github.com/succinctlabs/sp1/pull/145)) +- toolchain build from source & install ([#113](https://github.com/succinctlabs/sp1/pull/113)) +- io::read io::write ([#126](https://github.com/succinctlabs/sp1/pull/126)) +- tracing, profiling, benchmarking ([#99](https://github.com/succinctlabs/sp1/pull/99)) + +### Other +- update sp1 banner ([#1260](https://github.com/succinctlabs/sp1/pull/1260)) +- update docs ([#1240](https://github.com/succinctlabs/sp1/pull/1240)) +- final touches for public release ([#239](https://github.com/succinctlabs/sp1/pull/239)) +- update docs with slight nits ([#224](https://github.com/succinctlabs/sp1/pull/224)) +- sp1 rename ([#212](https://github.com/succinctlabs/sp1/pull/212)) +- enshrine AlignedBorrow macro ([#209](https://github.com/succinctlabs/sp1/pull/209)) +- readme cleanup ([#196](https://github.com/succinctlabs/sp1/pull/196)) +- rename succinct to curta ([#192](https://github.com/succinctlabs/sp1/pull/192)) +- better curta graphic ([#184](https://github.com/succinctlabs/sp1/pull/184)) +- Initial commit diff --git a/crates/helper/CHANGELOG.md b/crates/helper/CHANGELOG.md index 8b47f9b84..a42a34961 100644 --- a/crates/helper/CHANGELOG.md +++ b/crates/helper/CHANGELOG.md @@ -12,7 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - update tg ([#1214](https://github.com/succinctlabs/sp1/pull/1214)) -## [1.0.0-rc.1](https://github.com/succinctlabs/sp1/compare/sp1-helper-v1.0.0-rc.1...sp1-helper-v1.0.0-rc.1) - 2024-07-19 +## [1.0.0-rc1](https://github.com/succinctlabs/sp1/compare/sp1-helper-v1.0.0-rc1...sp1-helper-v1.0.0-rc1) - 2024-07-19 ### Fixed diff --git a/crates/primitives/CHANGELOG.md b/crates/primitives/CHANGELOG.md index 34c35c3d0..7c3473226 100644 --- a/crates/primitives/CHANGELOG.md +++ b/crates/primitives/CHANGELOG.md @@ -12,7 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - update tg ([#1214](https://github.com/succinctlabs/sp1/pull/1214)) -## [1.0.0-rc.1](https://github.com/succinctlabs/sp1/compare/sp1-primitives-v1.0.0-rc.1...sp1-primitives-v1.0.0-rc.1) - 2024-07-19 +## [1.0.0-rc1](https://github.com/succinctlabs/sp1/compare/sp1-primitives-v1.0.0-rc1...sp1-primitives-v1.0.0-rc1) - 2024-07-19 ### Added diff --git a/crates/prover/CHANGELOG.md b/crates/prover/CHANGELOG.md index 161cfb894..469c6b670 100644 --- a/crates/prover/CHANGELOG.md +++ b/crates/prover/CHANGELOG.md @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.2.0-rc2](https://github.com/succinctlabs/sp1/compare/sp1-prover-v1.2.0-rc1...sp1-prover-v1.2.0-rc2) - 2024-08-29 + +### Other +- update Cargo.lock dependencies + ## [1.1.0](https://github.com/succinctlabs/sp1/compare/sp1-prover-v1.0.1...sp1-prover-v1.1.0) - 2024-08-02 ### Added @@ -25,11 +30,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - *(deps)* bump thiserror from 1.0.61 to 1.0.63 ([#1136](https://github.com/succinctlabs/sp1/pull/1136)) - add audit reports ([#1142](https://github.com/succinctlabs/sp1/pull/1142)) -## [1.0.0-rc.1](https://github.com/succinctlabs/sp1/compare/sp1-prover-v1.0.0-rc.1...sp1-prover-v1.0.0-rc.1) - 2024-07-19 +## [1.0.0-rc1](https://github.com/succinctlabs/sp1/compare/sp1-prover-v1.0.0-rc1...sp1-prover-v1.0.0-rc1) - 2024-07-19 ### Added -- 1.0.0-rc.1 ([#1126](https://github.com/succinctlabs/sp1/pull/1126)) +- 1.0.0-rc1 ([#1126](https://github.com/succinctlabs/sp1/pull/1126)) - parallel recursion tracegen ([#1095](https://github.com/succinctlabs/sp1/pull/1095)) - result instead of exit(1) on trap in recursion ([#1089](https://github.com/succinctlabs/sp1/pull/1089)) - publish sp1 to crates.io ([#1052](https://github.com/succinctlabs/sp1/pull/1052)) diff --git a/crates/recursion/circuit/CHANGELOG.md b/crates/recursion/circuit/CHANGELOG.md index ee32d93bd..c2e0a0af2 100644 --- a/crates/recursion/circuit/CHANGELOG.md +++ b/crates/recursion/circuit/CHANGELOG.md @@ -20,7 +20,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - prover trait cleanup ([#1170](https://github.com/succinctlabs/sp1/pull/1170)) - add audit reports ([#1142](https://github.com/succinctlabs/sp1/pull/1142)) -## [1.0.0-rc.1](https://github.com/succinctlabs/sp1/compare/sp1-recursion-circuit-v1.0.0-rc.1...sp1-recursion-circuit-v1.0.0-rc.1) - 2024-07-19 +## [1.0.0-rc1](https://github.com/succinctlabs/sp1/compare/sp1-recursion-circuit-v1.0.0-rc1...sp1-recursion-circuit-v1.0.0-rc1) - 2024-07-19 ### Added diff --git a/crates/recursion/compiler/CHANGELOG.md b/crates/recursion/compiler/CHANGELOG.md index 0826ab86d..b703c6065 100644 --- a/crates/recursion/compiler/CHANGELOG.md +++ b/crates/recursion/compiler/CHANGELOG.md @@ -15,7 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - BabyBear range check Gnark ([#1225](https://github.com/succinctlabs/sp1/pull/1225)) -## [1.0.0-rc.1](https://github.com/succinctlabs/sp1/compare/sp1-recursion-compiler-v1.0.0-rc.1...sp1-recursion-compiler-v1.0.0-rc.1) - 2024-07-19 +## [1.0.0-rc1](https://github.com/succinctlabs/sp1/compare/sp1-recursion-compiler-v1.0.0-rc1...sp1-recursion-compiler-v1.0.0-rc1) - 2024-07-19 ### Added diff --git a/crates/recursion/core/CHANGELOG.md b/crates/recursion/core/CHANGELOG.md index 1f859293d..f2e143afe 100644 --- a/crates/recursion/core/CHANGELOG.md +++ b/crates/recursion/core/CHANGELOG.md @@ -20,7 +20,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - *(deps)* bump arrayref from 0.3.7 to 0.3.8 ([#1154](https://github.com/succinctlabs/sp1/pull/1154)) - add audit reports ([#1142](https://github.com/succinctlabs/sp1/pull/1142)) -## [1.0.0-rc.1](https://github.com/succinctlabs/sp1/compare/sp1-recursion-core-v1.0.0-rc.1...sp1-recursion-core-v1.0.0-rc.1) - 2024-07-19 +## [1.0.0-rc1](https://github.com/succinctlabs/sp1/compare/sp1-recursion-core-v1.0.0-rc1...sp1-recursion-core-v1.0.0-rc1) - 2024-07-19 ### Added diff --git a/crates/recursion/derive/CHANGELOG.md b/crates/recursion/derive/CHANGELOG.md index 05c797750..ba875412f 100644 --- a/crates/recursion/derive/CHANGELOG.md +++ b/crates/recursion/derive/CHANGELOG.md @@ -12,7 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - update tg ([#1214](https://github.com/succinctlabs/sp1/pull/1214)) -## [1.0.0-rc.1](https://github.com/succinctlabs/sp1/compare/sp1-recursion-derive-v1.0.0-rc.1...sp1-recursion-derive-v1.0.0-rc.1) - 2024-07-19 +## [1.0.0-rc1](https://github.com/succinctlabs/sp1/compare/sp1-recursion-derive-v1.0.0-rc1...sp1-recursion-derive-v1.0.0-rc1) - 2024-07-19 ### Other diff --git a/crates/recursion/gnark-cli/CHANGELOG.md b/crates/recursion/gnark-cli/CHANGELOG.md index 6084a52d0..c833e5105 100644 --- a/crates/recursion/gnark-cli/CHANGELOG.md +++ b/crates/recursion/gnark-cli/CHANGELOG.md @@ -7,12 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.2.0-rc2](https://github.com/succinctlabs/sp1/compare/sp1-recursion-gnark-cli-v1.2.0-rc1...sp1-recursion-gnark-cli-v1.2.0-rc2) - 2024-08-29 + +### Other +- update Cargo.lock dependencies + ## [1.1.0](https://github.com/succinctlabs/sp1/compare/sp1-recursion-gnark-cli-v1.0.1...sp1-recursion-gnark-cli-v1.1.0) - 2024-08-02 ### Added - update tg ([#1214](https://github.com/succinctlabs/sp1/pull/1214)) -## [1.0.0-rc.1](https://github.com/succinctlabs/sp1/compare/sp1-recursion-gnark-cli-v1.0.0-rc.1...sp1-recursion-gnark-cli-v1.0.0-rc.1) - 2024-07-19 +## [1.0.0-rc1](https://github.com/succinctlabs/sp1/compare/sp1-recursion-gnark-cli-v1.0.0-rc1...sp1-recursion-gnark-cli-v1.0.0-rc1) - 2024-07-19 ### Added diff --git a/crates/recursion/gnark-ffi/CHANGELOG.md b/crates/recursion/gnark-ffi/CHANGELOG.md index 1d7abddc0..37ee6833d 100644 --- a/crates/recursion/gnark-ffi/CHANGELOG.md +++ b/crates/recursion/gnark-ffi/CHANGELOG.md @@ -18,11 +18,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Other - *(deps)* bump serde_json from 1.0.120 to 1.0.121 ([#1196](https://github.com/succinctlabs/sp1/pull/1196)) -## [1.0.0-rc.1](https://github.com/succinctlabs/sp1/compare/sp1-recursion-gnark-ffi-v1.0.0-rc.1...sp1-recursion-gnark-ffi-v1.0.0-rc.1) - 2024-07-19 +## [1.0.0-rc1](https://github.com/succinctlabs/sp1/compare/sp1-recursion-gnark-ffi-v1.0.0-rc1...sp1-recursion-gnark-ffi-v1.0.0-rc1) - 2024-07-19 ### Added -- 1.0.0-rc.1 ([#1126](https://github.com/succinctlabs/sp1/pull/1126)) +- 1.0.0-rc1 ([#1126](https://github.com/succinctlabs/sp1/pull/1126)) - publish sp1 to crates.io ([#1052](https://github.com/succinctlabs/sp1/pull/1052)) - update verifier contract templates ([#963](https://github.com/succinctlabs/sp1/pull/963)) - circuit version in proof ([#926](https://github.com/succinctlabs/sp1/pull/926)) diff --git a/crates/recursion/program/CHANGELOG.md b/crates/recursion/program/CHANGELOG.md index 11ab52f1c..7a5991ce7 100644 --- a/crates/recursion/program/CHANGELOG.md +++ b/crates/recursion/program/CHANGELOG.md @@ -18,7 +18,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - prover trait cleanup ([#1170](https://github.com/succinctlabs/sp1/pull/1170)) - add audit reports ([#1142](https://github.com/succinctlabs/sp1/pull/1142)) -## [1.0.0-rc.1](https://github.com/succinctlabs/sp1/compare/sp1-recursion-program-v1.0.0-rc.1...sp1-recursion-program-v1.0.0-rc.1) - 2024-07-19 +## [1.0.0-rc1](https://github.com/succinctlabs/sp1/compare/sp1-recursion-program-v1.0.0-rc1...sp1-recursion-program-v1.0.0-rc1) - 2024-07-19 ### Added diff --git a/crates/sdk/CHANGELOG.md b/crates/sdk/CHANGELOG.md index 99b25672a..80c7c4d27 100644 --- a/crates/sdk/CHANGELOG.md +++ b/crates/sdk/CHANGELOG.md @@ -26,11 +26,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - *(deps)* bump tokio from 1.38.0 to 1.38.1 ([#1137](https://github.com/succinctlabs/sp1/pull/1137)) - add audit reports ([#1142](https://github.com/succinctlabs/sp1/pull/1142)) -## [1.0.0-rc.1](https://github.com/succinctlabs/sp1/compare/sp1-sdk-v1.0.0-rc.1...sp1-sdk-v1.0.0-rc.1) - 2024-07-19 +## [1.0.0-rc1](https://github.com/succinctlabs/sp1/compare/sp1-sdk-v1.0.0-rc1...sp1-sdk-v1.0.0-rc1) - 2024-07-19 ### Added -- 1.0.0-rc.1 ([#1126](https://github.com/succinctlabs/sp1/pull/1126)) +- 1.0.0-rc1 ([#1126](https://github.com/succinctlabs/sp1/pull/1126)) - publish sp1 to crates.io ([#1052](https://github.com/succinctlabs/sp1/pull/1052)) - critical constraint changes ([#1046](https://github.com/succinctlabs/sp1/pull/1046)) - cycle limit ([#1027](https://github.com/succinctlabs/sp1/pull/1027)) diff --git a/crates/zkvm/entrypoint/CHANGELOG.md b/crates/zkvm/entrypoint/CHANGELOG.md index 752b8e646..6d65a13a7 100644 --- a/crates/zkvm/entrypoint/CHANGELOG.md +++ b/crates/zkvm/entrypoint/CHANGELOG.md @@ -15,7 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - mutable static ref warning in halt syscall ([#1217](https://github.com/succinctlabs/sp1/pull/1217)) -## [1.0.0-rc.1](https://github.com/succinctlabs/sp1/compare/sp1-zkvm-v1.0.0-rc.1...sp1-zkvm-v1.0.0-rc.1) - 2024-07-19 +## [1.0.0-rc1](https://github.com/succinctlabs/sp1/compare/sp1-zkvm-v1.0.0-rc1...sp1-zkvm-v1.0.0-rc1) - 2024-07-19 ### Added diff --git a/crates/zkvm/lib/CHANGELOG.md b/crates/zkvm/lib/CHANGELOG.md index 0e0ca7d60..f822f9880 100644 --- a/crates/zkvm/lib/CHANGELOG.md +++ b/crates/zkvm/lib/CHANGELOG.md @@ -12,7 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - update tg ([#1214](https://github.com/succinctlabs/sp1/pull/1214)) -## [1.0.0-rc.1](https://github.com/succinctlabs/sp1/compare/sp1-lib-v1.0.0-rc.1...sp1-lib-v1.0.0-rc.1) - 2024-07-19 +## [1.0.0-rc1](https://github.com/succinctlabs/sp1/compare/sp1-lib-v1.0.0-rc1...sp1-lib-v1.0.0-rc1) - 2024-07-19 ### Added diff --git a/tests/bls12381-decompress/Cargo.lock b/tests/bls12381-decompress/Cargo.lock index 1dacc7f0d..03a6649fd 100644 --- a/tests/bls12381-decompress/Cargo.lock +++ b/tests/bls12381-decompress/Cargo.lock @@ -34,7 +34,7 @@ dependencies = [ [[package]] name = "bls-decompress-test" -version = "1.0.0-rc.1" +version = "1.0.0-rc1" dependencies = [ "sp1-zkvm", ] @@ -335,7 +335,7 @@ dependencies = [ [[package]] name = "sp1-lib" -version = "1.0.0-rc.1" +version = "1.0.0-rc1" dependencies = [ "anyhow", "bincode", @@ -347,7 +347,7 @@ dependencies = [ [[package]] name = "sp1-zkvm" -version = "1.0.0-rc.1" +version = "1.0.0-rc1" dependencies = [ "bincode", "cfg-if", From c658081f6deb95f1bae887d2026c7094e3304233 Mon Sep 17 00:00:00 2001 From: "Chris T." Date: Thu, 29 Aug 2024 14:11:01 -0700 Subject: [PATCH 18/20] chore: bump sp1-gpu version (#1440) --- crates/cuda/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/cuda/src/lib.rs b/crates/cuda/src/lib.rs index 06bf49b4a..96a74a083 100644 --- a/crates/cuda/src/lib.rs +++ b/crates/cuda/src/lib.rs @@ -86,7 +86,7 @@ impl SP1CudaProver { /// [SP1ProverClient] that can be used to communicate with the container. pub fn new() -> Self { let container_name = "sp1-gpu"; - let image_name = "jtguibas/sp1-gpu:v1.2.0-rc1"; + let image_name = "succinctlabs/sp1-gpu:v1.2.0-rc2"; let cleaned_up = Arc::new(AtomicBool::new(false)); let cleanup_name = container_name; From 9a21bf62eb089e5a89d261a33230f7b133ad1be3 Mon Sep 17 00:00:00 2001 From: Matt Stam <15695189+mattstam@users.noreply.github.com> Date: Thu, 29 Aug 2024 15:25:43 -0700 Subject: [PATCH 19/20] revert: "fix: add nonce constraint to fp" (#1444) --- .../core/machine/src/syscall/precompiles/fptower/fp.rs | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/crates/core/machine/src/syscall/precompiles/fptower/fp.rs b/crates/core/machine/src/syscall/precompiles/fptower/fp.rs index 35a04f823..a87170afc 100644 --- a/crates/core/machine/src/syscall/precompiles/fptower/fp.rs +++ b/crates/core/machine/src/syscall/precompiles/fptower/fp.rs @@ -8,7 +8,7 @@ use crate::air::MemoryAirBuilder; use generic_array::GenericArray; use itertools::Itertools; use num::{BigUint, Zero}; -use p3_air::{Air, AirBuilder, BaseAir}; +use p3_air::{Air, BaseAir}; use p3_field::{AbstractField, PrimeField32}; use p3_matrix::{dense::RowMajorMatrix, Matrix}; use sp1_core_executor::{ @@ -202,18 +202,11 @@ where let main = builder.main(); let local = main.row_slice(0); let local: &FpOpCols = (*local).borrow(); - let next = main.row_slice(1); - let next: &FpOpCols = (*next).borrow(); - - // Check that nonce is incremented. - builder.when_first_row().assert_zero(local.nonce); - builder.when_transition().assert_eq(local.nonce + AB::Expr::one(), next.nonce); // Check that operations flags are boolean. builder.assert_bool(local.is_add); builder.assert_bool(local.is_sub); builder.assert_bool(local.is_mul); - // Check that only one of them is set. builder.assert_eq(local.is_add + local.is_sub + local.is_mul, AB::Expr::one()); From 004c41df30ab2b0fa21eee4e76f84d18ea496d89 Mon Sep 17 00:00:00 2001 From: "Chris T." Date: Thu, 29 Aug 2024 15:26:03 -0700 Subject: [PATCH 20/20] fix: check branch CI (#1445) --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index aa46c6c10..72abf946d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -6,6 +6,7 @@ on: - main paths: - "crates/**" + - "Cargo.toml" - ".github/workflows/**" concurrency: