mirror of
https://github.com/status-im/c-kzg-4844.git
synced 2025-02-03 13:53:52 +00:00
Gottfried Herold
b4eb8d003e
Documentation updates (#208)
* Documentation update * Documentation for division. Note that the doc says that the behaviour for a/0 is unspecified. Feel free to change. * Add some Documentation. This fixes item #3 in https://hackmd.io/@6iQDuIePQjyYBqDChYw_jg/ByXAsi21h * Moved documentation remark for doxygen @remark to in-code remark. The remark is not useful for API-documentation (it refers to a macro that is not part of the API). * More verbose comment for bit_reversal_permutation. * doxygen comment parameter name did not match variable name. Fix this. * Remove parameter n from doxygen comment of compute_challenge, as there is no such argument. This fixes #4 in https://hackmd.io/@6iQDuIePQjyYBqDChYw_jg/ByXAsi21h * In compute_kzg_proof_impl, document the role of the m variable that is used to indicate whether the evaluation point is one of the interpolation points. * Run `make format` * Improve multiline comments from `make format` in middle of the code --------- Co-authored-by: George Kadianakis <desnacked@riseup.net>
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
Description
Languages
Nim
42.9%
C
26.4%
Rust
7.2%
Java
6.1%
C#
3.8%
Other
13.6%