c-kzg-4844/README.md

1.6 KiB

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