8de0aa54ce
* Intentionally fail to compile with a FIELD_ELEMENTS_PER_BLOB value that is not a power of 2. We do not want to support or maintain this case, so let us be explicit about it. * Update src/c_kzg_4844.h Co-authored-by: Justin Traglia <95511699+jtraglia@users.noreply.github.com> * Update src/c_kzg_4844.h Co-authored-by: Justin Traglia <95511699+jtraglia@users.noreply.github.com> --------- Co-authored-by: George Kadianakis <desnacked@riseup.net> Co-authored-by: Justin Traglia <95511699+jtraglia@users.noreply.github.com> |
||
---|---|---|
.github/workflows | ||
bindings | ||
blst@ca03e11a3f | ||
fuzz | ||
inc | ||
lib | ||
src | ||
tests | ||
.gitignore | ||
.gitmodules | ||
LICENSE | ||
README.md | ||
go.mod | ||
go.sum | ||
kzg4844.nimble |
README.md
C-KZG-4844
This is a minimal library for EIP-4844 that implements the Polynomial Commitments API. It was originally a stripped-down copy of C-KZG, but it has been heavily modified since then.
Interface functions
There are functions for KZG operations:
blob_to_kzg_commitment
compute_kzg_proof
compute_blob_kzg_proof
verify_kzg_proof
verify_blob_kzg_proof
verify_blob_kzg_proof_batch
There are functions for loading/freeing the trusted setup:
load_trusted_setup
load_trusted_setup_file
free_trusted_setup
Bindings
There are bindings for the following languages:
Language | Link |
---|---|
C# | README |
Go | README |
Java | README |
Nim | README |
Node.js | README |
Python | README |
Rust | README |
Installation
Initialize the blst submodule:
git submodule update --init
Build the blst library:
cd src
make blst
Build/test the C-KZG-4844 library:
cd src
make