mopro icon indicating copy to clipboard operation
mopro copied to clipboard

feat(core): use wasm3 to generate witness

Open vivianjeng opened this issue 10 months ago • 1 comments

  • solution to #109 it can be published to testflight and generate a proof 截圖 2024-04-11 下午2 35 46
  • it uses the wasm3 and circom-compat-wasm3
  • Pros:
    • Minimal mopro code base changed
    • works for all circuits
  • Cons:
    • Slower than wasmer (3s v.s. 14s in test_generate_proof2)
    • currently doesn't work for android/or not solved yet
      error: failed to run custom build command for `wasm3-sys v0.5.0 (https://github.com/wasm3/wasm3-rs.git#df74c2a1)`

Caused by:
  process didn't exit successfully: `/Users/zhengyawen/Documents/GitHub/mopro/target/release/build/wasm3-sys-9fc7db572a976c79/build-script-build` (exit status: 101)
  --- stderr
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/cdefs.h:1022:2: error: Unsupported architecture
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/machine/_types.h:36:2: error: architecture not supported
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/_types.h:55:9: error: unknown type name '__int64_t'
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/_types.h:56:9: error: unknown type name '__int32_t'
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/_types.h:57:9: error: unknown type name '__int32_t'
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/_types.h:60:9: error: unknown type name '__uint32_t'
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/_types.h:61:9: error: unknown type name '__uint32_t'
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/_types.h:62:9: error: unknown type name '__uint64_t'
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/_types.h:68:9: error: unknown type name '__darwin_natural_t'
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/_types.h:70:9: error: unknown type name '__uint16_t'
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/_types.h:71:9: error: unknown type name '__int64_t'
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/_types.h:72:9: error: unknown type name '__int32_t'
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/_types.h:73:9: error: unknown type name '__uint32_t'
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/_types.h:74:9: error: unknown type name '__int32_t'
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/_types.h:75:9: error: unknown type name '__uint32_t'
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/_types.h:76:9: error: unknown type name '__uint32_t'
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/_types.h:43:9: error: unknown type name '__uint32_t'
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/machine/signal.h:36:2: error: architecture not supported
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/machine/_mcontext.h:36:2: error: architecture not supported
  fatal error: too many errors emitted, stopping now [-ferror-limit=]
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/cdefs.h:1022:2: error: Unsupported architecture, err: true
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/machine/_types.h:36:2: error: architecture not supported, err: true
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/_types.h:55:9: error: unknown type name '__int64_t', err: true
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/_types.h:56:9: error: unknown type name '__int32_t', err: true
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/_types.h:57:9: error: unknown type name '__int32_t', err: true
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/_types.h:60:9: error: unknown type name '__uint32_t', err: true
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/_types.h:61:9: error: unknown type name '__uint32_t', err: true
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/_types.h:62:9: error: unknown type name '__uint64_t', err: true
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/_types.h:68:9: error: unknown type name '__darwin_natural_t', err: true
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/_types.h:70:9: error: unknown type name '__uint16_t', err: true
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/_types.h:71:9: error: unknown type name '__int64_t', err: true
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/_types.h:72:9: error: unknown type name '__int32_t', err: true
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/_types.h:73:9: error: unknown type name '__uint32_t', err: true
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/_types.h:74:9: error: unknown type name '__int32_t', err: true
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/_types.h:75:9: error: unknown type name '__uint32_t', err: true
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/sys/_types.h:76:9: error: unknown type name '__uint32_t', err: true
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/_types.h:43:9: error: unknown type name '__uint32_t', err: true
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/machine/signal.h:36:2: error: architecture not supported, err: true
  /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk/usr/include/machine/_mcontext.h:36:2: error: architecture not supported, err: true
  fatal error: too many errors emitted, stopping now [-ferror-limit=], err: true
  thread 'main' panicked at /Users/zhengyawen/.cargo/git/checkouts/wasm3-rs-a44766fb80123c43/df74c2a/wasm3-sys/build.rs:111:10:
  Failed to generate bindings: ()
  stack backtrace:
     0:        0x102768e5c - std::backtrace_rs::backtrace::libunwind::trace::hf755a955ad018943
                                 at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
     1:        0x102768e5c - std::backtrace_rs::backtrace::trace_unsynchronized::hde69ab8e2b667964
                                 at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
     2:        0x102768e5c - std::sys_common::backtrace::_print_fmt::hf6c414569af631f5
                                 at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/sys_common/backtrace.rs:67:5
     3:        0x102768e5c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h0524bd1b527203b8
                                 at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/sys_common/backtrace.rs:44:22
     4:        0x102787fdc - core::fmt::rt::Argument::fmt::ha0532872e39381ee
                                 at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/fmt/rt.rs:138:9
     5:        0x102787fdc - core::fmt::write::h74be1333b0a6ddea
                                 at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/fmt/mod.rs:1114:21
     6:        0x102765b3c - std::io::Write::write_fmt::h6c011b665b2d7d4b
                                 at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/io/mod.rs:1763:15
     7:        0x102768c9c - std::sys_common::backtrace::_print::hcc60dadc0e4df78f
                                 at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/sys_common/backtrace.rs:47:5
     8:        0x102768c9c - std::sys_common::backtrace::print::he25ff7dac6402434
                                 at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/sys_common/backtrace.rs:34:9
     9:        0x10276a888 - std::panicking::default_hook::{{closure}}::h41763ba018b93bf7
                                 at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:272:22
    10:        0x10276a5a0 - std::panicking::default_hook::h017c44660373840e
                                 at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:292:9
    11:        0x10276adcc - std::panicking::rust_panic_with_hook::h221a0baf52ecd48a
                                 at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:731:13
    12:        0x10276acd4 - std::panicking::begin_panic_handler::{{closure}}::h18b661cf0f97a414
                                 at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:609:13
    13:        0x1027692e8 - std::sys_common::backtrace::__rust_end_short_backtrace::h4f4b2ffab2311217
                                 at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/sys_common/backtrace.rs:170:18
    14:        0x10276aa40 - rust_begin_unwind
                                 at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:597:5
    15:        0x1027a06ac - core::panicking::panic_fmt::hd6070cd222575be5
                                 at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/panicking.rs:72:14
    16:        0x1027a0a04 - core::result::unwrap_failed::h54ffffcb65858936
                                 at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/result.rs:1652:5
    17:        0x102264448 - core::result::Result<T,E>::expect::h63e34765fc5315e9
                                 at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/result.rs:1034:23
    18:        0x102267188 - build_script_build::gen_bindings::h0f71796a1b13e32f
                                 at /Users/zhengyawen/.cargo/git/checkouts/wasm3-rs-a44766fb80123c43/df74c2a/wasm3-sys/build.rs:94:5
    19:        0x102267378 - build_script_build::main::h9f05f8a482c1bc1d
                                 at /Users/zhengyawen/.cargo/git/checkouts/wasm3-rs-a44766fb80123c43/df74c2a/wasm3-sys/build.rs:117:5
    20:        0x1022630b0 - core::ops::function::FnOnce::call_once::h35c6204b5cec7acb
                                 at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/ops/function.rs:250:5
    21:        0x1022625bc - std::sys_common::backtrace::__rust_begin_short_backtrace::hcef8e49ebe0c9db2
                                 at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/sys_common/backtrace.rs:154:18
    22:        0x102262d98 - std::rt::lang_start::{{closure}}::hc40992a14c50f672
                                 at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/rt.rs:166:18
    23:        0x102761970 - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::h44482c562109b08c
                                 at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/core/src/ops/function.rs:284:13
    24:        0x102761970 - std::panicking::try::do_call::h627d61d518625eaf
                                 at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:504:40
    25:        0x102761970 - std::panicking::try::h487b8df834773e7d
                                 at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:468:19
    26:        0x102761970 - std::panic::catch_unwind::h5d4366c6f71d3443
                                 at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panic.rs:142:14
    27:        0x102761970 - std::rt::lang_start_internal::{{closure}}::h749338e1cc06c4f7
                                 at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/rt.rs:148:48
    28:        0x102761970 - std::panicking::try::do_call::h2098bd254e5cae95
                                 at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:504:40
    29:        0x102761970 - std::panicking::try::h7bfd8a0246bca0f8
                                 at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panicking.rs:468:19
    30:        0x102761970 - std::panic::catch_unwind::h6da51257cc975c65
                                 at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/panic.rs:142:14
    31:        0x102761970 - std::rt::lang_start_internal::h5f00c09289a72e67
                                 at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/rt.rs:148:20
    32:        0x102262d64 - std::rt::lang_start::h1c2dc5c5ababc103
                                 at /rustc/a28077b28a02b92985b3a3faecf92813155f1ea1/library/std/src/rt.rs:165:17
    33:        0x102267a30 - _main
warning: build failed, waiting for other jobs to finish...
note: If the build failed due to a missing target, you can run this command:
note: 
note:     rustup target install aarch64-linux-android

Script did not finish successfully!
(base) ➜  mopro git:(new-wasm3) ✗ rustup target install aarch64-linux-android
info: component 'rust-std' for target 'aarch64-linux-android' is up to date

vivianjeng avatar Apr 11 '24 10:04 vivianjeng