Comments (3)
Building with msys/mingw might be easier:
- https://github.com/IlyaFinkelshteyn/tpch-dbgen/blob/158092d05dc7fe827ae271107cade1e8f8a5f7f6/appveyor.yml
- https://stackoverflow.com/questions/48500554/trouble-with-my-appveyor-windows-build-for-a-simple-c-project-on-github
- https://cmake.org/cmake/help/v3.1/generator/MinGW%20Makefiles.html
- https://stackoverflow.com/questions/46022210/how-to-configure-cmake-for-msys2
- https://www.scivision.co/windows-gcc-gfortran-cmake-make-install/
However, need to install the GMP and OpenSSL components via msys, or alternatively just build them separately and then link against them statically.
Come to think about it - is it better to do static builds of OpenSSL and GMP?
A very limited subset of OpenSSL / libcrypto functionality is used, and for libmiximus.(dll|dylib|so)
no OpenSSL functionality is used at all - only GMP (see nm -D libmiximus.so
)
Paths for Appveyor: https://www.appveyor.com/docs/build-environment/
But.. it would be nice to have a single file for build_on_windows.bat
or build_on_windows.ps
from ethsnarks.
I've got it almost building on appveyor using MSYS, but it runs into an error:
[ 22%] Built target ethsnarks_gadgets
src/CMakeFiles/hashpreimage.dir/build.make:86: *** target pattern contains no '%'. Stop.
make[1]: *** [CMakeFiles/Makefile2:1086: src/CMakeFiles/hashpreimage.dir/all] Error 2
make: *** [Makefile:95: all] Error 2
See: https://ci.appveyor.com/project/harryr/ethsnarks/builds/21534551 for full log
It won't build with MSVC because there's no GMP library, but mingw/msys have one.
Most C++ tests are run via cmake
now, and the appveyor.yml file should run the tests after a successful build.
from ethsnarks.
The previous build error has been fixed, this was due to GMP::gmp-NOTFOUND
being used as a target name in a Makefile (even though it's found on OSX and Linux, so have directly referenced the ${GMP_LIBRARY}
variable instead of the meta-library).
The project now builds successfully on Windows, see: https://ci.appveyor.com/project/harryr/ethsnarks
However... most if not all of the tests fail for mysterious reasons, and one hangs indefinitely. I think this is related to libff
and some mysterious weirdness, e.g.:
Program: C:\projects\ethsnarks\build\src\test\test_subadd.exe
File: C:/projects/ethsnarks/depends/libsnark/libsnark/gadgetlib1/gadgets/basic_gadgets.tcc, Line 50
Expression: this->pb.lc_val(packed).as_bigint().num_bits() <= bits.size()
Additionally all zkSNARK proofs fail to verify.
It seems something to do with the finite field library using the wrong field prime.
For now, the tests have been disabled. But a full log of the failing tests is available at: https://ci.appveyor.com/project/harryr/ethsnarks/builds/21950411
from ethsnarks.
Related Issues (20)
- Implement MiMCsponge HOT 18
- Export proving key and witness to `websnark` format
- Support zkinterface
- Database backed merkle tree implementation
- Add ethsnarks into places which mention zkSNARKs HOT 1
- In verifier, ensure that all public inputs are within the field
- Truncate hash output rather than `modulo p` HOT 2
- HashToPoint should re-hash at every iteration, instead of incrementing HOT 1
- Move away from Truffle
- Get patch accepted to libfqfft which solves OSX/Clang optimised, Enscripten (without patches) and Cheerp builds (which don't handle exceptions)
- Fix upstream bug with 32bit builds in `sha256_round_function_gadget`
- Remove `json` submodule
- Build error with Mingw32
- Python directory ethsnarks/ethsnarks as a PyPI package HOT 3
- Add roots of unity to `FQ` class
- Question about the MiMC implementation HOT 2
- Using SHA256 gadget with arbitrary sized input HOT 1
- is there poseidon solidity contract? HOT 2
- Is the ethsnark lib found on pypi is uploaded by this author? HOT 1
- Error when loading proving_key from pk_file
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ethsnarks.