herumi / bls

288 stars 133 forks source link

Support for Not Using GMP? #19

Closed rauljordan closed 5 years ago

rauljordan commented 5 years ago

Hi @herumi, do you plan on adding support for not using GMP in the future? We are planning on using this project in https://github.com/prysmaticlabs/prysm and the major blocker is the need for end users to have gmp installed on their machines. Other implementations such as Chia Network have GMP optional: https://github.com/Chia-Network/bls-signatures.

herumi commented 5 years ago

mcl can be built without GMP by make MCL_USE_GMP=0 though the alternative library(include/mcl/vint.hpp) should be optimized for hashAndMapToGi.

At first, I'll support to build bls with MCL_USE_GMP=0.

rauljordan commented 5 years ago

Hi @herumi, we want to have signatures in G2 and public keys in G1. How difficult would this be to change based on your implementation?

rauljordan commented 5 years ago

Ah so right now, bls doesn't build with MCL_USE_GMP=0? Thank you for the responses!

herumi commented 5 years ago

make MCL_USE_GMP=0 for bls runs well.

https://github.com/herumi/bls/commit/75cc396b57a31336f44f104116456b7450a5b0b9

I do not check the performance and please let me know if there is a problem. (I think it is better to link GMP).