Collabration on libsecp256k1

2020-01-02T01:17:43.000Z Honest Cash

Goal

I maintain the libsecp256k1, Electron Cash and Electrum packages for Fedora Linux.

I would like to make it easier to maintain a common libsecp256k on Fedora and software for Fedora that rely on that software as a library.

Bitcoin-ABC

Own fork maintained along the main software.
https://github.com/Bitcoin-ABC/bitcoin-abc/tree/master/src/secp256k1

Bitcoin Unlimited

Own fork maintained along the main software.
https://github.com/BitcoinUnlimited/BitcoinUnlimited/tree/release/src/secp256k1

Electron Cash

Native in Python + sub-module of a fork from Bitcoin-ABC.
https://github.com/Electron-Cash/secp256k1

Bitcoin Verde

Native in Java + an old fork from Bitcoin-core.
https://github.com/SoftwareVerde/bitcoin-verde/tree/development/jni/secp256k1

bchd

Only native in Go/built-in.

bip-schnorr

Used by bitbox. Only native in Javascript.

Bitcoin-core

The schnorr pull request have been open since September 2018. A collabration with Bitcoin-core would slow everything down.
https://github.com/bitcoin-core/secp256k1/pull/558

Feedback

Please add a comment if there are errors in the overview or if there are other implementations that rely on libsecp256k1

Responses


RE: Collabration on libsecp256k1

by @tom

Bitcoin Core has for years shipped this module without making a release.

The biggest issue with all these forks is that they just copy some stuff from each other out of sheer need because there is no upstream making releases of this component. Core and ABC are both guilty of this.

The ideal solution is where someone can start a new git repo, with a useful name (better than the unpronounceable one we have now should be easy) and then make an actual release.
Then that release is packaged on all major distros and projects can drop the copy in their own tree and just use the packaged one instead.


RE: RE: Collabration on libsecp256k1

by @jonny

I totally agree, Amaury Séchet started playing with a git repo today. Would love if he continue to maintain the repo and make releases.

https://github.com/Bitcoin-ABC/secp256k1


RE: Collabration on libsecp256k1

by @tcrypt

Since you included bchd I'll mention that its upstream project btcd, and another fork of btcd by the same developers called dcrd all use forks maintained in our main softwares and all have diverged. I'm not sure there's a reason they need to, it would require more research.

I'm not sure how us btcd-based clients fit in with your Fedora management but figured I'll mention it for completeness.

bchd: https://github.com/gcash/bchd/tree/bf5aa7ab071f2f6a0182d86ff86b394d4164c3bf/bchec

btcd: https://github.com/btcsuite/btcd/tree/f3ec13030e4e828869954472cbc51ac36bee5c1d/btcec

dcrd: https://github.com/decred/dcrd/tree/b6d8ccdedf78536e1d085b725388def2ba76f6b8/dcrec/secp256k1


RE: RE: Collabration on libsecp256k1

by @jonny

Thanks, I would like to include a full node implementation for Fedora. I will probably spend time on the implementation that is the easiest to pack and maintain.