build error
chenhuan14 opened this issue · 2 comments
I want to try the recursive_aggregation function of zksync v1.1., but when I build the branch plonk_gadgets#b72d5cf7 , which is required by the recursive_aggregation_circuit
, it occurs the following errors:
Compiling franklin-crypto v0.0.5 (https://github.com/matter-labs/franklin-crypto?branch=plonk_gadgets#b72d5cf7)
error[E0277]: the trait bound E: pairing_ce::Engine
is not satisfied
--> /Users/chenhuan/.cargo/git/checkouts/franklin-crypto-4c6ecf4148c62588/b72d5cf/src/plonk/circuit/poseidon.rs:43:38
|
43 | pub trait PoseidonCsSBox<E: Engine>: SBox {
| ^^^^^^^ the trait pairing_ce::Engine
is not implemented for E
|
help: consider further restricting this bound with + pairing_ce::Engine
--> /Users/chenhuan/.cargo/git/checkouts/franklin-crypto-4c6ecf4148c62588/b72d5cf/src/plonk/circuit/poseidon.rs:43:29
|
43 | pub trait PoseidonCsSBox<E: Engine>: SBox {
| ^^^^^^
= note: required by poseidon_hash::SBox
error[E0277]: the trait bound E: pairing_ce::Engine
is not satisfied
--> /Users/chenhuan/.cargo/git/checkouts/franklin-crypto-4c6ecf4148c62588/b72d5cf/src/plonk/circuit/poseidon.rs:49:17
|
49 | impl<E: Engine> PoseidonCsSBox for QuinticSBox {
| ^^^^^^^^^^^^^^^^^ the trait pairing_ce::Engine
is not implemented for E
|
help: consider further restricting this bound with + pairing_ce::Engine
--> /Users/chenhuan/.cargo/git/checkouts/franklin-crypto-4c6ecf4148c62588/b72d5cf/src/plonk/circuit/poseidon.rs:49:9
|
49 | impl<E: Engine> PoseidonCsSBox for QuinticSBox {
| ^^^^^^
= note: required because of the requirements on the impl of poseidon_hash::SBox<E>
for poseidon_hash::QuinticSBox<E>
error[E0277]: the trait bound E: bellman::Engine
is not satisfied
--> /Users/chenhuan/.cargo/git/checkouts/franklin-crypto-4c6ecf4148c62588/b72d5cf/src/plonk/circuit/poseidon.rs:95:26
|
95 | AccumulatingToAbsorb(Vec<Num>),
| ^^^^^^^^^^^ the trait bellman::Engine
is not implemented for E
|
::: /Users/chenhuan/.cargo/git/checkouts/franklin-crypto-4c6ecf4148c62588/b72d5cf/src/plonk/circuit/allocated_num.rs:31:1
|
31 | pub enum Num<E: Engine> {
| ----------------------- required by plonk::circuit::allocated_num::Num
|
help: consider further restricting this bound with + bellman::Engine
--> /Users/chenhuan/.cargo/git/checkouts/franklin-crypto-4c6ecf4148c62588/b72d5cf/src/plonk/circuit/poseidon.rs:94:16
|
94 | enum OpMode<E: PoseidonEngine> {
| ^^^^^^^^^^^^^^
error[E0277]: the trait bound E: bellman::Engine
is not satisfied
--> /Users/chenhuan/.cargo/git/checkouts/franklin-crypto-4c6ecf4148c62588/b72d5cf/src/plonk/circuit/poseidon.rs:100:5
|
100 | internal_state: Vec<LinearCombination>,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait bellman::Engine
is not implemented for E
|
::: /Users/chenhuan/.cargo/git/checkouts/franklin-crypto-4c6ecf4148c62588/b72d5cf/src/plonk/circuit/linear_combination.rs:39:1
|
39 | pub struct LinearCombination<E: Engine> {
| --------------------------------------- required by plonk::circuit::linear_combination::LinearCombination
|
help: consider further restricting this bound with + bellman::Engine
--> /Users/chenhuan/.cargo/git/checkouts/franklin-crypto-4c6ecf4148c62588/b72d5cf/src/plonk/circuit/poseidon.rs:99:38
|
99 | pub struct StatefulPoseidonGadget<E: PoseidonEngine> {
| ^^^^^^^^^^^^^^
error[E0277]: the trait bound E: bellman::Engine
is not satisfied
--> /Users/chenhuan/.cargo/git/checkouts/franklin-crypto-4c6ecf4148c62588/b72d5cf/src/plonk/circuit/poseidon.rs:105:75
|
43 | pub trait PoseidonCsSBox<E: Engine>: SBox {
| -------------------------------------------- required by plonk::circuit::poseidon::PoseidonCsSBox
...
105 | where <::Params as PoseidonHashParams>::SBox: PoseidonCsSBox
| ^^^^^^^^^^^^^^^^^ the trait bellman::Engine
is not implemented for E
|
help: consider restricting this type parameter with where E: bellman::Engine
--> /Users/chenhuan/.cargo/git/checkouts/franklin-crypto-4c6ecf4148c62588/b72d5cf/src/plonk/circuit/poseidon.rs:104:6
|
104 | impl<E: PoseidonEngine> StatefulPoseidonGadget
| ^
error[E0277]: the trait bound E: pairing_ce::Engine
is not satisfied
--> /Users/chenhuan/.cargo/git/checkouts/franklin-crypto-4c6ecf4148c62588/b72d5cf/src/plonk/circuit/poseidon.rs:53:9
|
53 | &self,
| ^^^^^ the trait pairing_ce::Engine
is not implemented for E
|
help: consider further restricting this bound with + pairing_ce::Engine
--> /Users/chenhuan/.cargo/git/checkouts/franklin-crypto-4c6ecf4148c62588/b72d5cf/src/plonk/circuit/poseidon.rs:49:9
|
49 | impl<E: Engine> PoseidonCsSBox for QuinticSBox {
| ^^^^^^
= note: required by poseidon_hash::QuinticSBox
error[E0277]: the trait bound E: pairing_ce::Engine
is not satisfied
--> /Users/chenhuan/.cargo/git/checkouts/franklin-crypto-4c6ecf4148c62588/b72d5cf/src/plonk/circuit/poseidon.rs:85:9
|
85 | &self,
| ^^^^^ the trait pairing_ce::Engine
is not implemented for E
|
help: consider further restricting this bound with + pairing_ce::Engine
--> /Users/chenhuan/.cargo/git/checkouts/franklin-crypto-4c6ecf4148c62588/b72d5cf/src/plonk/circuit/poseidon.rs:49:9
|
49 | impl<E: Engine> PoseidonCsSBox for QuinticSBox {
| ^^^^^^
= note: required by poseidon_hash::QuinticSBox
error[E0277]: the trait bound E: bellman::ScalarEngine
is not satisfied in plonk::circuit::linear_combination::LinearCombination<E>
--> /Users/chenhuan/.cargo/git/checkouts/franklin-crypto-4c6ecf4148c62588/b72d5cf/src/plonk/circuit/poseidon.rs:120:16
|
120 | state: &[LinearCombination],
| ^^^^^^^^^^^^^^^^^^^^^^^ within plonk::circuit::linear_combination::LinearCombination<E>
, the trait bellman::ScalarEngine
is not implemented for E
|
help: consider restricting this type parameter with where E: bellman::ScalarEngine
--> /Users/chenhuan/.cargo/git/checkouts/franklin-crypto-4c6ecf4148c62588/b72d5cf/src/plonk/circuit/poseidon.rs:104:6
|
104 | impl<E: PoseidonEngine> StatefulPoseidonGadget
| ^
= note: required because it appears within the type plonk::circuit::linear_combination::LinearCombination<E>
= note: slice and array elements must have Sized
type
error[E0277]: the trait bound E: bellman::ScalarEngine
is not satisfied in plonk::circuit::linear_combination::LinearCombination<E>
--> /Users/chenhuan/.cargo/git/checkouts/franklin-crypto-4c6ecf4148c62588/b72d5cf/src/plonk/circuit/poseidon.rs:353:10
|
353 | ) -> Result<LinearCombination, SynthesisError> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ within plonk::circuit::linear_combination::LinearCombination<E>
, the trait bellman::ScalarEngine
is not implemented for E
|
help: consider restricting this type parameter with where E: bellman::ScalarEngine
--> /Users/chenhuan/.cargo/git/checkouts/franklin-crypto-4c6ecf4148c62588/b72d5cf/src/plonk/circuit/poseidon.rs:104:6
|
104 | impl<E: PoseidonEngine> StatefulPoseidonGadget
| ^
= note: required because it appears within the type plonk::circuit::linear_combination::LinearCombination<E>
= note: required by std::result::Result
error: aborting due to 9 previous errors
For more information about this error, try rustc --explain E0277
.
error: could not compile franklin-crypto
.
To learn more, run the command again with --verbose.
This looks like a mismatch of the "pairing_ce" crate versions in franklin and in poseidon hash crate. Can you try "cargo update" and rebuild? Also you can use the "dev" branch for latest versions of bellman and gadgets
Thanks. Using the "dev" branch for latest versions of bellman and gadgets, it works.