I wanna to build a parachain to run it localy .

The rust version I am using is : rustc 1.72.0 (5680fa18f 2023-08-23)

But when I run the command : cargo build --release it show me this error :

    Error[E0061]: this function takes 3 arguments but 2 arguments were supplied
      --> /home/kianoush/.cargo/git/checkouts/ring-vrf-fa8519651343a7ee/c86ebd4/bandersnatch_vrfs/src/ring.rs:34:5
    34 |     PiopParams::setup(domain, &mut rng)
       |     ^^^^^^^^^^^^^^^^^------------------ an argument of type `ark_ec::short_weierstrass::Affine<BandersnatchConfig>` is missing
    note: expected `Affine<BandersnatchConfig>`, found `&mut ChaCha20Rng`
      --> /home/kianoush/.cargo/git/checkouts/ring-vrf-fa8519651343a7ee/c86ebd4/bandersnatch_vrfs/src/ring.rs:34:31
    34 |     PiopParams::setup(domain, &mut rng)
       |                               ^^^^^^^^
       = note:         expected struct `ark_ec::short_weierstrass::Affine<BandersnatchConfig>`
               found mutable reference `&mut ChaCha20Rng`
    note: associated function defined here
      --> /home/kianoush/.cargo/git/checkouts/ring-proof-e9e49c3c86c409a2/8657210/ring/src/piop/params.rs:31:12
    31 |     pub fn setup(domain: Domain<F>, h: Affine<Curve>, seed: Affine<Curve>) -> Self {
       |            ^^^^^
    help: provide the argument
    34 |     PiopParams::setup(domain, /* ark_ec::short_weierstrass::Affine<BandersnatchConfig> */, /* ark_ec::short_weierstrass::Affine<BandersnatchConfig> */)
       |                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    For more information about this error, try `rustc --explain E0061`.
    error: could not compile `bandersnatch_vrfs` (lib) due to previous error
    warning: build failed, waiting for other jobs to finish...

how can i sovle this problem ?

  • Got the very same error when I did a new compile Sep 19 at 22:03
  • Same here. I'm pulling my hair on this one, cannot seem to find the source of this problem, since the polkadot repo compiles fine. I have the exact same section about bandersnatch_vrfs in Cargo.lock, but it still fails.
    – Boiethios
    Sep 20 at 17:29

1 Answer 1


After spending a bit of time on it, I ended up finding the source of the problem: the offending crate bandersnatch_vrfs pulls ring-proof from a github repo, and for some reason it pulls a wrong version sometimes.

I checked the version in Cargo.lock from the archived polkadot repo (in my case, I build on top of the archived v1, before the migration to the monorepo), and copy/pasted the correct hash for ring-proof in my Cargo.lock where needed:

source = "git+https://github.com/w3f/ring-proof#0e948f3c28cbacecdd3020403c4841c0eb339213"
  • I am experiencing the same when mixing dependencies from the archived substrate repo and polkadot-sdk, you fix worked! Curious if you have found a more long lasting solution?
    Oct 6 at 14:31
  • I think there is a fix you can use from their new monorepo, but I don't know which one exactly.
    – Boiethios
    Oct 11 at 18:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.