Skip to content

Commit

Permalink
chore: bump nova to 0.3.4 (RingsNetwork#549)
Browse files Browse the repository at this point in the history
  • Loading branch information
RyanKung committed Mar 17, 2024
1 parent 8285309 commit eef7d99
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 23 deletions.
20 changes: 16 additions & 4 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion crates/node/src/backend/snark/browser.rs
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ pub fn bigint_to_field(v: js_sys::BigInt, field: SupportedPrimeField) -> Result<
}
}
SupportedPrimeField::Bn256KZG => {
type F = <provider::mlkzg::Bn256EngineKZG as Engine>::Scalar;
type F = <provider::hyperkzg::Bn256EngineKZG as Engine>::Scalar;
Field {
value: FieldEnum::Bn256KZG(bigint2ff::<F>(v)?),
}
Expand Down
32 changes: 16 additions & 16 deletions crates/node/src/backend/snark/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ use rings_derive::wasm_export;
use rings_rpc::method::Method;
use rings_snark::circuit;
use rings_snark::prelude::nova::provider;
use rings_snark::prelude::nova::provider::hyperkzg;
use rings_snark::prelude::nova::provider::ipa_pc;
use rings_snark::prelude::nova::provider::mlkzg;
use rings_snark::prelude::nova::spartan;
use rings_snark::prelude::nova::traits::snark::RelaxedR1CSSNARKTrait;
use rings_snark::prelude::nova::traits::Engine;
Expand Down Expand Up @@ -142,7 +142,7 @@ pub enum CircuitGenerator {
/// Circuit based on pallas curve
Pallas(circuit::WasmCircuitGenerator<<provider::PallasEngine as Engine>::Scalar>),
/// Circuit based on KZG bn256
Bn256KZG(circuit::WasmCircuitGenerator<<provider::mlkzg::Bn256EngineKZG as Engine>::Scalar>),
Bn256KZG(circuit::WasmCircuitGenerator<<provider::hyperkzg::Bn256EngineKZG as Engine>::Scalar>),
}

/// Supported prime field
Expand Down Expand Up @@ -220,7 +220,7 @@ pub enum CircuitEnum {
/// Based on pallas curve
Pallas(circuit::Circuit<<provider::PallasEngine as Engine>::Scalar>),
/// based on bn256 and KZG
Bn256KZG(circuit::Circuit<<provider::mlkzg::Bn256EngineKZG as Engine>::Scalar>),
Bn256KZG(circuit::Circuit<<provider::hyperkzg::Bn256EngineKZG as Engine>::Scalar>),
}

#[wasm_export]
Expand Down Expand Up @@ -251,7 +251,7 @@ pub enum FieldEnum {
/// field of pallas curve
Pallas(<provider::PallasEngine as Engine>::Scalar),
/// bn256 with kzg
Bn256KZG(<provider::mlkzg::Bn256EngineKZG as Engine>::Scalar),
Bn256KZG(<provider::hyperkzg::Bn256EngineKZG as Engine>::Scalar),
}

#[wasm_export]
Expand All @@ -267,7 +267,7 @@ impl Field {
},
SupportedPrimeField::Bn256KZG => Self {
value: FieldEnum::Bn256KZG(
<provider::mlkzg::Bn256EngineKZG as Engine>::Scalar::from(v),
<provider::hyperkzg::Bn256EngineKZG as Engine>::Scalar::from(v),
),
},
}
Expand Down Expand Up @@ -316,7 +316,7 @@ impl SNARKTaskBuilder {
})
}
SupportedPrimeField::Bn256KZG => {
type F = <provider::mlkzg::Bn256EngineKZG as Engine>::Scalar;
type F = <provider::hyperkzg::Bn256EngineKZG as Engine>::Scalar;
let r1cs =
r1cs::load_r1cs::<F>(r1cs::Path::Local(r1cs_path), r1cs::Format::Bin).await?;
let witness_calculator =
Expand Down Expand Up @@ -365,7 +365,7 @@ impl SNARKTaskBuilder {
})
}
SupportedPrimeField::Bn256KZG => {
type F = <provider::mlkzg::Bn256EngineKZG as Engine>::Scalar;
type F = <provider::hyperkzg::Bn256EngineKZG as Engine>::Scalar;
let r1cs =
r1cs::load_r1cs::<F>(r1cs::Path::Remote(r1cs_path), r1cs::Format::Bin).await?;
let witness_calculator =
Expand Down Expand Up @@ -495,7 +495,7 @@ impl SNARKTaskBuilder {
Ok(circuits)
}
CircuitGenerator::Bn256KZG(g) => {
type F = <provider::mlkzg::Bn256EngineKZG as Engine>::Scalar;
type F = <provider::hyperkzg::Bn256EngineKZG as Engine>::Scalar;

let input: circuit::Input<F> = public_input
.into_iter()
Expand Down Expand Up @@ -613,9 +613,9 @@ impl SNARKTaskBuilder {
})
}
CircuitEnum::Bn256KZG(_) => {
type E1 = provider::mlkzg::Bn256EngineKZG;
type E1 = provider::hyperkzg::Bn256EngineKZG;
type E2 = provider::GrumpkinEngine;
type EE1 = mlkzg::EvaluationEngine<E1>;
type EE1 = hyperkzg::EvaluationEngine<E1>;
type EE2 = ipa_pc::EvaluationEngine<E2>;
type S1 = spartan::snark::RelaxedR1CSSNARK<E1, EE1>; // non-preprocessing SNARK
type S2 = spartan::snark::RelaxedR1CSSNARK<E2, EE2>; // non-preprocessing SNARK
Expand Down Expand Up @@ -771,9 +771,9 @@ impl SNARKBehaviour {
Ok(SNARKVerifyTask::PallasVasta(serde_json::to_string(&proof)?))
}
SNARKProofTask::Bn256KZGGrumpkin(s) => {
type E1 = provider::mlkzg::Bn256EngineKZG;
type E1 = provider::hyperkzg::Bn256EngineKZG;
type E2 = provider::GrumpkinEngine;
type EE1 = mlkzg::EvaluationEngine<E1>;
type EE1 = hyperkzg::EvaluationEngine<E1>;
type EE2 = ipa_pc::EvaluationEngine<E2>;
type S1 = spartan::snark::RelaxedR1CSSNARK<E1, EE1>; // non-preprocessing SNARK
type S2 = spartan::snark::RelaxedR1CSSNARK<E2, EE2>; // non-preprocessing SNARK
Expand Down Expand Up @@ -833,9 +833,9 @@ impl SNARKBehaviour {
}
}
SNARKVerifyTask::Bn256KZGGrumpkin(p) => {
type E1 = provider::mlkzg::Bn256EngineKZG;
type E1 = provider::hyperkzg::Bn256EngineKZG;
type E2 = provider::GrumpkinEngine;
type EE1 = mlkzg::EvaluationEngine<E1>;
type EE1 = hyperkzg::EvaluationEngine<E1>;
type EE2 = ipa_pc::EvaluationEngine<E2>;
type S1 = spartan::snark::RelaxedR1CSSNARK<E1, EE1>; // non-preprocessing SNARK
type S2 = spartan::snark::RelaxedR1CSSNARK<E2, EE2>; // non-preprocessing SNARK
Expand Down Expand Up @@ -865,11 +865,11 @@ impl From<SNARKGenerator<provider::VestaEngine, provider::PallasEngine>> for SNA
}
}

