1.3 KiB
1.3 KiB
c-kzg - work in progress
The very beginnings of a simple implementation of KZG commitments in C, using the Blst library from Supranational for field and curve operations.
Initially, at least, this largely follows the go-kzg implementation.
Done so far:
- Rough and ready FFT and inverse FFT over the finite field.
- Ditto for FFTs over the G1 group
Installation
Build the Blst library following the instructions there. Then,
- Copy the resulting
libblst.a
file into thelib/
directory here. - From Blst's
bindings/
directory copyblst.h
andblst_aux.h
toinc/
That is,
cp ../blst/libblast.a lib/
cp ../blst/bindings/*.h inc/
There's no library to make here yet, but you can run the tests.
Run tests
cd src
make test
Thanks to Acutest for the unit test harness, which is used here under the MIT licence.
Prerequisites
- Blst library (see above)
clang
compiler. I'm using Clang 10.0.0. I'll likely addgcc
options in future.- I'm developing on Ubuntu 20.04. Will check portability later.