ethereum / py_ecc

Python implementation of ECC pairing and bn_128 and bls12_381 curve operations
MIT License
191 stars 82 forks source link

Wrapper for BLS python bindings in Chia Network #71

Open mhchia opened 5 years ago

mhchia commented 5 years ago

What is wrong?

To address https://github.com/ethereum/py_ecc/issues/66, we can make use of faster implementations. Chia-Network has BLS signature implementation in C++, as well as its bindings for Python.

How can it be fixed

To make use of the bindings, we need a wrapper for the essential functions in bls.api

Possible concerns

Chia-Network/bls-signatures is under the license Apache 2.0. From my understanding, since we only import the library, from the rules in Apache 2.0, it seems not to affect our license. Is it correct? I don't have enough experience in the licenses. Please correct me if I'm wrong.

mhchia commented 5 years ago

cc @pipermerriam @carver @hwwhww @ChihChengLiang

ChihChengLiang commented 5 years ago

Could we leave bls/api.py as is, and put the wrapper in somewhere like bls_binding/api.py?

For the license concern, I don't have experience in this either.

carver commented 5 years ago

Chia-Network/bls-signatures is under the license Apache 2.0. From my understanding, since we only import the library, from the rules in Apache 2.0, it seems not to affect our license. Is it correct? I don't have enough experience in the licenses. Please correct me if I'm wrong.

Yeah, no problem to add a dependency on an Apache-licensed library. It's pretty much only a problem with something like GPL-like licenses.

mhchia commented 5 years ago

@carver That sounds great! Thank you for answering:)