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.