Skip to content

Commit 7c21407

Browse files
committed
Merge branches 'cl/icicle' and 'main' of github.com:EspressoSystems/jellyfish into cl/icicle
2 parents 603d765 + 2b9ff14 commit 7c21407

File tree

137 files changed

+3753
-6538
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

137 files changed

+3753
-6538
lines changed

.cargo/audit.toml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
[advisories]
2+
ignore = [
3+
# WARNING: crate `derivative` unmaintained, still resides in `ark-crypto-primitives`.
4+
"RUSTSEC-2024-0388",
5+
# WARNING: crate `paste` unmaintained.
6+
"RUSTSEC-2024-0436",
7+
# `tracing-subscriber` doesn't rule out poisoning logs. But we are not using it.
8+
"RUSTSEC-2025-0055",
9+
]

.github/workflows/build.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ name: Build
22

33
on:
44
push:
5-
branches:
6-
- main
5+
branches: ["main"]
76
pull_request:
7+
branches: ["main", "jf-*-v*.*.*"]
88
schedule:
99
- cron: "0 0 * * 1"
1010
workflow_dispatch:
@@ -20,7 +20,7 @@ jobs:
2020
access_token: ${{ github.token }}
2121

2222
- name: Checkout Repository
23-
uses: actions/checkout@v4
23+
uses: actions/checkout@v5
2424

2525
- name: Install stable toolchain
2626
uses: actions-rs/toolchain@v1
@@ -37,7 +37,7 @@ jobs:
3737
uses: actions-rs/toolchain@v1
3838
with:
3939
profile: minimal
40-
toolchain: nightly
40+
toolchain: nightly-2025-09-04
4141
override: false
4242
default: false
4343
components: rustfmt
@@ -46,10 +46,10 @@ jobs:
4646
name: Enable Rust Caching
4747

4848
- name: Spell Check
49-
uses: crate-ci/typos@v1.23.1
49+
uses: crate-ci/typos@v1.37.2
5050

5151
- name: Format Check
52-
run: cargo +nightly fmt -- --check
52+
run: cargo +nightly-2025-09-04 fmt -- --check
5353

5454
- name: Clippy
5555
uses: actions-rs/clippy-check@v1

.github/workflows/combine-prs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
steps:
1919
- name: combine-prs
2020
id: combine-prs
21-
uses: github/combine-prs@v5.0.0
21+
uses: github/combine-prs@v5.2.0
2222
with:
2323
github_token: ${{ secrets.ORG_GITHUB_PAT }}
2424
labels: "dependabot,combined-pr"

.github/workflows/periodic_checks.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
runs-on: ubuntu-latest
1111
steps:
1212
- name: Checkout Repository
13-
uses: actions/checkout@v4
13+
uses: actions/checkout@v5
1414

1515
- name: Install nightly toolchain
1616
uses: actions-rs/toolchain@v1

.github/workflows/update_nix.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,17 @@ jobs:
1010
runs-on: ubuntu-latest
1111
steps:
1212
- name: Checkout repository
13-
uses: actions/checkout@v4
13+
uses: actions/checkout@v5
1414

1515
- name: Install Nix
16-
uses: cachix/install-nix-action@V27
16+
uses: cachix/install-nix-action@v30
1717

1818
- uses: cachix/cachix-action@v15
1919
with:
2020
name: espresso-systems-private
2121
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
2222

2323
- name: Update flake.lock
24-
uses: DeterminateSystems/update-flake-lock@v23
24+
uses: DeterminateSystems/update-flake-lock@v27
2525
with:
2626
pr-title: "Weekly PR to bump flake.nix" # Title of PR to be created

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
.*.sw*
22
.DS_Store
33
.idea
4-
/target
4+
**/target
55
cargo-system-config.toml
66
Cargo.lock
77
*.org
88
.pre-commit-config.yaml
99
.vscode
10+
.direnv
1011

1112
# Test coverage (grcov)
1213
default.profraw

