6bac4e1b6c
* Run C tests on all platforms * Don't install llvm on mac & add windows define * Update blst settings for windows * Install msvc on windows * Don't specify blst as a library * Try including -lmingw32 * Clean up makefile & test setting target * Try using gcc for windows * Don't treat warnings as errors on windows * Test upping stack size * Ignore some tasks on windows * Clean up some things * Fix indentations * Delete extra blank line * More organization * Remove windows check around sanitize * Move XCRUN initialization back to top * Move extra sanitize cflags out like the others |
||
---|---|---|
.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
Prerequisites
The following must be installed:
git
make
clang
Build & test
To build c_kzg_4844.o
, the object file that the bindings use, run make
in
the src
directory. This will ensure the blst
submodule has been initialized,
build blst
, build c_kzg_4844
, and run the tests. From the project root, run
this:
cd src && make