Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pull in forked changes #190

Merged
merged 52 commits into from
Jul 2, 2024
Merged

Pull in forked changes #190

merged 52 commits into from
Jul 2, 2024

Conversation

chancehudson
Copy link
Collaborator

@chancehudson chancehudson commented Jul 1, 2024

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

* chore: rename rsa circuit from main to main_rsa
remove wasmer dep
remove static proof generation logic, in memory zkey, etc
add rust_witness

chore: switch to git copy of rust-witness

fix: rsa circuit path

fix: mutability

fix: re-enable example

fix: move witness fn into scope

refactor: register list of proofs

fix: build anonaadhaar wasm to fix ci

refactor: remove wasm path

fix: zkey pathing

chore: remove wasmer ref

chore: switch to wasm delete copy of circom-compat

* chore: remove mutability and ignore

* chore: comment anonaadhaar build

chore: switch to zkmopro circom-compat fork

chore: update cargo lock

* fix: compile error in build script

* fix: put anonaadhaar tests behind feature flag

* chore: remove wasmer deps

* refactor: pass zkey path through ffi bridge

* chore: rebase, revert name changes

* chore: comments

* chore: fix halo2 build

* chore: conditionals...............
refactor: separate circom/halo2 functions in udl
chore(ci): split circom and halo2 tests
fix: don't export circom and halo2 modules
@chancehudson chancehudson marked this pull request as ready for review July 2, 2024 08:22
* fix(docs): header scroll bug

* feat: versioned docs

* refactor(docs): update docs for reworked repo
README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
README.md Show resolved Hide resolved
README.md Show resolved Hide resolved
docs/docs/getting-started/rust-setup.md Outdated Show resolved Hide resolved
docs/docs/getting-started/rust-setup.md Outdated Show resolved Hide resolved
docs/docs/intro.md Outdated Show resolved Hide resolved
*.iml
.gradle
/local.properties
/.idea/caches
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file was auto-generated by android studio, i don't know much about it

mopro-ffi/src/lib.rs Show resolved Hide resolved
@vivianjeng
Copy link
Collaborator

vivianjeng commented Jul 2, 2024

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

@vivianjeng vivianjeng merged commit e05f597 into zkmopro:main Jul 2, 2024
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment