metacraft-labs / DendrETH

A smart contract implementation of the Ethereum light client sync protocol
GNU General Public License v3.0
44 stars 9 forks source link

Upgrade Circom compiler to the latest version #132

Open PetarKirov opened 1 year ago

PetarKirov commented 1 year ago
  1. @monyarm will create a branch in nix-blockchain-development that upgrades the Circom Nix package to the latest version (currently v2.1.5) and will open a PR.
  2. Once the CI for the PR is green, @monyarm will prepare a branch in DendrETH where the nix-blockchain-development flake input points to the branch
  3. @Dimo99 will test the new version of the compiler to ensure it works correctly
  4. Assuming all goes well, we'll merge the PR in nix-blockchain-development and merge the branch in DendrETH with the upgrade of Circom

From DevOps point of view, the main reason for upgrading is the -l option which was introduced in 2.0.8.

monyarm commented 1 year ago

Question. Why create a DendrETH branch that changes the flake input? Wouldn't it be better for Dimo to change it? Cause we won't end up merging the branch, since when we merge the nix-blockchain-development branch, the flake will be pointing to the right place. So I don't see why we would want to change it and then merge it?

monyarm commented 1 year ago

Well, I made a DendrETH branch temp/circom-update , which makes the input follow the nix-blockchain-development branch

Dimo99 commented 1 year ago

I have compiled our latest circuit from #105 and the produced zkey and .dat were identical in terms of b3sum hash. But there are differences in the witness generator executable and cpp files. I think it will be fine although I haven't tested in order to test I will need to deploy contracts with the newest version of our circuit and run the relayer with this newly compiled circuit.