Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Frontend-Backend split #254

Merged
merged 82 commits into from
Feb 6, 2024
Merged
Show file tree
Hide file tree
Changes from 78 commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
eb5d1aa
Reimplement keygen_vk for fe-be split as keygen_vk_v2
ed255 Dec 13, 2023
d318a9d
Reimplement keygen_pk for fe-be split as keygen_pk_v2
ed255 Dec 13, 2023
a601925
WIP: ProverV2 implementation
ed255 Dec 13, 2023
4510059
WIP
ed255 Dec 14, 2023
1b35fab
Complete create_proof refactor for fe-be split
ed255 Dec 14, 2023
50e7354
Make new prover methods work with multi-instance
ed255 Dec 15, 2023
98759c3
Get queires for proving
ed255 Dec 15, 2023
9ee0ced
Port verify_proof to fe-be split
ed255 Dec 15, 2023
013e6d4
Add sample circuit for testing
ed255 Dec 27, 2023
50fb46a
Make progress on testing fe-be split
ed255 Dec 28, 2023
a8a2009
Add witness calculator
ed255 Dec 29, 2023
c272378
Full flow, but verification fails
ed255 Dec 29, 2023
6037910
WIP
ed255 Jan 2, 2024
19298c2
Get it working
ed255 Jan 3, 2024
0ebdc59
Clean up
ed255 Jan 3, 2024
96ea944
Clean up
ed255 Jan 3, 2024
bfc5d86
Clean up
ed255 Jan 3, 2024
8495457
Benchmark
ed255 Jan 3, 2024
c412223
Merge branch 'main' into feature/frontend-backend
ed255 Jan 4, 2024
568b0e5
WIP
ed255 Jan 4, 2024
ca9d052
Make legacy wrappers over v2
ed255 Jan 4, 2024
8813ef7
Remove old API in favour of legacy wrappers
ed255 Jan 5, 2024
86ef75f
Fix test
ed255 Jan 5, 2024
58c9567
Address some clippy warnings
ed255 Jan 5, 2024
1bc84ca
Fix pinned vk test
ed255 Jan 5, 2024
582d6d5
Remove Polynomial from backend interface
ed255 Jan 9, 2024
a3ecfba
Clean up
ed255 Jan 10, 2024
d3e2543
Merge branch 'main' into feature/frontend-backend
ed255 Jan 11, 2024
d350e72
Address some of the review comments from @CPerezz
ed255 Jan 15, 2024
2c50b39
Simplify Backend gate type
ed255 Jan 16, 2024
c71fbfa
Document some types
ed255 Jan 16, 2024
20c16dd
Split collect_queries function
ed255 Jan 16, 2024
371e69e
Checkpoint
ed255 Jan 16, 2024
1fc555b
Checkpoint
ed255 Jan 16, 2024
4f47ae6
Checkpoint
ed255 Jan 18, 2024
fad6b04
Checkpoint
ed255 Jan 19, 2024
cd7cf53
Checkpoint
ed255 Jan 22, 2024
f99144a
Checkpoint. Move everything to common
ed255 Jan 22, 2024
de02499
Checkpoint
ed255 Jan 22, 2024
adcbe4b
Checkpoint
ed255 Jan 22, 2024
e54c39c
Checkpoint
ed255 Jan 22, 2024
e004913
Checkpoint
ed255 Jan 22, 2024
fd80a62
Checkpoint
ed255 Jan 22, 2024
43fdbb3
Checkpoint
ed255 Jan 22, 2024
5c7d2ad
Checkpoint
ed255 Jan 22, 2024
15027e6
Checkpoint
ed255 Jan 22, 2024
0dcdf7d
Checkpoint, backend compiles
ed255 Jan 23, 2024
b0a17cd
Add TODOs
ed255 Jan 23, 2024
5d9c09d
Add TODOs
ed255 Jan 23, 2024
f9703ec
Checkpoint. compile_circuit in frontend
ed255 Jan 23, 2024
29b6c75
Checkpoint. WitnessCalculator in backend
ed255 Jan 23, 2024
552c567
Checkpoint, halo2_proofs legacy
ed255 Jan 24, 2024
9b73ca4
Fix test imports
ed255 Jan 24, 2024
41f2003
Enable dev
ed255 Jan 24, 2024
933c399
Move dev to frontend
ed255 Jan 24, 2024
9b19dd9
Remove old halo2_proofs src
ed255 Jan 25, 2024
f2c9074
Cleanup unused dependencies in common, backend
ed255 Jan 25, 2024
2293d61
Clean unused imports
ed255 Jan 25, 2024
cd6972a
Pass frontend tests
ed255 Jan 26, 2024
79d6e11
Pass tests in halo2_proofs
ed255 Jan 26, 2024
130e8e1
Move individual tests to halo2_proofs
ed255 Jan 26, 2024
36e82a1
Add reexports in halo2_proofs for plonk_api.rs
ed255 Jan 26, 2024
ea8cd59
Move examples to halo2_proofs. Breaks
ed255 Jan 26, 2024
28722f3
WIP (Broken): ColumnMid implementation
ed255 Jan 26, 2024
3291b3c
Checkpoint
ed255 Jan 29, 2024
34d35a8
Add ChallengeMid in middleware
ed255 Jan 29, 2024
0fb3007
Remove halo2_proofs_rm; compile all tests
ed255 Jan 29, 2024
1fce6f3
Clean up middleware deps
ed255 Jan 29, 2024
da9d34e
Clean up and config lints for halo2_proofs
ed255 Jan 29, 2024
4c155be
Temporarily disable thread-safe-region fetature, fix clippy warnings
ed255 Jan 29, 2024
fe2e28e
Fix doc tests imports
ed255 Jan 29, 2024
134143c
Resolve feedback from @han0110
ed255 Feb 2, 2024
7eda496
Address feedback from @adria0
ed255 Feb 2, 2024
acb13f8
Address feedback from @CPerezz, part 1
ed255 Feb 2, 2024
bbf034a
Address feedback from @CPerezz, part 2
ed255 Feb 2, 2024
9927c82
Address feedback from @CPerezz, part 3
ed255 Feb 2, 2024
fb2e556
Fix wasm32 build
ed255 Feb 2, 2024
25666a4
Merge branch 'main' into feature/frontend-backend-crates1
ed255 Feb 5, 2024
137b46e
Use Vec<F> instead of Vec<Assigned<F>> in prover::commit_phase
ed255 Feb 6, 2024
7162953
Move Assigned from middleware to common
ed255 Feb 6, 2024
490cd87
Run cargo fmt
ed255 Feb 6, 2024
e2efca5
Fix doc example import
ed255 Feb 6, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,8 @@
members = [
"halo2",
"halo2_proofs",
"halo2_frontend",
"halo2_middleware",
"halo2_backend",
"halo2_common",
]
65 changes: 65 additions & 0 deletions halo2_backend/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
[package]
name = "halo2_backend"
version = "0.3.0"
authors = [
"Sean Bowe <[email protected]>",
"Ying Tong Lai <[email protected]>",
"Daira Hopwood <[email protected]>",
"Jack Grigg <[email protected]>",
"Privacy Scaling Explorations team",
]
edition = "2021"
rust-version = "1.66.0"
description = """
Halo2 backend implementation. This package implements the halo2 proof system which includes setup (key generation), proving and verifying.
"""
license = "MIT OR Apache-2.0"
repository = "https://github.com/zcash/halo2"
documentation = "https://docs.rs/halo2_proofs"
readme = "README.md"
categories = ["cryptography"]
keywords = ["halo", "proofs", "zkp", "zkSNARKs"]

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs", "--html-in-header", "katex-header.html"]

