Minimal 4844 version of c-kzg
Go to file
Justin Traglia c5920c4ef4
Multi-platform nodejs bindings (#242)
2023-03-28 11:01:07 -05:00
.github/workflows Multi-platform nodejs bindings (#242) 2023-03-28 11:01:07 -05:00
bindings Multi-platform nodejs bindings (#242) 2023-03-28 11:01:07 -05:00
blst@ca03e11a3f Upgrade blst & remove sha256 patch (#85) 2023-01-25 20:07:15 +00:00
fuzz Add coverage-guided C fuzzers (#203) 2023-03-13 12:45:02 +02:00
inc Small cleanups (#202) 2023-03-10 11:32:13 -06:00
lib Insert lib/ directory and update Readme 2021-02-02 11:36:36 +00:00
src Multi-platform nodejs bindings (#242) 2023-03-28 11:01:07 -05:00
tests Add invalid length tests (#186) 2023-03-09 12:44:31 +02:00
.gitignore Small cleanups (#202) 2023-03-10 11:32:13 -06:00
.gitmodules Upgrade blst & remove sha256 patch (#85) 2023-01-25 20:07:15 +00:00
LICENSE Initial commit 2021-02-01 20:15:45 +00:00
README.md `make` inits submodule & builds blst (#250) 2023-03-28 22:26:51 +09:00
go.mod Run Go tests with portable blst (#237) 2023-03-22 12:27:10 +02:00
go.sum Move go.mod & go.sum to repo root (#88) 2023-01-26 22:42:56 +00:00
kzg4844.nimble Add support for nimble package (#232) 2023-03-24 08:02:38 -05:00

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