zkmopro / mopro

Making client-side proving on mobile simple.
https://zkmopro.org
Apache License 2.0
131 stars 35 forks source link

Pull in forked changes #190

Closed chancehudson closed 5 months ago

chancehudson commented 5 months ago

This PR includes major changes to the structure of mopro. These changes are made to support application defined native logic like witness generation and halo2 proof calculation.

ark-zkey

ark-zkey was moved into it's own repo.

gpu-research

All gpu research logic is removed and contained in a separate branch/repo. In the future specific gpu accelerations can be added as needed.

mopro-ios/mopro-android

These legacy directories were removed.

mopro-cli

The mopro-cli was removed in favor of rust implemented build logic. Additionally the circuit compilation logic (e.g. circom) was removed in favor of having the user supply zkey files themselves.

mopro-core/mopro-ffi

mopro-core and mopro-ffi were merged into just mopro-ffi. Additionally mopro-ffi does not invoke uniffi directly. It's expected that the app will build the uniffi logic itself with it's own rust logic (e.g. for witness gen).

templates

The template system for setting up projects was removed. Instead manual instructions are provided to create a project using cargo init.

app! macro

The app macro was added as the main method of implementing uniffi in apps. This macro expects a zkey_witness_map function for native witness calculation.

test-e2e

The test-e2e folder contains app implementations for android and ios. Both apps are built in ci. iOS has UI tests implemented as well.

library bundles

For iOS and Android the static libraries are built into an xcframework and jniLibs respectively. This means we can build multiple architectures at once so the user doesn't need to re-run cargo build when they switch from simulator to device. The user only needs to rebuild to switch from debug to release.

Depends #189

Closes #9 Closes #11 as unnecessary Closes #73 Closes #83 (i think, @vivianjeng can you double check this?) Closes #107 Closes #109 Related #117 (i think we can pull the mopro-app code into test-e2e) Closes #141 Closes #151 Closes #180 Closes #127

vivianjeng commented 5 months ago

additional information ark-zkey is moved here: https://github.com/zkmopro/ark-zkey gpu-research is moved here: https://github.com/zkmopro/gpu-acceleration mopro-ios is here: https://github.com/zkmopro/mopro-ios mopro-android is here: https://github.com/zkmopro/mopro-android