Skip to content

Latest commit

 

History

History
88 lines (63 loc) · 3.12 KB

CHANGELOG.md

File metadata and controls

88 lines (63 loc) · 3.12 KB

CHANGELOG

Next (upcoming release)

🚨 Breaking Changes

  • The Prover trait's prove() function now returns a ProveInfo. This struct contains the receipt as well as cycle and segment information gathered during the proof generation. The following is the definition of ProveInfo and SessionStats structs:
/// Information returned by the prover including receipt as well as other information useful for debugging
pub struct ProveInfo {
    /// receipt from the computation
    pub receipt: Receipt,
    /// stats about cycle counts of the execution
    pub stats: SessionStats,
}

/// Struct containing information about a prover's cycle count after running the guest program
pub struct SessionStats {
    /// Count of segments in this proof request
    pub segments: usize,
    /// Total cycles run within guest
    pub total_cycles: u64,
    /// User cycles run within guest
    pub user_cycles: u64,
}

For those upgrading from v0.21.0, the following code change is necessary on the host side to retrieve the receipt.

-   let receipt = prover.prove(env, BEVY_GUEST_ELF).unwrap();
+   let receipt = prover.prove(env, BEVY_GUEST_ELF).unwrap().receipt;

🛠 Fixes

  • Fix an issue where the temporary directory is not being removed when the Session goes out of scope. This helps prevent the depletion of disk space.

  • Verification of groth16 receipts in rust that are compatible with Bonsai

⚡️ Features

  • Add an improved Poseidon2 hashing function that replaces Poseidon for recursive proofs.

🚨 Breaking Changes

  • For recursive proofs, the Poseidon hash function is replaced by the Poseidon2 hash function. Users can still create receipts using the older Poseidon hash function but these receipts will not be usable by Bonsai or any proof composition or rollup use cases.

🛠 Fixes

  • Revert change to Prover::prove to return a SuccinctReceipt. This prevents a performance regression for default use cases.

🛠 Fixes

  • Restrict software ecall handler address range
  • Fix argument handling in client/server mode
  • Change jal to call in zkVM entrypoint #1257
  • Improve ZKR zip file handling

⚡️ Features

  • Support for Proof Composition
  • Add execution statistics when using RUST_LOG=info
  • Add XGBoost example using Spice AI query to train a model
  • Improve CUDA performance by integrating sppark
  • Add Poseidon2 support to CUDA backend
  • Support for verifying Groth16 proofs
  • Add exponential backoff to bonsai proof polling
  • add getrandom feature to toggle getrandom in the guest
  • Adjust Prover::prove to return a SuccinctReceipt by default

🚨 Breaking Changes

  • Rename ReceiptMetadata to ReceiptClaim
  • Drop MemoryImage from the public API
  • Drop _elf suffix from API. For example, Prover::prove_elf is renamed Prover::prove.