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

Support dylib #11

Closed
oskarth opened this issue Oct 25, 2023 · 2 comments · Fixed by #190
Closed

Support dylib #11

oskarth opened this issue Oct 25, 2023 · 2 comments · Fixed by #190

Comments

@oskarth
Copy link
Collaborator

oskarth commented Oct 25, 2023

Problem

Right now we use wasmer wasm for Circom witness generation and static lib for whole of mopro.

This might be a challenge in a few areas:

  • Performance (dylib might be faster than interpreting wasm file for witness gen)
  • Binary size (static lib quite big)
  • Startup time
  • Compliance with app store (for distribution, dylib might be better approach)

Notes

This might require some additional work regarding setup, library initialization etc.

Acceptance criteria

  • Existing work cleaned up Spike/real device #7
  • dylib behavior hidden under a feature flag
  • witness generation and proving integrated throughout
  • basic numbers to compare witness gen and proof gen on real device
  • updated docs on other ad hoc actions needed (install paths, code signing etc)
@oskarth
Copy link
Collaborator Author

oskarth commented Oct 25, 2023

Merged some partial cleaned up progress https://github.com/oskarth/mopro/blob/main/mopro-core/build.rs

@oskarth
Copy link
Collaborator Author

oskarth commented Oct 26, 2023

vivianjeng added a commit that referenced this issue Jul 2, 2024
* refactor: remove wasm, add native proof generation (#179)

* 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: remove mopro-core, transfer logic to mopro-ffi
refactor: separate circom/halo2 functions in udl

* chore: remove unused files
chore(ci): split circom and halo2 tests

* chore(ci): test on sync

* chore(ci): fix

* fix: properly throw errors in e2e test, fix swift zkey path

* chore(ci): only build halo2 feature in ci

* wip: app_config api

* refactor: remove ark_zkey

* fix: uniffi test bindings, fix warnings, cleanup dead code

* cleanup: remove web-prover, templates, scripts, mopro-cli

* chore: remove redundant compiler flags

* feat: custom circuit config

* refactor: move uniffi platform tests to separate package

* chore: update ci tests, move WtnsFn to mopro_ffi

* fix: halo2 depend num-bigint

* refactor: simplify circuit_data implementation

* feat: ios build support

* fix: installs archs during ios build

* chore: disable default feature

* chore: add comment
fix: don't export circom and halo2 modules

* chore: update readmes

* fix: platform parsing

* chore: add getting started section

* fix: move rust-witness dep

* chore: remove mopro-web

* chore: remove unused deps

* chore: remove deps

* chore: fix halo2 build

* chore: update rust-witness, remove paste

* chore: remove images

* refactor: pull ios logic into own file, build multiple architectures

* fix: debug/release selection

* feat: EXTRA_ARCHS compile option

* fix: build universal binary

* fix: make tmpdir in local build dir

* fix: create build dir if needed

* chore: add kotlin bindings

* refactor: change circuit_data -> zkey_witness_map, pass full zkey filename

* readme tutorial (#5)

* wip: readme tutorial

* fix: use the name zkey_witness_map function name

* chore: update package lock

* chore: re-add mopro-web

* refactor: mopro-web -> docs

* chore: update docs edit url

* feat: add exporting android bindings (#1)

* feat: add exporting android bindings

* chore: install cargo-ndk

* chore: apply suggestions

* chore: apply suggestions from chatGPT, fix cargo ndk build

* chore: update readme

* refactor: output ios bindings to MoproiOSBindings, closes #7

* fix(ci): prevent duplicate jobs in pr

* Add apps (#10)

* feat: add ios app to test-e2e

* feat: add android build

* chore: update ci

* chore: commit gradle wrapper

* versioned docs (#11)

* fix(docs): header scroll bug

* feat: versioned docs

* refactor(docs): update docs for reworked repo

* chore: update repo urls

* chore(docs): update project list

---------

Co-authored-by: Ya-wen, Jeng <vivi432@yahoo.com.tw>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant