py_ecc icon indicating copy to clipboard operation
py_ecc copied to clipboard

Wrapper for BLS python bindings in Chia Network

Open mhchia opened this issue 6 years ago • 4 comments
trafficstars

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

  • sign
  • privtopub
  • verify
  • aggregate_signatures
  • aggregate_pubkeys
  • aggregate_multiple

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 avatar May 25 '19 13:05 mhchia

cc @pipermerriam @carver @hwwhww @ChihChengLiang

mhchia avatar May 25 '19 13:05 mhchia

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.

ChihChengLiang avatar May 27 '19 10:05 ChihChengLiang

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.

carver avatar May 27 '19 21:05 carver

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

mhchia avatar May 28 '19 06:05 mhchia