CODEOWNERS

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,6 @@
2525
# Owner of `jf-rescue` crate
2626
/rescue/ @philippecamacho
2727

28-
# Owner of `jf-vdf` crate
29-
/vdf/ @mrain
30-
3128
# Owner of `jf-vid` crate
3229
/vid/ @ggutoski @akonring
3330

Cargo.toml

Lines changed: 42 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,61 @@
11
[workspace]
2-
members = ["aead", "commitment", "crhf", "elgamal", "merkle_tree", "pcs", "plonk", "prf", "relation", "rescue", "signature", "utilities", "vdf", "vid", "vrf"]
2+
members = [
3+
"aead",
4+
"commitment",
5+
"crhf",
6+
"elgamal",
7+
"merkle_tree",
8+
"pcs",
9+
"plonk",
10+
"poseidon2",
11+
"prf",
12+
"relation",
13+
"rescue",
14+
"signature",
15+
"utilities",
16+
"vrf",
17+
]
318
resolver = "2"
419

520
[workspace.package]
6-
version = "0.4.4"
721
authors = ["Espresso Systems <[email protected]>"]
822
edition = "2021"
923
license = "MIT"
10-
rust-version = "1.64.0"
24+
rust-version = "1.73.0"
1125
homepage = "https://github.com/EspressoSystems/jellyfish"
1226
documentation = "https://jellyfish.docs.espressosys.com"
1327
repository = "https://github.com/EspressoSystems/jellyfish"
1428

1529
[workspace.dependencies]
16-
ark-bls12-377 = { version = "0.4.0", default-features = false, features = [ "curve" ] }
17-
ark-bls12-381 = { version = "0.4.0", default-features = false, features = [ "curve" ] }
18-
ark-bn254 = { version = "0.4.0", default-features = false, features = [ "curve" ] }
19-
ark-bw6-761 = { version = "0.4.0", default-features = false }
20-
ark-ec = { version = "0.4.0", default-features = false }
21-
ark-ff = { version = "0.4.0", default-features = false, features = [ "asm" ] }
22-
ark-poly = { version = "0.4.0", default-features = false }
23-
ark-serialize = { version = "0.4.0", default-features = false }
24-
ark-std = { version = "0.4.0", default-features = false }
25-
derivative = { version = "2", features = ["use_core"] }
26-
digest = { version = "0.10.1", default-features = false, features = [ "alloc" ] }
30+
ark-bls12-377 = { version = "0.5", default-features = false, features = [ "curve" ] }
31+
ark-bls12-381 = { version = "0.5", default-features = false, features = [ "curve" ] }
32+
ark-bn254 = { version = "0.5", default-features = false, features = [ "curve" ] }
33+
ark-bw6-761 = { version = "0.5", default-features = false }
34+
ark-ec = { version = "0.5", default-features = false }
35+
ark-ed-on-bls12-377 = { version = "0.5", default-features = false }
36+
ark-ed-on-bls12-381 = { version = "0.5", default-features = false }
37+
ark-ed-on-bls12-381-bandersnatch = { version = "0.5", default-features = false }
38+
ark-ed-on-bn254 = { version = "0.5", default-features = false }
39+
ark-ff = { version = "0.5", default-features = false, features = [ "asm" ] }
40+
ark-poly = { version = "0.5", default-features = false }
41+
ark-serialize = { version = "0.5", default-features = false, features = [ "derive" ] }
42+
ark-std = { version = "0.5", default-features = false }
43+
derive-where = { version = "1.6" }
44+
digest = { version = "0.10.7", default-features = false, features = [ "alloc" ] }
2745
displaydoc = { version = "0.2", default-features = false }
2846
hashbrown = "0.14.3"
47+
itertools = { version = "0.12", default-features = false }
2948
merlin = { version = "3.0.0", default-features = false }
3049
num-bigint = { version = "0.4", default-features = false }
3150
rand_chacha = { version = "0.3.1", default-features = false }
32-
serde = { version = "1.0", default-features = false, features = [ "derive", "rc" ] }
51+
rayon = "1.11"
52+
serde = { version = "1.0", default-features = false, features = [ "derive", "rc", "alloc" ] }
3353
sha2 = { version = "0.10", default-features = false }
3454
sha3 = { version = "0.10", default-features = false }
35-
itertools = { version = "0.12", default-features = false }
36-
tagged-base64 = "0.4"
55+
spongefish = { git = "https://github.com/arkworks-rs/spongefish.git", rev = "3ded547f7f56d7f8a1fc4c9a5c0ce965310bba5f", features = ["arkworks-algebra"] }
56+
tagged-base64 = "0.4.1"
57+
zeroize = { version = "^1.8" }
58+
59+
[profile.profiling]
60+
inherits = "release"
61+
debug = true

