Add PeerDAS KZG lib integration (construction & KZG verification) (#6212)

* Add peerdas KZG library and use it for data column construction and cell kzg verification (#5701, #5941, #6118, #6179)

Co-authored-by: kevaundray <kevtheappdev@gmail.com>

* Update `rust_eth_kzg` crate to published version.

* Update kzg metrics buckets.

* Merge branch 'unstable' into peerdas-kzg

* Update KZG version to fix windows mem allocation.

* Refactor common logic from build sidecar and reconstruction. Remove unnecessary `needless_lifetimes`.

Co-authored-by: realbigsean <sean@sigmaprime.io>

* Copy existing trusted setup into `PeerDASTrustedSetup` for consistency and maintain `--trusted-setup` functionality.

* Merge branch 'unstable' into peerdas-kzg

* Merge branch 'peerdas-kzg' of github.com:jimmygchen/lighthouse into peerdas-kzg

* Merge branch 'unstable' into peerdas-kzg

* Merge branch 'unstable' into peerdas-kzg

* Load PeerDAS KZG only if PeerDAS is enabled.
This commit is contained in:
Jimmy Chen
2024-08-13 10:16:17 +10:00
committed by GitHub
parent ff15c78ced
commit 6dc614fede
11 changed files with 627 additions and 284 deletions

93
Cargo.lock generated
View File

@@ -1029,6 +1029,22 @@ dependencies = [
"zeroize",
]
[[package]]
name = "blstrs"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a8a8ed6fefbeef4a8c7b460e4110e12c5e22a5b7cf32621aae6ad650c4dcf29"
dependencies = [
"blst",
"byte-slice-cast",
"ff 0.13.0",
"group 0.13.0",
"pairing",
"rand_core",
"serde",
"subtle",
]
[[package]]
name = "bollard-stubs"
version = "1.42.0-rc.3"
@@ -1514,6 +1530,52 @@ dependencies = [
"libc",
]
[[package]]
name = "crate_crypto_internal_eth_kzg_bls12_381"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8761b04feb6031ffaf93933c955a0c91a2f3ce15dcac6b9586d2487fe55abf0b"
dependencies = [
"blst",
"blstrs",
"ff 0.13.0",
"group 0.13.0",
"pairing",
"rayon",
]
[[package]]
name = "crate_crypto_internal_eth_kzg_erasure_codes"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eca410dff79524a2babe8a0d9ab5fdce21b16808f8189eb8b6da6159681f8de2"
dependencies = [
"crate_crypto_internal_eth_kzg_bls12_381",
"crate_crypto_internal_eth_kzg_polynomial",
]
[[package]]
name = "crate_crypto_internal_eth_kzg_polynomial"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68be1a5f16bc1c09254dec5209e22278d7d395284443576886a5890e7131234f"
dependencies = [
"crate_crypto_internal_eth_kzg_bls12_381",
]
[[package]]
name = "crate_crypto_kzg_multi_open_fk20"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "702fe5b687fe8c5a46851b8bc624ad49603a339dc93c920d4f7e61592c201ee8"
dependencies = [
"crate_crypto_internal_eth_kzg_bls12_381",
"crate_crypto_internal_eth_kzg_polynomial",
"hex",
"rayon",
"sha2 0.10.8",
]
[[package]]
name = "crc32fast"
version = "1.4.2"
@@ -3001,6 +3063,7 @@ version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449"
dependencies = [
"bitvec 1.0.1",
"rand_core",
"subtle",
]
@@ -3431,7 +3494,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63"
dependencies = [
"ff 0.13.0",
"rand",
"rand_core",
"rand_xorshift",
"subtle",
]
@@ -4342,13 +4407,17 @@ version = "0.1.0"
dependencies = [
"arbitrary",
"c-kzg",
"criterion",
"derivative",
"eth2_network_config",
"ethereum_hashing",
"ethereum_serde_utils",
"ethereum_ssz",
"ethereum_ssz_derive",
"hex",
"rust_eth_kzg",
"serde",
"serde_json",
"tree_hash",
]
@@ -5897,6 +5966,15 @@ dependencies = [
"sha2 0.10.8",
]
[[package]]
name = "pairing"
version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f"
dependencies = [
"group 0.13.0",
]
[[package]]
name = "parity-scale-codec"
version = "2.3.1"
@@ -7015,6 +7093,21 @@ dependencies = [
"smallvec",
]
[[package]]
name = "rust_eth_kzg"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "013a850c7e131a8f9651ffbb151dc33240234f21dd357b692bd5ff4cdc84bf9a"
dependencies = [
"crate_crypto_internal_eth_kzg_bls12_381",
"crate_crypto_internal_eth_kzg_erasure_codes",
"crate_crypto_kzg_multi_open_fk20",
"hex",
"rayon",
"serde",
"serde_json",
]
[[package]]
name = "rustc-demangle"
version = "0.1.24"