Releases: ethereum/c-kzg-4844
v2.0.1
Overview
This is a minor release which fixes package publishing issues for some bindings.
What's Changed
- Use latest cibuildwheel for Python release by @jtraglia in #498
- Further split up
verify_cell_kzg_proof_batch
by @asn-d6 in #499 - Document
compute_commitment_to_aggregated_interpolation_poly
by @asn-d6 in #500 - Fix node.js publishing by @matthewkeil in #502
- Add param linter script for C source by @jtraglia in #501
- Fix typo by @b-wagn in #503
- Add "/v2" to Go module name by @jtraglia in #504
- Update version to v2.0.1 and do cargo updates by @jtraglia in #505
Full Changelog: v2.0.0...v2.0.1
v2.0.0
This is a major release which adds support for EIP-7594 (PeerDAS).
Notable changes:
- The codebase implements and exposes all public methods of the EIP-7594 cryptography specification.
- The trusted setup format has been updated to include G1 points in monomial form.
- This version of c-kzg-4844 requires the new trusted setup file.
- The new trusted setup file can be used with previous versions of c-kzg-4844.
- Download the new file from
trusted_setup.txt
in this repository. - This should match
trusted_setup_4096.json
in the specifications.
- A new
precompute
parameter has been added to functions which load the trusted setup.- This configuration option is used to optimize FK20 proof computations.
- Higher values will compute FK20 proofs faster but use more memory.
- Compared to
precompute=0
,precompute=8
is ~75% faster but uses 96 MiB of memory.
- In the Nim bindings, the "zero overhead aliases" have been removed.
- There is only a single set of API functions exposed now.
- In the Rust bindings, the API functions have been moved to the
KzgSettings
structure.- For example, here is the before and after for
blob_to_kzg_commitment
:KZGCommitment::blob_to_kzg_commitment(&blob, &kzg_settings)
kzg_settings.blob_to_kzg_commitment(&blob)
- For example, here is the before and after for
What's Changed
- Add support for EIP-7594 by @jtraglia in #452
- Remove extraneous
memset
by @kevaundray in #463 - Fix
poly_lagrange_to_monomial
by @kevaundray in #462 - Add central Makefile which builds/tests everything by @jtraglia in #458
- Update recovery code to match specs by @kevaundray in #459
- Increase column limit to 100 for C code by @jtraglia in #456
- Move Rust bindings to
KzgSettings
by @jtraglia in #461 - Improve Python bindings build/install flow by @jtraglia in #460
- Add new Rust fuzzer by @jtraglia in #457
- Split core implementation into multiple files by @asn-d6 in #464
- Cleanup roots of unity in
KZGSettings
by @asn-d6 in #467 - Fix Makefile dependencies by @jtraglia in #469
- Move FFT functions to fft.{c,h} files by @jtraglia in #466
- Clarify
roots_stride
in FFT by @asn-d6 in #470 - Clarify scope of audit in README by @b-wagn in #472
- Split C code into more files by @jtraglia in #471
- Do not rely on
calloc
zeroing out allocations by @jtraglia in #474 - Fix profile & analyze by @jtraglia in #473
- Run
cargo update
for fuzzer by @jtraglia in #475 - Remove benchmarks for Rust & Java by @jtraglia in #476
- Remove unused blob variable in recovery by @jtraglia in #481
- Add new reference tests sanity check by @jtraglia in #479
- Enable more compiler warnings by @jtraglia in #480
- Simplify Nim bindings by @jtraglia in #482
- Use
TestCaseSource
in C# reference tests by @jtraglia in #486 - Enable
-Werror
for Windows & cleanup warnings by @jtraglia in #487 - Improve the build system by @jtraglia in #483
- Update deps in Go/Rust/Fuzz by @jtraglia in #488
- Improve docs of
KZGSettings
by @b-wagn in #492 - Convert some internal variables from
uint64_t
tosize_t
by @jtraglia in #490 - Replace
size_t
withuint64_t
by @jtraglia in #478 - Pre-compute root of unity in fr-form by @jtraglia in #491
- Make minor improvements of proof computation and recovery code by @asn-d6 in #493
- Abstract commitment to interpolation poly by @asn-d6 in #494
- Refactor
is_cell_used
array & usage by @jtraglia in #495 - Reformat some function param docs for consistency by @jtraglia in #496
- Update versions in preparation of v2.0.0 release by @jtraglia in #489
- Update links in README by @jtraglia in #497
New Contributors
- @kevaundray made their first contribution in #463
Full Changelog: v1.0.3...v2.0.0
v1.0.3
Overview
This is a minor release which includes various improvements to the bindings and upgrades the blst library.
This is expected to be the last v1 release. We plan to make a v2 release with EIP-7594 support soon-ish.
What's Changed
- feat(rust): Add ethereum kzg settings by @rakita in #443
- Upgrade blst to v0.3.12 by @jtraglia in #445
- fix: add crate description to Cargo.toml by @Rjected in #429
- nim-bindings: Lift restriction of yaml test on Nim v2.x by @jangko in #431
- nim-bindings: Fix GCC-14 [-Wincompatible-pointer-types] issue by @jangko in #430
- use stand-alone
results
library by @arnetheduck in #432 - [nim] Add completeStruct pragma which workarounds Nim compiler's issue with C codegen. by @cheatfate in #437
- fix(rust): define NDEBUG when debug assertions are off by @DaniPopes in #450
- Add EIP-7594 reference tests by @jtraglia in #453
- Update versions in preparation for release 1.0.3 by @asn-d6 in #455
New Contributors
- @arnetheduck made their first contribution in #432
- @cheatfate made their first contribution in #437
Full Changelog: v1.0.2...v1.0.3
v1.0.2
Overview
This is a minor release which includes various improvements to the bindings.
What's Changed
- Adding source distribution by @step21 in #415
- Fix the Python release CI action by @jtraglia in #417
- When building Python bindings, only build blst by @jtraglia in #418
- In Python setup file, change directory instead of using absolute paths by @jtraglia in #419
- Fix broken nodejs/csharp CI tests by @jtraglia in #420
- feat: bundle and auto-load trusted setup by @matthewkeil in #422
- feat: turn on exceptions by @matthewkeil in #423
- fix: simplify how default setup is found by @matthewkeil in #424
- nim-bindings fix: prevent Nim GC call free_trusted_setup if it already called manually by @jangko in #426
- Update versions in preparation for release by @jtraglia in #428
New Contributors
Full Changelog: v1.0.1...v1.0.2
v1.0.1
Overview
This minor release improves the Rust bindings and fixes a path issue in the Nim bindings.
What's Changed
- Fixed NixOs vendoring issue by @akorchyn in #409
- feat: impl AsRef for Bytes32 and Bytes48 by @Rjected in #411
- use strutils.escape to handle special characters in KZG directory paths in Nim bindings by @tersec in #412
New Contributors
Full Changelog: v1.0.0...v1.0.1
v1.0.0
Overview
This major release introduces the following improvements to the bindings:
- The Go bindings now pass blobs by reference rather than by value.
- This improves heap hygiene by reducing allocations when passing blobs.
- This change is not backward-compatible.
- Ergonomics of the Rust bindings have been improved for better usability.
- The Python bindings' build system has been refined.
This is the last scheduled release before Dencun hits mainnet tomorrow. Godspeed! 🎉
Thank you to everyone that made this happen! 🙏
What's Changed
- Upload python wheels on Linux runner by @jtraglia in #404
- Add workflow_dispatch to python release action by @jtraglia in #405
- Add more information in setuptools.setup() by @jtraglia in #406
- go-bindings: pass large arrays by ref instead of value by @holiman in #393
- feat: derive hash for generated types by @mattsse in #407
- Update versions in preparation for release by @jtraglia in #408
New Contributors
Full Changelog: v0.4.3...v1.0.0
v0.4.3
Overview
This minor release improves the Python bindings and streamlines the Python release process, while also incorporating minor improvements and bug fixes across other bindings.
What's Changed
- fix: typos by @omahs in #396
- Fix typos by @rex4539 in #397
- python: check file pointer when loading trusted setup by @jtraglia in #401
- Rust: Always close fd on load_trusted_setup_file_inner() by @asn-d6 in #402
- Add workflow to publish python package by @jtraglia in #395
- Update versions in preparation of release by @jtraglia in #403
New Contributors
Full Changelog: v0.4.2...v0.4.3
v0.4.2
v0.4.1
Overview
This is a minor release with various improvements to the bindings.
What's Changed
- C# Ckzg.Bindings to become 0.4.0 by @flcl42 in #378
- chore: npm publish 2.1.2 by @g11tech in #379
- ci: ensure setuptools are installed by @mattsse in #381
- feat: add missing new functions for byte types by @mattsse in #380
- Fixed x86_64-pc-windows-gcc build for rust bindings by @kaliubuntu0206 in #384
- chore: bump bindgen by @Rjected in #385
- feat: enable blst portable by default by @Rjected in #389
- feat: add more targets to ci by @Rjected in #390
- Make Rust
bindgen
build dependency optional by @DaniPopes in #382
New Contributors
- @kaliubuntu0206 made their first contribution in #384
Full Changelog: v0.4.0...v0.4.1
v0.4.0
Overview
This release incorporates the official trusted setup and removes the distinction between mainnet and minimal builds (see #377). The release also features several general improvements for the bindings.
What's Changed
- Use official trusted setup by @jtraglia in #377
- Use blst's generator functions by @jtraglia in #340
- Remove go bindings example by @jtraglia in #341
- Add -fPIC to csharp unix build by @jtraglia in #344
- Make C# package versions match library versions by @flcl42 in #349
- Remove optional dependency with issues; update versions by @flcl42 in #350
- Use blst crate for Rust blst dep by @michaelsproul in #351
- feat: add serde impls to Blob and Bytes48 by @Rjected in #342
- Set /std:c11 ccflag for Windows in Rust bindings by @jtraglia in #354
- Change the rust interface to take references by @pawanjay176 in #356
- Support Rust
no_std
environments by @DaniPopes in #347 - chore: bump bindgen version by @rakita in #355
- chore: make num g2 points pub by @mattsse in #360
- Added AsRef<[u8]> method for Blob by @ethDreamer in #361
- Improve ckzg native library search path + small improvements by @flcl42 in #372
- Update comment to say 7 is the primitive root by @jtraglia in #374
- Enable pedantic warnings by @jtraglia in #371
- Fix edge case in expand_root_of_unity by @jtraglia in #375
- Add script for converting trusted setups by @jtraglia in #359
New Contributors
- @DaniPopes made their first contribution in #347
- @rakita made their first contribution in #355
- @mattsse made their first contribution in #360
- @ethDreamer made their first contribution in #361
Full Changelog: v0.3.1...v0.3.2