c-kzg-4844

A minimal implementation of the Polynomial Commitments API for EIP-4844 and EIP-7594, written in C.

APACHE-2.0 License

Downloads
1.6M
Stars
116
Committers
44

Bot releases are hidden (Show)

c-kzg-4844 - v2.0.1

Published by jtraglia about 2 months ago

Overview

This is a minor release which fixes package publishing issues for some bindings.

What's Changed

Full Changelog: https://github.com/ethereum/c-kzg-4844/compare/v2.0.0...v2.0.1

c-kzg-4844 - v2.0.0 Latest Release

Published by jtraglia 2 months ago

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)

What's Changed

New Contributors

Full Changelog: https://github.com/ethereum/c-kzg-4844/compare/v1.0.3...v2.0.0

c-kzg-4844 - v1.0.3

Published by asn-d6 3 months ago

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

New Contributors

Full Changelog: https://github.com/ethereum/c-kzg-4844/compare/v1.0.2...v1.0.3

c-kzg-4844 - v1.0.2

Published by jtraglia 6 months ago

Overview

This is a minor release which includes various improvements to the bindings.

What's Changed

New Contributors

Full Changelog: https://github.com/ethereum/c-kzg-4844/compare/v1.0.1...v1.0.2

c-kzg-4844 - v1.0.1

Published by jtraglia 7 months ago

Overview

This minor release improves the Rust bindings and fixes a path issue in the Nim bindings.

What's Changed

New Contributors

Full Changelog: https://github.com/ethereum/c-kzg-4844/compare/v1.0.0...v1.0.1

c-kzg-4844 - v1.0.0

Published by asn-d6 7 months ago

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

New Contributors

Full Changelog: https://github.com/ethereum/c-kzg-4844/compare/v0.4.3...v1.0.0

c-kzg-4844 - v0.4.3

Published by asn-d6 8 months ago

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

New Contributors

Full Changelog: https://github.com/ethereum/c-kzg-4844/compare/v0.4.2...v0.4.3

c-kzg-4844 - v0.4.2

Published by asn-d6 8 months ago

Overview

This minor release activates the portable feature of blst by default within the Rust bindings.

What's Changed

Full Changelog: https://github.com/ethereum/c-kzg-4844/compare/v0.4.1...v0.4.2

c-kzg-4844 - v0.4.1

Published by jtraglia 9 months ago

Overview

This is a minor release with various improvements to the bindings.

What's Changed

New Contributors

Full Changelog: https://github.com/ethereum/c-kzg-4844/compare/v0.4.0...v0.4.1

c-kzg-4844 - v0.4.0

Published by jtraglia about 1 year ago

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

New Contributors

Full Changelog: https://github.com/ethereum/c-kzg-4844/compare/v0.3.1...v0.3.2

c-kzg-4844 - v0.3.1

Published by asn-d6 about 1 year ago

Overview

This release focuses on quality of life improvements across the bindings. Notably:

  • The blst library is now built with the portable flag (which will automatically use optimized code paths), ensuring optimal performance on supportive platforms and stability on others.
  • Rust projects can now link two copies of c-kzg-4844, allowing for runtime switching between mainnet and minimal configurations.

What's Changed

New Contributors

Full Changelog: https://github.com/ethereum/c-kzg-4844/compare/v0.3.0...v0.3.1

c-kzg-4844 - v0.3.0

Published by jtraglia over 1 year ago

Overview

Most notably, this release switches to big-endian and fixes findings from the audit.

What's Changed

Full Changelog: https://github.com/ethereum/c-kzg-4844/compare/v0.2.0...v0.3.0

c-kzg-4844 - v0.2.0

Published by jtraglia over 1 year ago

Overview

This release fixes some minor issues and makes loading the trusted setup significantly faster.

⚠️ Important ⚠️

The trusted setup has changed; G1 points must now be in Lagrange form.

What's Changed

New Contributors

Full Changelog: https://github.com/ethereum/c-kzg-4844/compare/v0.1.0...v0.2.0

c-kzg-4844 - v0.1.0

Published by jtraglia over 1 year ago

Release candidate for audit.