Development resources at your finger tips
Build with the coolest Web3 projects
Recurring funding for Open Source
Learn about Web3 & earn rewards
Show appreciation for each other
Meet fellow developers, designers, futurists and more. Collaborate and BUIDL awesome projects together.
Discover great web3 organizations, work on meaningful projects and build relationships with like minded people. Browse Tribes
Meet the top hunters and contributors from our community.
In partnership with Protocol Labs, we’re excited to welcome builders from everywhere to APOLLO, your mission control to engage with the builder…
We’re excited to publically announce that Matic Network is partnering with Gitcoin to launch the Build-n-Earn Program – assisting dApps t…
Gitcoin is GDPR complaint. Learn more in
Gitcoin's Terms & Conditions.
Check out the Issue Explorer
Looking to fund some work? You can submit a new Funded Issue here.
A critical component of this library is the [GNU Multiple Precision Arithmetic Library](https://gmplib.org/) written in C used for most underlying cryptographic calculations that are part of BLS. A major problem with this is that most architectures do not ship with GMP installed globally, and therefore any user wishing to use go-bls in their project will need to pollute their global namespace with libgmp.
We have opted for using the [Bazel](https://build.bazel) build system created by Google for dependency management and packaging of this repository for use in other projects. In particular, go-bls will be a critical component of the [Prysm](https://github.com/prysmaticlabs/prysm) client created by Prysmatic Labs for Ethereum 2.0. Prysm uses the Bazel build tool extensively and ideally we'd want to import go-bls via Bazel as well. The problem with this is that GMP is not included as a Bazel dependency of go-bls, and therefore the build will fail due not finding the library.
A solution to this would be to convert lib GMP into a Bazel project following the guidelines for C/C++ projects in the Bazel documentation [here](https://docs.bazel.build/versions/master/be/c-cpp.html#cc_library). This is fairly extensive effort as GMP is a very big library containing multiple pieces. Tackling this issue would allow Prysm and any other Bazel-enabled project to import go-bls without requiring users to have GMP installed on their machine.
We are requesting to bounty this project out for motivated individuals to make this happen. This is a high priority for us at Prysmatic Labs.
### Starting Point
This issue created by @prestonvanloon is a great starting point for someone tackling this: [unable to gen_rule as part of http_archive](https://github.com/bazelbuild/bazel/issues/6344).
Preston began by using http_archive to pull the libgmp official repo and begin creating a bazel BUILD file for the system directly.