Justin Traglia 6d21a0ea98
Speed up loading trusted setup (#299)
* Replace g1 points with g1 lagrange points

* Swap out validate_kzg_g1 with blst funcs

* Update minimal preset too

* Fix java & nodejs bindings

* Put variables in smaller scope

* Update some comments

* Remove FFTSettings (#2)

* Fix issue when expanding roots of unity

* Fix formatting

* Revert back to using intermediate array

* Add missing c_kzg_free

* Fix some nits

* Replace free_kzg_settings with free_trusted_setup

* Add parens to NUM_ELEMENTS

Co-authored-by: George Kadianakis <desnacked@riseup.net>

* Move memcpy to the end

* Revert "Move memcpy to the end"

This reverts commit 5331c7feadc92e4b5dd5d4e7512e4be563d7f386.

* Add comment about free_trusted_setup

* Move check before alloc

* Add remark

* Delete unnecessary blank line

* Fix asn's nits

* Update comment for roots_of_unity in header

Co-authored-by: Gottfried Herold <GottfriedHerold@users.noreply.github.com>

* Fix formatting

* Update comment about max_scale

Co-authored-by: Gottfried Herold <GottfriedHerold@users.noreply.github.com>

---------

Co-authored-by: Suphanat Chunhapanya <haxx.pop@gmail.com>
Co-authored-by: George Kadianakis <desnacked@riseup.net>
Co-authored-by: Gottfried Herold <GottfriedHerold@users.noreply.github.com>
2023-05-12 16:44:37 +03:00
..
2023-05-12 16:44:37 +03:00
2022-12-06 13:14:37 +00:00

Java binding

Build shared library

Prerequisites

  • Build blst by running make blst in the library source directory.
  • Set JAVA_HOME environment variable to a JDK with an include folder containing a jni.h file.

Build

make build

This will install the shared library in src/main/resources/ethereum/ckzg4844/lib with a folder structure and name according to the preset selected (mainnet or minimal) and your OS.

All variables which could be passed to the make command and the defaults can be found in the Makefile.

Test

make test

Benchmark

JMH is used for benchmarking. See CKZG4844JNIBenchmark.java for more information.

make benchmark

Library

The library which uses this binding and publishes a package to a public maven repo is jc-kzg-4844.