[workspace] members = [ "zebrad", "zebra-chain", "zebra-network", "zebra-state", "zebra-script", "zebra-consensus", "zebra-rpc", "zebra-node-services", "zebra-test", "zebra-utils", "zebra-scan", "zebra-grpc", "tower-batch-control", "tower-fallback", ] # Use the edition 2021 dependency resolver in the workspace, to match the crates resolver = "2" # `cargo release` settings [workspace.dependencies] incrementalmerkletree = "0.5.1" orchard = "0.8.0" sapling-crypto = "0.1.3" zcash_address = "0.3.2" zcash_client_backend = "0.12.1" zcash_encoding = "0.2.0" zcash_history = "0.4.0" zcash_keys = "0.2.0" zcash_primitives = "0.15.0" zcash_proofs = "0.15.0" zcash_protocol = "0.1.1" [workspace.metadata.release] # We always do releases from the main branch allow-branch = ["main"] # Compilation settings [profile.dev] panic = "abort" # Speed up tests by optimizing performance-critical crates # Cryptographic crates [profile.dev.package.blake2b_simd] opt-level = 3 [profile.dev.package.ff] opt-level = 3 [profile.dev.package.group] opt-level = 3 [profile.dev.package.pasta_curves] opt-level = 3 [profile.dev.package.halo2_proofs] opt-level = 3 [profile.dev.package.halo2_gadgets] opt-level = 3 [profile.dev.package.bls12_381] opt-level = 3 [profile.dev.package.byteorder] opt-level = 3 [profile.dev.package.equihash] opt-level = 3 [profile.dev.package.zcash_proofs] opt-level = 3 [profile.dev.package.ring] opt-level = 3 [profile.dev.package.spin] opt-level = 3 [profile.dev.package.untrusted] opt-level = 3 [profile.release] panic = "abort" # Speed up release builds and sync tests using link-time optimization. # Some of Zebra's code is CPU-intensive, and needs extra optimizations for peak performance. # # TODO: # - add "-Clinker-plugin-lto" in .cargo/config.toml to speed up release builds # - add "-Clinker=clang -Clink-arg=-fuse-ld=lld" in .cargo/config.toml # - also use LTO on C/C++ code: # - use clang to compile all C/C++ code # - add "-flto=thin" to all C/C++ code builds # - see https://doc.rust-lang.org/rustc/linker-plugin-lto.html#cc-code-as-a-dependency-in-rust lto = "thin" [patch.crates-io] halo2_proofs = { version = "0.3.0", git = "https://github.com/QED-it/halo2", branch = "zsa1" } halo2_gadgets = { version = "0.3.0", git = "https://github.com/QED-it/halo2", branch = "zsa1" } zcash_note_encryption = { version = "0.4.0", git = "https://github.com/QED-it/zcash_note_encryption", branch = "zsa1" } sapling-crypto = { version = "0.1.3", git = "https://github.com/QED-it/sapling-crypto", branch = "zsa1" } orchard = { version = "0.8.0", git = "https://github.com/QED-it/orchard", branch = "zsa1" } zcash_primitives = { version = "0.15.0", git = "https://github.com/QED-it/librustzcash", branch = "zsa1" } zcash_protocol = { version = "0.1.1", git = "https://github.com/QED-it/librustzcash", branch = "zsa1" } zcash_address = { version = "0.3.2", git = "https://github.com/QED-it/librustzcash", branch = "zsa1" } zcash_encoding = { version = "0.2.0", git = "https://github.com/QED-it/librustzcash", branch = "zsa1" } zcash_history = { version = "0.4.0", git = "https://github.com/QED-it/librustzcash", branch = "zsa1" } zcash_client_backend = { version = "0.12.1", git = "https://github.com/QED-it/librustzcash", branch = "zsa1" } zcash_keys = { version = "0.2.0", git = "https://github.com/QED-it/librustzcash", branch = "zsa1" }