Skip to content

Commit

Permalink
release poseidon2 crate (#736)
Browse files Browse the repository at this point in the history
  • Loading branch information
alxiong authored Jan 13, 2025
1 parent 8f3dce0 commit b7c31ac
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 22 deletions.
27 changes: 14 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,21 +18,22 @@ For general discussions on Jellyfish PLONK, please join our [Discord channel](ht
- ['jf-utils'](utilities): utilities and helper functions.

### Primitives
- ['jf-prf'](prf): trait definitions for pseudorandom function (PRF).
- ['jf-crhf'](crhf): trait definitions for collision-resistant hash function (CRHF).
- ['jf-commitment'](commitment): trait definitions for cryptographic commitment scheme.
- ['jf-rescue'](rescue): Rescue hash function, and its subsequent PRF, CRHF, commitment scheme implementations.
- ['jf-elgamal'](elgamal): a Rescue-based ElGamal encryption scheme implementation.
- ['jf-signature'](signature): signature scheme trait definition, and BLS/Schnorr signature scheme implementations.
- ['jf-vrf'](vrf): verifiable random function trait definition and BLS-based implementation.
- ['jf-aead'](aead): authenticated encryption with associated data (AEAD) implementation.
- ['jf-merkle-tree'](merkle_tree): various (vanilla, sparse, namespaced) Merkle tree trait definitions and implementations.
- ['jf-pcs'](pcs): polynomial commitment scheme (PCS) trait definitions and univariate/multilinear KZG-PCS implementations.
- ['jf-vid'](vid): verifiable information dispersal (VID) trait definition and implementation.
- [`jf-prf`](prf): trait definitions for pseudorandom function (PRF).
- [`jf-crhf`](crhf): trait definitions for collision-resistant hash function (CRHF).
- [`jf-commitment`](commitment): trait definitions for cryptographic commitment scheme.
- [`jf-rescue`](rescue): Rescue hash function, and its subsequent PRF, CRHF, commitment scheme implementations.
- [`jf-elgamal`](elgamal): a Rescue-based ElGamal encryption scheme implementation.
- [`jf-signature`](signature): signature scheme trait definition, and BLS/Schnorr signature scheme implementations.
- [`jf-vrf`](vrf): verifiable random function trait definition and BLS-based implementation.
- [`jf-aead`](aead): authenticated encryption with associated data (AEAD) implementation.
- [`jf-merkle-tree`](merkle_tree): various (vanilla, sparse, namespaced) Merkle tree trait definitions and implementations.
- [`jf-pcs`](pcs): polynomial commitment scheme (PCS) trait definitions and univariate/multilinear KZG-PCS implementations.
- [`jf-vid`](vid): verifiable information dispersal (VID) trait definition and implementation.
- [`jf-poseidon2`](poseidon2): Poseidon2 permutation, and Sponge, CRHF, derived from this permutation.

### Plonk
- ['jf-relation'](relation): Jellyfish constraint system for PLONK.
- ['jf-plonk'](plonk): KZG-PCS based TurboPlonk and UltraPlonk implementations.
- [`jf-relation`](relation): Jellyfish constraint system for PLONK.
- [`jf-plonk`](plonk): KZG-PCS based TurboPlonk and UltraPlonk implementations.

## Development environment setup

Expand Down
5 changes: 2 additions & 3 deletions merkle_tree/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,14 @@ displaydoc = { workspace = true }
hashbrown = { workspace = true }
hex = "0.4.3"
itertools = { workspace = true, features = ["use_alloc"] }
jf-crhf = { path = "../crhf" }
jf-crhf = { git = "https://github.com/EspressoSystems/jellyfish", tag = "jf-crhf-v0.1.1" }
# TODO: switch to this once jf-poseidon2 cut a release
# jf-poseidon2 = { version = "0.1.0", git = "https://github.com/EspressoSystems/jellyfish" }
jf-poseidon2 = { path = "../poseidon2" }
jf-relation = { version = "0.4.4", git = "https://github.com/EspressoSystems/jellyfish", tag = "0.4.5", optional = true, default-features = false }
jf-rescue = { version = "0.1.0", git = "https://github.com/EspressoSystems/jellyfish", tag = "0.4.5", default-features = false }
jf-utils = { version = "0.4.4", git = "https://github.com/EspressoSystems/jellyfish", tag = "0.4.5", default-features = false }
# TODO: fix this once upstream release a new tag
nimue = { git = "https://github.com/alxiong/nimue", branch = "ax/0.1.1", features = ["ark"] }
nimue = { version = "=0.1.1", features = ["ark"] }
num-bigint = { workspace = true }
num-traits = { version = "0.2.15", default-features = false }
serde = { workspace = true }
Expand Down
5 changes: 4 additions & 1 deletion poseidon2/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## 0.1.0

- Initial release with Poseidon2 Permutation (w/ BLS12-381, BN254 instances)
- Initial release with Poseidon2 and its derived primitives (w/ BLS12-381, BN254 instances)
- [#708](https://github.com/EspressoSystems/jellyfish/pull/708): P2 permutation and reference parameters
- [#713](https://github.com/EspressoSystems/jellyfish/pull/713): P2 sponge function
- [#716](https://github.com/EspressoSystems/jellyfish/pull/716): P2-based CRHF and `DigestAlgorithm` implementation
7 changes: 2 additions & 5 deletions poseidon2/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,9 @@ ark-ff = { workspace = true }
ark-std = { workspace = true }
displaydoc = { workspace = true }
hex = "0.4.3"
# TODO: need to update after jf-crhf have a new tag
# jf-crhf = { version = "0.1.0", git = "https://github.com/EspressoSystems/jellyfish", tag = "0.4.5", default-features = false }
jf-crhf = { path = "../crhf" }
jf-crhf = { git = "https://github.com/EspressoSystems/jellyfish", tag = "jf-crhf-v0.1.1" }
lazy_static = "1.5.0"
# TODO: fix this once upstream release a new tag
nimue = { git = "https://github.com/alxiong/nimue", branch = "ax/0.1.1", features = ["ark"] }
nimue = { version = "=0.1.1", features = ["ark"] }
zeroize = { workspace = true }

[dev-dependencies]
Expand Down

0 comments on commit b7c31ac

Please sign in to comment.