[dependencies]
backtrace = { version = "0.3", optional = true }
ff = "0.13"
group = "0.13"
halo2curves = { version = "0.6.0", default-features = false }
rand_core = { version = "0.6", default-features = false }
tracing = "0.1"
blake2b_simd = "1" # MSRV 1.66.0
sha3 = "0.9.1"
rand_chacha = "0.3"
serde = { version = "1", optional = true, features = ["derive"] }
serde_derive = { version = "1", optional = true}
rayon = "1.8"
halo2_middleware = { path = "../halo2_middleware" }
halo2_common = { path = "../halo2_common" }

[dev-dependencies]
assert_matches = "1.5"
criterion = "0.3"
gumdrop = "0.8"
proptest = "1"
rand_core = { version = "0.6", default-features = false, features = ["getrandom"] }
serde_json = "1"

[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dev-dependencies]
getrandom = { version = "0.2", features = ["js"] }

[features]
default = ["batch", "bits"]
bits = ["halo2curves/bits"]
gadget-traces = ["backtrace"]
sanity-checks = []
batch = ["rand_core/getrandom"]
circuit-params = []
cost-estimator = ["serde", "serde_derive"]
derive_serde = ["halo2curves/derive_serde"]

[lib]
bench = false
10 changes: 10 additions & 0 deletions halo2_backend/src/lib.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
pub mod plonk;

// Internal re-exports
pub use halo2_common::arithmetic;
pub use halo2_common::circuit;
pub use halo2_common::helpers;
pub use halo2_common::multicore;
pub use halo2_common::poly;
pub use halo2_common::transcript;
pub use halo2_common::SerdeFormat;
Loading
Loading