impl From<SNARKGenerator<provider::mlkzg::Bn256EngineKZG, provider::GrumpkinEngine>>
impl From<SNARKGenerator<provider::hyperkzg::Bn256EngineKZG, provider::GrumpkinEngine>>
for SNARKProofTask
{
fn from(
snark: SNARKGenerator<provider::mlkzg::Bn256EngineKZG, provider::GrumpkinEngine>,
snark: SNARKGenerator<provider::hyperkzg::Bn256EngineKZG, provider::GrumpkinEngine>,
) -> Self {
Self::Bn256KZGGrumpkin(snark)
}
Expand Down
2 changes: 1 addition & 1 deletion crates/node/src/backend/types.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ use std::sync::Arc;
use bytes::Bytes;
use rings_core::message::MessagePayload;
use rings_rpc::protos::rings_node::SendBackendMessageRequest;
use rings_snark::prelude::nova::provider::mlkzg::Bn256EngineKZG;
use rings_snark::prelude::nova::provider::hyperkzg::Bn256EngineKZG;
use rings_snark::prelude::nova::provider::GrumpkinEngine;
use rings_snark::prelude::nova::provider::PallasEngine;
use rings_snark::prelude::nova::provider::VestaEngine;
Expand Down
2 changes: 1 addition & 1 deletion crates/snark/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ default = []
llvm = []
[dependencies]
# https://github.com/microsoft/Nova
nova-snark = { git = "https://github.com/RingsNetwork/nova", version = "0.33", rev = "ea333243b57f3ae794f1d8f6ff00f89adc94bfac" }
nova-snark = { git = "https://github.com/RingsNetwork/nova", version = "0.34", rev = "d77b65437575d392977cf85ca556b562bf207203" }

ff = { version = "0.13", features = ["derive"] }

Expand Down

0 comments on commit eef7d99

Please sign in to comment.