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 Commented Sep 19, 2023 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
    Commented Sep 20, 2023 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?
    Commented Oct 6, 2023 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
    Commented Oct 11, 2023 at 18:00

Your Answer

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

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