Adds ethsnarks.hpp which defines ProvingKeyT etc. so many templated types can be known at compile-time and compiled once, and changes can be reliably made in a single place if the proving or verification system changes.
Adds ethsnarks namespace for some things
Reduces time of rebuilds/incremental-builds where only an underlying file has changed
Ideally I'd like to compile all of the gadgets into an ethsnarks_gadgets library, which would reduce rebuild times further for the tests.
This doesn't change the overall build time, when building from scratch, but significantly improves rebuild time when modifying some individual files.
This helps towards #25 and #18
This branch does the following:
ethsnarks_common
libraryethsnarks.hpp
which defines ProvingKeyT etc. so many templated types can be known at compile-time and compiled once, and changes can be reliably made in a single place if the proving or verification system changes.ethsnarks
namespace for some thingsIdeally I'd like to compile all of the gadgets into an
ethsnarks_gadgets
library, which would reduce rebuild times further for the tests.This doesn't change the overall build time, when building from scratch, but significantly improves rebuild time when modifying some individual files.