2019-08-29 14:46:54 -07:00
|
|
|
[package]
|
|
|
|
name = "zebrad"
|
2019-10-08 09:25:59 -07:00
|
|
|
authors = ["Zcash Foundation <zebra@zfnd.org>"]
|
|
|
|
license = "MIT OR Apache-2.0"
|
2022-11-01 15:35:21 -07:00
|
|
|
version = "1.0.0-rc.1"
|
Enforce Rust edition 2021 (#3332)
* Rust edition 2021: zebra-network, cargo fix --edition and clippy --fix
* Rust edition 2021: zebra-chain, cargo fix --edition
* Rust edition 2021: tower-batch, cargo fix --edition
* Rust edition 2021: tower-fallback, cargo fix --edition
* Rust edition 2021: zebra-client, cargo fix --edition
* Rust edition 2021: zebra-consensus, cargo fix --edition
* Rust edition 2021: zebra-rpc, cargo fix --edition
* Rust edition 2021: zebra-state, cargo fix --edition
* Rust edition 2021: zebra-state, cargo fix --edition
* Rust edition 2021: zebra-test, cargo fix --edition
* Rust edition 2021: zebra-utils, cargo fix --edition
* Rust edition 2021: zebrad, cargo fix --edition
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2022-01-14 04:10:18 -08:00
|
|
|
edition = "2021"
|
2022-05-19 16:07:46 -07:00
|
|
|
# Zebra is only supported on the latest stable Rust version. Some earlier versions might work.
|
|
|
|
# Zebra uses features introduced in Rust 1.58.
|
|
|
|
rust-version = "1.58"
|
2020-09-17 15:09:18 -07:00
|
|
|
repository = "https://github.com/ZcashFoundation/zebra"
|
2021-01-07 23:07:23 -08:00
|
|
|
# make `cargo run` use `zebrad` by default
|
|
|
|
# when run in the workspace directory
|
|
|
|
default-run = "zebrad"
|
2019-08-29 14:46:54 -07:00
|
|
|
|
2022-03-30 11:23:55 -07:00
|
|
|
[features]
|
2022-05-28 04:08:01 -07:00
|
|
|
# In release builds, don't compile debug logging code, to improve performance.
|
|
|
|
default = ["release_max_level_info"]
|
2022-05-10 22:00:14 -07:00
|
|
|
|
2022-11-02 20:25:01 -07:00
|
|
|
# Production features that activate extra dependencies, or extra features in dependencies
|
|
|
|
|
|
|
|
# Experimental mining RPC support
|
|
|
|
getblocktemplate-rpcs = [
|
|
|
|
"zebra-rpc/getblocktemplate-rpcs",
|
|
|
|
"zebra-state/getblocktemplate-rpcs",
|
|
|
|
"zebra-node-services/getblocktemplate-rpcs",
|
|
|
|
]
|
2022-06-16 12:56:40 -07:00
|
|
|
|
|
|
|
sentry = ["dep:sentry", "sentry-tracing"]
|
|
|
|
flamegraph = ["tracing-flame", "inferno"]
|
|
|
|
journald = ["tracing-journald"]
|
|
|
|
filter-reload = ["hyper"]
|
|
|
|
|
|
|
|
prometheus = ["metrics-exporter-prometheus"]
|
2022-05-10 22:00:14 -07:00
|
|
|
|
2022-05-28 04:08:01 -07:00
|
|
|
# Production features that modify dependency behaviour
|
|
|
|
|
2022-05-31 20:53:51 -07:00
|
|
|
# Enable additional error debugging in release builds
|
|
|
|
error-debug = ["color-eyre/track-caller", "color-eyre/capture-spantrace"]
|
|
|
|
|
2022-05-28 04:08:01 -07:00
|
|
|
# Remove verbose logging at compile-time in release or all builds.
|
|
|
|
#
|
|
|
|
# Release builds are defined as "cfg(not(debug_assertions))".
|
|
|
|
# https://docs.rs/tracing/latest/tracing/level_filters/index.html#compile-time-filters
|
|
|
|
release_max_level_warn = ["tracing/release_max_level_warn", "log/release_max_level_warn"]
|
|
|
|
release_max_level_info = ["tracing/release_max_level_info", "log/release_max_level_info"]
|
|
|
|
release_max_level_debug = ["tracing/release_max_level_debug", "log/release_max_level_debug"]
|
|
|
|
|
|
|
|
max_level_warn = ["tracing/max_level_warn", "log/max_level_warn"]
|
|
|
|
max_level_info = ["tracing/max_level_info", "log/max_level_info"]
|
|
|
|
max_level_debug = ["tracing/max_level_debug", "log/max_level_debug"]
|
|
|
|
|
2022-05-10 22:00:14 -07:00
|
|
|
# Testing features that activate extra dependencies
|
2022-03-30 11:23:55 -07:00
|
|
|
proptest-impl = ["proptest", "proptest-derive", "zebra-chain/proptest-impl", "zebra-state/proptest-impl", "zebra-consensus/proptest-impl", "zebra-network/proptest-impl"]
|
|
|
|
|
2022-05-11 07:06:58 -07:00
|
|
|
# The gRPC tests also need an installed lightwalletd binary
|
|
|
|
lightwalletd-grpc-tests = ["tonic-build"]
|
|
|
|
|
2022-06-14 23:43:20 -07:00
|
|
|
# tokio-console support
|
|
|
|
#
|
|
|
|
# To activate this feature, run:
|
|
|
|
# ```sh
|
|
|
|
# RUSTFLAGS="--cfg tokio_unstable" cargo build --no-default-features --features="tokio-console" --bin zebrad
|
|
|
|
# ```
|
|
|
|
#
|
|
|
|
# The console-subscriber is incompatible with the tracing/max_level_* features.
|
|
|
|
#
|
|
|
|
# For more details, see:
|
|
|
|
# https://github.com/tokio-rs/console/blob/main/console-subscriber/README.md#enabling-tokio-instrumentation
|
|
|
|
tokio-console = ["console-subscriber"]
|
|
|
|
|
2022-05-11 07:06:58 -07:00
|
|
|
# TODO: replace with environmental variables that skip the tests when not set (part of #2995)
|
2022-03-30 11:23:55 -07:00
|
|
|
test_sync_to_mandatory_checkpoint_mainnet = []
|
|
|
|
test_sync_to_mandatory_checkpoint_testnet = []
|
|
|
|
test_sync_past_mandatory_checkpoint_mainnet = []
|
|
|
|
test_sync_past_mandatory_checkpoint_testnet = []
|
|
|
|
|
2019-08-29 14:46:54 -07:00
|
|
|
[dependencies]
|
2020-07-14 10:17:05 -07:00
|
|
|
zebra-chain = { path = "../zebra-chain" }
|
2022-10-24 16:39:00 -07:00
|
|
|
zebra-consensus = { path = "../zebra-consensus" }
|
2020-07-14 10:17:05 -07:00
|
|
|
zebra-network = { path = "../zebra-network" }
|
2022-02-25 13:43:21 -08:00
|
|
|
zebra-node-services = { path = "../zebra-node-services" }
|
2022-02-22 03:26:29 -08:00
|
|
|
zebra-rpc = { path = "../zebra-rpc" }
|
2020-07-14 10:17:05 -07:00
|
|
|
zebra-state = { path = "../zebra-state" }
|
|
|
|
|
2019-12-20 11:20:04 -08:00
|
|
|
abscissa_core = "0.5"
|
2022-08-30 02:01:33 -07:00
|
|
|
gumdrop = { version = "0.7", features = ["default_expr"]}
|
2022-09-02 14:11:18 -07:00
|
|
|
chrono = { version = "0.4.22", default-features = false, features = ["clock", "std"] }
|
2022-06-27 19:51:41 -07:00
|
|
|
humantime = "2.1.0"
|
2022-06-13 23:21:24 -07:00
|
|
|
humantime-serde = "1.1.1"
|
2022-06-27 00:37:36 -07:00
|
|
|
indexmap = "1.9.1"
|
2021-11-19 15:02:56 -08:00
|
|
|
lazy_static = "1.4.0"
|
2022-10-22 15:31:45 -07:00
|
|
|
serde = { version = "1.0.147", features = ["serde_derive"] }
|
2022-04-26 21:13:19 -07:00
|
|
|
toml = "0.5.9"
|
2020-07-14 10:17:05 -07:00
|
|
|
|
2022-10-21 12:02:04 -07:00
|
|
|
futures = "0.3.25"
|
2022-07-17 15:43:29 -07:00
|
|
|
rayon = "1.5.3"
|
2022-09-28 17:22:13 -07:00
|
|
|
tokio = { version = "1.21.2", features = ["time", "rt-multi-thread", "macros", "tracing", "signal"] }
|
2022-06-21 10:12:19 -07:00
|
|
|
tower = { version = "0.4.13", features = ["hedge", "limit"] }
|
2022-09-03 18:15:49 -07:00
|
|
|
pin-project = "1.0.12"
|
2019-08-29 14:46:54 -07:00
|
|
|
|
2022-09-26 15:23:59 -07:00
|
|
|
color-eyre = { version = "0.6.2", default_features = false, features = ["issue-url"] }
|
2022-08-03 16:42:50 -07:00
|
|
|
# This is a transitive dependency via color-eyre.
|
|
|
|
# Enable a feature that makes tinyvec compile much faster.
|
2022-08-04 15:03:24 -07:00
|
|
|
tinyvec = { version = "1.6.0", features = ["rustc_1_55"] }
|
2022-08-03 16:42:50 -07:00
|
|
|
|
2022-09-29 04:37:48 -07:00
|
|
|
thiserror = "1.0.37"
|
2020-09-09 14:45:05 -07:00
|
|
|
|
2022-10-12 11:12:43 -07:00
|
|
|
tracing-subscriber = { version = "0.3.16", features = ["env-filter"] }
|
2022-09-07 00:39:30 -07:00
|
|
|
tracing-appender = "0.2.2"
|
2022-05-31 20:53:51 -07:00
|
|
|
tracing-error = "0.2.0"
|
2022-03-06 18:07:25 -08:00
|
|
|
tracing-futures = "0.2.5"
|
2022-10-12 23:46:27 -07:00
|
|
|
tracing = "0.1.37"
|
2020-09-09 14:45:05 -07:00
|
|
|
|
2022-09-26 21:19:01 -07:00
|
|
|
metrics = "0.20.1"
|
2022-05-31 20:53:51 -07:00
|
|
|
|
2021-09-22 16:34:09 -07:00
|
|
|
dirs = "4.0.0"
|
2020-11-30 17:08:55 -08:00
|
|
|
atty = "0.2.14"
|
2020-02-14 13:38:33 -08:00
|
|
|
|
2022-05-05 05:44:00 -07:00
|
|
|
num-integer = "0.1.45"
|
2022-03-06 18:07:25 -08:00
|
|
|
rand = { version = "0.8.5", package = "rand" }
|
2021-10-26 17:21:19 -07:00
|
|
|
|
2022-06-16 12:56:40 -07:00
|
|
|
# prod feature sentry
|
2022-07-22 09:32:37 -07:00
|
|
|
sentry-tracing = { version = "0.27.0", optional = true }
|
|
|
|
sentry = { version = "0.27.0", default-features = false, features = ["backtrace", "contexts", "reqwest", "rustls"], optional = true }
|
2022-05-10 22:00:14 -07:00
|
|
|
|
2022-06-16 12:56:40 -07:00
|
|
|
# prod feature flamegraph
|
|
|
|
tracing-flame = { version = "0.2.0", optional = true }
|
2022-10-25 10:17:50 -07:00
|
|
|
inferno = { version = "0.11.12", default-features = false, optional = true }
|
2022-06-16 12:56:40 -07:00
|
|
|
|
|
|
|
# prod feature journald
|
|
|
|
tracing-journald = { version = "0.3.0", optional = true }
|
|
|
|
|
|
|
|
# prod feature filter-reload
|
2022-11-01 19:42:38 -07:00
|
|
|
hyper = { version = "0.14.22", features = ["http1", "http2", "server"], optional = true }
|
2022-06-16 12:56:40 -07:00
|
|
|
|
|
|
|
# prod feature prometheus
|
2022-09-26 21:19:01 -07:00
|
|
|
metrics-exporter-prometheus = { version = "0.11.0", default-features = false, features = ["http-listener"], optional = true }
|
2022-06-16 12:56:40 -07:00
|
|
|
|
2022-05-28 04:08:01 -07:00
|
|
|
# prod feature release_max_level_info
|
|
|
|
#
|
2022-05-27 12:49:51 -07:00
|
|
|
# zebrad uses tracing for logging,
|
2022-05-28 04:08:01 -07:00
|
|
|
# we only use `log` to set and print the static log levels in transitive dependencies
|
2022-06-02 08:07:01 -07:00
|
|
|
log = "0.4.17"
|
2022-05-27 12:49:51 -07:00
|
|
|
|
2022-05-10 22:00:14 -07:00
|
|
|
# test feature proptest-impl
|
2022-03-30 11:23:55 -07:00
|
|
|
proptest = { version = "0.10.1", optional = true }
|
|
|
|
proptest-derive = { version = "0.3.0", optional = true }
|
|
|
|
|
2022-06-14 23:43:20 -07:00
|
|
|
# test feature tokio-console
|
2022-09-06 07:49:18 -07:00
|
|
|
console-subscriber = { version = "0.1.8", optional = true }
|
2022-06-14 23:43:20 -07:00
|
|
|
|
2020-12-01 12:13:20 -08:00
|
|
|
[build-dependencies]
|
2022-09-01 18:01:13 -07:00
|
|
|
vergen = { version = "7.4.2", default-features = false, features = ["cargo", "git"] }
|
2020-12-01 12:13:20 -08:00
|
|
|
|
2022-05-11 07:06:58 -07:00
|
|
|
# test feature lightwalletd-grpc-tests
|
2022-09-06 07:49:18 -07:00
|
|
|
tonic-build = { version = "0.8.0", optional = true }
|
2022-05-11 07:06:58 -07:00
|
|
|
|
2019-12-20 11:20:04 -08:00
|
|
|
[dev-dependencies]
|
|
|
|
abscissa_core = { version = "0.5", features = ["testing"] }
|
2022-04-25 22:32:27 -07:00
|
|
|
hex = "0.4.3"
|
2022-10-31 22:47:47 -07:00
|
|
|
once_cell = "1.16.0"
|
2022-08-01 02:07:08 -07:00
|
|
|
regex = "1.6.0"
|
2022-09-15 21:14:26 -07:00
|
|
|
semver = "1.0.14"
|
2022-06-16 12:56:40 -07:00
|
|
|
|
2022-03-25 05:25:31 -07:00
|
|
|
# zebra-rpc needs the preserve_order feature, it also makes test results more stable
|
2022-10-21 06:50:19 -07:00
|
|
|
serde_json = { version = "1.0.87", features = ["preserve_order"] }
|
2022-01-14 07:11:23 -08:00
|
|
|
tempfile = "3.3.0"
|
2022-06-14 23:43:20 -07:00
|
|
|
|
2022-11-01 19:42:38 -07:00
|
|
|
hyper = { version = "0.14.22", features = ["http1", "http2", "server"]}
|
2022-09-21 19:05:04 -07:00
|
|
|
reqwest = "0.11.12"
|
2022-06-16 12:56:40 -07:00
|
|
|
|
2022-09-28 17:22:13 -07:00
|
|
|
tokio = { version = "1.21.2", features = ["full", "tracing", "test-util"] }
|
2022-10-13 19:04:40 -07:00
|
|
|
tokio-stream = "0.1.11"
|
2022-05-11 07:06:58 -07:00
|
|
|
|
|
|
|
# test feature lightwalletd-grpc-tests
|
2022-09-06 07:49:18 -07:00
|
|
|
prost = "0.11.0"
|
|
|
|
tonic = "0.8.0"
|
2021-08-19 16:16:16 -07:00
|
|
|
|
2022-02-14 17:44:33 -08:00
|
|
|
proptest = "0.10.1"
|
|
|
|
proptest-derive = "0.3.0"
|
2021-08-19 16:16:16 -07:00
|
|
|
|
2022-05-31 20:53:51 -07:00
|
|
|
# enable span traces and track caller in tests
|
2022-09-26 15:23:59 -07:00
|
|
|
color-eyre = { version = "0.6.2", features = ["issue-url"] }
|
2022-05-31 20:53:51 -07:00
|
|
|
|
2021-09-27 18:03:08 -07:00
|
|
|
zebra-chain = { path = "../zebra-chain", features = ["proptest-impl"] }
|
2022-10-24 16:39:00 -07:00
|
|
|
zebra-consensus = { path = "../zebra-consensus", features = ["proptest-impl"] }
|
2022-02-14 17:44:33 -08:00
|
|
|
zebra-network = { path = "../zebra-network", features = ["proptest-impl"] }
|
2021-10-01 07:44:25 -07:00
|
|
|
zebra-state = { path = "../zebra-state", features = ["proptest-impl"] }
|
2020-07-31 23:15:26 -07:00
|
|
|
zebra-test = { path = "../zebra-test" }
|