README.md

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,22 +18,23 @@ For general discussions on Jellyfish PLONK, please join our [Discord channel](ht
1818
- ['jf-utils'](utilities): utilities and helper functions.
1919

2020
### Primitives
21-
- ['jf-prf'](prf): trait definitions for pesudorandom function (PRF).
22-
- ['jf-crhf'](crhf): trait definitions for collision-resistant hash function (CRHF).
23-
- ['jf-commitment'](commitment): trait definitions for cryptographic commitment scheme.
24-
- ['jf-rescue'](rescue): Rescue hash function, and its subsequent PRF, CRHF, commitment scheme implementations.
25-
- ['jf-elgamal'](elgamal): a Rescue-based ElGamal encryption scheme implementation.
26-
- ['jf-signature'](signature): signature scheme trait definition, and BLS/Schnorr signature scheme implementations.
27-
- ['jf-vrf'](vrf): verifiable random function trait definition and BLS-based implementation.
28-
- ['jf-aead'](aead): authenticated encryption with associated data (AEAD) implementation.
29-
- ['jf-merkle-tree'](merkle_tree): various (vanilla, sparse, namespaced) Merkle tree trait definitions and implementations.
30-
- ['jf-pcs'](pcs): polynomial commitment scheme (PCS) trait definitions and univariate/multilinear KZG-PCS implementations.
31-
- ['jf-vdf'](vdf): verifiable delay function (VDF) trait definitions and (non-verifiable) MinRoot implementation.
32-
- ['jf-vid'](vid): verifiable information dispersal (VID) trait definition and implementation.
21+
- [`jf-prf`](prf): trait definitions for pseudorandom function (PRF).
22+
- [`jf-crhf`](crhf): trait definitions for collision-resistant hash function (CRHF).
23+
- [`jf-commitment`](commitment): trait definitions for cryptographic commitment scheme.
24+
- [`jf-rescue`](rescue): Rescue hash function, and its subsequent PRF, CRHF, commitment scheme implementations.
25+
- [`jf-elgamal`](elgamal): a Rescue-based ElGamal encryption scheme implementation.
26+
- [`jf-signature`](signature): signature scheme trait definition, and BLS/Schnorr signature scheme implementations.
27+
- [`jf-vrf`](vrf): verifiable random function trait definition and BLS-based implementation.
28+
- [`jf-aead`](aead): authenticated encryption with associated data (AEAD) implementation.
29+
- [`jf-merkle-tree`](merkle_tree): various (vanilla, sparse, namespaced) Merkle tree trait definitions and implementations.
30+
- [`jf-pcs`](pcs): polynomial commitment scheme (PCS) trait definitions and univariate/multilinear KZG-PCS implementations.
31+
- [`jf-poseidon2`](poseidon2): Poseidon2 permutation, and Sponge, CRHF, derived from this permutation.
32+
33+
The `jf-vid` crate is now moved to another repo [`jf-advz`](https://github.com/EspressoSystems/jellyfish-compat/tree/main/advz).
3334

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

3839
## Development environment setup
3940

aead/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
44
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
55

6+
## 0.2.0
7+
8+
- Upgrade arkworks dependencies to v0.5.0.
9+
610
## 0.1.0
711

812
- Initial release.

0 commit comments

Comments
 (0)