Releases: ethereum/c-kzg-4844
v2.1.7
Overview
This is a minor release which contains an optimization in the rust bindings.
What's Changed
- Drop support for macOS x86 in python package workflow by @jtraglia in #635
- Bump the actions group with 5 updates by @dependabot[bot] in #636
- Use std OnceLock to avoid wasted CPU time by @DaniPopes in #637
- Bump version to v2.1.7 by @jtraglia in #638
Full Changelog: v2.1.6...v2.1.7
v2.1.6
Overview
This is a minor release which improves the performance of compute_cells_and_kzg_proofs and recover_cells_and_kzg_proofs by ~10%, and improves portability across compilers and operating systems (notably FreeBSD).
What's Changed
- Add skip-existing option to Python release workflow by @jtraglia in #614
- Rerun formatter with clang 20 updates by @jtraglia in #615
- Use latest python version in CI actions by @jtraglia in #616
- Install setuptools in source distribution step by @jtraglia in #617
- Update trusted setup URL to use master branch by @jtraglia in #623
- Benchmark measuring proof verification with different numbers of cells by @kasey in #624
- Batch convert commitments/proofs to bytes by @jtraglia in #626
- Add missing include for assert by @jtraglia in #627
- Prescale coefficients to avoid expensive scalar multiplications by @jtraglia in #628
- Simplify missing cell handling in recovery by @jtraglia in #629
- Require gmake in python bindings build for FreeBSD by @jtraglia in #630
- Update all dependencies by @jtraglia in #631
- Bump versions to v2.1.6 by @jtraglia in #632
- Allow compiler overrides & only use some flags for clang by @jtraglia in #633
- Bump clang-format to v21 by @jtraglia in #634
New Contributors
Full Changelog: v2.1.5...v2.1.6
v2.1.5
Overview
This is a minor release which contains an important bug fix. The computed challenge for verify_cell_kzg_proof_batch did not take into account all deduplicated commitments, resulting in a potential Weak Fiat-Shamir vulnerability. See #607 for more details.
What's Changed
- Fix rust CI checks by @jtraglia in #608
- Create cell verification challenge with deduplicated commitments by @jtraglia in #607
- Bump versions to v2.1.5 by @jtraglia in #609
Full Changelog: v2.1.4...v2.1.5
v2.1.4
Overview
Some Ethereum clients have (rightfully) expressed concerns with using an unreleased version of blst. To address these concerns, we reverted blst to its latest stable version and added back point-at-infinity filtering in c-kzg-4844.
What's Changed
- Add back point-at-infinity filtering in
g1_lincomb_fastby @jtraglia in #603 - Revert blst to v0.3.15 by @jtraglia in #604
- Document
g1_lincomb_fastwhen called asmsm([])by @asn-d6 in #606 - Bump version to v2.1.4 by @jtraglia in #605
Full Changelog: v2.1.3...v2.1.4
v2.1.3
Overview
This is a minor release that fixes a bug which could cause verify_cell_kzg_proof_batch results to be incorrect. In the previous release we simplified g1_lincomb_fast by removing point-at-infinity filtering because blst added this filtering. Unfortunately, there was a path in which the filtering did not happen. We have updated blst to the latest commit which includes a fix for this.
What's Changed
- Bump the actions group with 5 updates by @dependabot[bot] in #597
- Add new zkSecurity audit report by @jtraglia in #599
- Update blst to fix point-at-infinity issue in
g1_lincomb_fastby @jtraglia in #600 - Remove tunable threshold in
g1_lincomb_fastby @jtraglia in #601 - Bump version to v2.1.3 by @jtraglia in #602
Full Changelog: v2.1.2...v2.1.3
v2.1.2
Overview
This is a minor release that fixes audit findings (ZKSecurity and internal), adds RecoverCells() to Go bindings, simplifies code, and improves test coverage.
What's Changed
- chore(deps): updating GitHub Actions to pinned hashes by @jtraglia in #557
- Bump the actions group with 7 updates by @dependabot[bot] in #558
- Update clang-format to v20 by @jtraglia in #559
- Rename namespace so it's different from main class, and we don't need… by @flcl42 in #562
- Use correct constant in coeffs allocation by @jtraglia in #563
- Move FIELD_ELEMENTS_PER_EXT_BLOB to blob.h by @jtraglia in #566
- Split settings initialization into a new function by @jtraglia in #570
- Bump the actions group with 5 updates by @dependabot[bot] in #571
- Remove precomputed CELL_INDICES_RBL table by @jtraglia in #564
- Update tests to reflect refactored generators by @jtraglia in #572
- Allow n<=1 in bit_reversal_permutation by @jtraglia in #565
- fixed misleading error message copy-pastes by @felix314159 in #574
- Update fk20.c by @khovratovich in #573
- Bump the actions group with 2 updates by @dependabot[bot] in #576
- Update fuzzers by @jtraglia in #577
- chore: fix g1 monomial doc in rust bindings by @Rjected in #578
- Update to blst v0.3.15 by @jtraglia in #579
- Update reference tests by @jtraglia in #582
- Bump the actions group with 2 updates by @dependabot[bot] in #583
- Check if blob is nil in ComputeCells/ComputeCellsAndKZGProofs by @jtraglia in #590
- Remove point-at-infinity filter in g1_lincomb_fast by @jtraglia in #588
- Bump erlef/setup-beam from 1.20.1 to 1.20.4 in the actions group by @dependabot[bot] in #591
- Prevent cached settings footgun in rust bindings by @jtraglia in #585
- Fix findings from zkSec audit by @jtraglia in #595
- Ensure cell indices are sorted in
recover_cells_and_kzg_proofsby @jtraglia in #594 - Add compute challenge tests by @jtraglia in #593
- Add new tests from latest release by @jtraglia in #598
- add benchmark for recovering cells without computing proofs by @cskiraly in #596
New Contributors
- @dependabot[bot] made their first contribution in #558
- @felix314159 made their first contribution in #574
- @khovratovich made their first contribution in #573
- @cskiraly made their first contribution in #596
Full Changelog: v2.1.1...v2.1.2
v2.1.1
Overview
This is a minor release which includes various improvements to the bindings.
What's Changed
- Fix python release publishing by @jtraglia in #547
- Call
test_compute_cellsin python bindings by @jtraglia in #548 - Fix elixir default path by @BlazeWasHere in #550
- Re-enable spec test comparison check by @jtraglia in #549
- chore(rust): Cleanup fmt/clippy and ci by @rakita in #551
- feat: add arbitrary feature by @Rjected in #553
- Bump versions to v2.1.1 by @jtraglia in #554
- Update github checkout actions by @PixelPil0t1 in #552
New Contributors
- @PixelPil0t1 made their first contribution in #552
Full Changelog: v2.1.0...v2.1.1
v2.1.0
Overview
This is a minor release which adds a compute_cells method to all bindings.
What's Changed
- Fix profiling instructions for Linux by @agnxsh in #506
- Improve readme structure and fix dead link by @b-wagn in #507
- Fix findings from Dmitry's review by @jtraglia in #508
- Trivial improvements to eip7594 bindings by @asn-d6 in #513
- Fix inconsistent parameter doc in blob.c by @b-wagn in #514
- Add LOG_EXPANSION_FACTOR constant by @b-wagn in #515
- Delete trailing whitespace by @jtraglia in #516
- Update README.md by @flechemano in #517
- chore: fix typo in comment by @wangjingcun in #518
- chore: fix 404 status URL by @wangjingcun in #520
- Fix grammatical and spelling errors in documentation by @donatik27 in #521
- Pull in latest reference tests by @jtraglia in #522
- Update github actions versions due to deprecation by @parithosh in #525
- Fix NuGet packaging by @rubo in #529
- feat: add windows-gnu to rust tests by @Rjected in #531
- Add new VerifyCellKZGProofBatchParallel benchmark by @jtraglia in #532
- Upgrade blst to v0.3.14 by @jtraglia in #533
- Add back
compute_cellsfunction by @jtraglia in #534 - Make some small updates to the readme by @jtraglia in #538
- fix: fix issue with find_space_after returning None by @indmind in #537
- Allocate polynomials on heap instead of stack by @jtraglia in #539
- Add elixir bindings by @BlazeWasHere in #535
- Add
compute_cellsfuzzing support by @jtraglia in #541 - Update dependencies for all bindings by @jtraglia in #542
- Add files for oss-fuzz by @jtraglia in #543
- Make fixes for oss-fuzz by @jtraglia in #544
- Add section on precompute values to the readme by @jtraglia in #545
- Bump versions for v2.1.0 by @jtraglia in #546
New Contributors
- @flechemano made their first contribution in #517
- @wangjingcun made their first contribution in #518
- @donatik27 made their first contribution in #521
- @parithosh made their first contribution in #525
- @indmind made their first contribution in #537
- @BlazeWasHere made their first contribution in #535
Full Changelog: v2.0.1...v2.1.0
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_batchby @asn-d6 in #499 - Document
compute_commitment_to_aggregated_interpolation_polyby @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.txtin this repository. - This should match
trusted_setup_4096.jsonin the specifications.
- A new
precomputeparameter 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=8is ~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
KzgSettingsstructure.- 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
memsetby @kevaundray in #463 - Fix
poly_lagrange_to_monomialby @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
KzgSettingsby @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
KZGSettingsby @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_stridein 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
calloczeroing out allocations by @jtraglia in #474 - Fix profile & analyze by @jtraglia in #473
- Run
cargo updatefor 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
TestCaseSourcein C# reference tests by @jtraglia in #486 - Enable
-Werrorfor 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
KZGSettingsby @b-wagn in #492 - Convert some internal variables from
uint64_ttosize_tby @jtraglia in #490 - Replace
size_twithuint64_tby @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_usedarray & 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