2019-08-29 14:46:54 -07:00
|
|
|
[package]
|
2023-01-09 19:48:03 -08:00
|
|
|
# Crate metadata
|
2019-08-29 14:46:54 -07:00
|
|
|
name = "zebrad"
|
2024-07-02 09:46:49 -07:00
|
|
|
version = "1.8.0"
|
2019-10-08 09:25:59 -07:00
|
|
|
authors = ["Zcash Foundation <zebra@zfnd.org>"]
|
2023-06-13 01:46:01 -07:00
|
|
|
description = "The Zcash Foundation's independent, consensus-compatible implementation of a Zcash node"
|
2019-10-08 09:25:59 -07:00
|
|
|
license = "MIT OR Apache-2.0"
|
2023-01-09 19:48:03 -08:00
|
|
|
repository = "https://github.com/ZcashFoundation/zebra"
|
|
|
|
|
2023-06-20 00:10:40 -07:00
|
|
|
readme = "../README.md"
|
|
|
|
homepage = "https://zfnd.org/zebra/"
|
|
|
|
# crates.io is limited to 5 keywords and categories
|
|
|
|
keywords = ["zebra", "zcash"]
|
|
|
|
# Must be one of <https://crates.io/category_slugs>
|
|
|
|
categories = ["command-line-utilities", "cryptography::cryptocurrencies"]
|
|
|
|
|
2023-01-09 19:48:03 -08:00
|
|
|
# Settings that impact compilation
|
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"
|
2023-01-09 19:48:03 -08:00
|
|
|
|
2023-06-09 03:04:21 -07:00
|
|
|
# Zebra is only supported on the latest stable Rust version. See the README for details.
|
|
|
|
# Any Zebra release can break compatibility with older Rust versions.
|
2024-05-22 08:14:22 -07:00
|
|
|
rust-version = "1.76"
|
2023-01-09 19:48:03 -08:00
|
|
|
|
|
|
|
# Settings that impact runtime behaviour
|
|
|
|
|
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
|
|
|
|
2023-06-20 00:10:40 -07:00
|
|
|
# `cargo release` settings
|
2023-06-21 05:38:35 -07:00
|
|
|
[package.metadata.release]
|
2023-06-20 00:10:40 -07:00
|
|
|
pre-release-replacements = [
|
2023-07-04 12:01:11 -07:00
|
|
|
{file="../book/src/user/install.md", search="git checkout [a-z0-9\\.-]+", replace="git checkout v{{version}}"},
|
|
|
|
{file="../book/src/user/install.md", search="--tag [a-z0-9\\.-]+", replace="--tag v{{version}}"},
|
|
|
|
{file="../book/src/user/docker.md", search="--branch [a-z0-9\\.-]+", replace="--branch v{{version}}"},
|
|
|
|
]
|
|
|
|
|
|
|
|
[package.metadata.docs.rs]
|
|
|
|
|
|
|
|
# Publish Zebra's supported production and developer features on docs.rs.
|
|
|
|
# (Except for the log level features, because there are a lot of them.)
|
|
|
|
#
|
|
|
|
# <https://docs.rs/about/metadata>
|
|
|
|
features = [
|
|
|
|
"default-release-binaries",
|
|
|
|
"filter-reload",
|
|
|
|
"flamegraph",
|
|
|
|
"journald",
|
|
|
|
"prometheus",
|
|
|
|
"sentry",
|
2023-06-20 00:10:40 -07:00
|
|
|
]
|
2023-06-13 01:46:01 -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.
|
2023-10-17 21:15:17 -07:00
|
|
|
default = ["release_max_level_info", "progress-bar", "getblocktemplate-rpcs"]
|
2022-05-10 22:00:14 -07:00
|
|
|
|
2023-06-25 22:44:19 -07:00
|
|
|
# Default features for official ZF binary release builds
|
|
|
|
default-release-binaries = ["default", "sentry"]
|
|
|
|
|
2022-11-02 20:25:01 -07:00
|
|
|
# Production features that activate extra dependencies, or extra features in dependencies
|
|
|
|
|
2024-07-16 05:25:31 -07:00
|
|
|
# Indexer RPC support
|
|
|
|
indexer-rpcs = ["zebra-rpc/indexer-rpcs"]
|
|
|
|
|
2023-10-17 21:15:17 -07:00
|
|
|
# Mining RPC support
|
2022-11-02 20:25:01 -07:00
|
|
|
getblocktemplate-rpcs = [
|
|
|
|
"zebra-rpc/getblocktemplate-rpcs",
|
2022-11-08 23:36:10 -08:00
|
|
|
"zebra-consensus/getblocktemplate-rpcs",
|
2022-11-02 20:25:01 -07:00
|
|
|
"zebra-state/getblocktemplate-rpcs",
|
|
|
|
"zebra-node-services/getblocktemplate-rpcs",
|
2022-11-08 23:36:10 -08:00
|
|
|
"zebra-chain/getblocktemplate-rpcs",
|
2022-11-02 20:25:01 -07:00
|
|
|
]
|
2022-06-16 12:56:40 -07:00
|
|
|
|
2024-01-11 06:41:01 -08:00
|
|
|
# Experimental internal miner support
|
|
|
|
internal-miner = [
|
|
|
|
"thread-priority",
|
|
|
|
"zebra-chain/internal-miner",
|
|
|
|
# TODO: move common code into zebra-chain or zebra-node-services and remove the RPC dependency
|
|
|
|
"zebra-rpc/internal-miner",
|
|
|
|
"zebra-rpc/getblocktemplate-rpcs",
|
|
|
|
]
|
|
|
|
|
2023-10-17 21:15:17 -07:00
|
|
|
# Experimental elasticsearch indexing
|
2023-03-13 14:13:30 -07:00
|
|
|
elasticsearch = [
|
|
|
|
"zebra-state/elasticsearch",
|
|
|
|
]
|
|
|
|
|
2023-10-17 21:15:17 -07:00
|
|
|
# Tracing and monitoring
|
2023-02-27 14:26:40 -08:00
|
|
|
sentry = ["dep:sentry"]
|
2022-06-16 12:56:40 -07:00
|
|
|
journald = ["tracing-journald"]
|
2024-07-23 08:44:31 -07:00
|
|
|
filter-reload = ["hyper", "http-body-util", "hyper-util", "bytes"]
|
2022-06-16 12:56:40 -07:00
|
|
|
|
2023-04-13 01:42:17 -07:00
|
|
|
progress-bar = [
|
|
|
|
"howudoin",
|
|
|
|
"indicatif",
|
|
|
|
"zebra-consensus/progress-bar",
|
|
|
|
"zebra-state/progress-bar",
|
|
|
|
"zebra-network/progress-bar",
|
|
|
|
]
|
|
|
|
|
2022-06-16 12:56:40 -07:00
|
|
|
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
|
2024-07-10 11:49:12 -07:00
|
|
|
release_max_level_warn = ["tracing/release_max_level_warn"]
|
2022-05-28 04:08:01 -07:00
|
|
|
release_max_level_info = ["tracing/release_max_level_info", "log/release_max_level_info"]
|
2024-07-10 11:49:12 -07:00
|
|
|
release_max_level_debug = ["tracing/release_max_level_debug"]
|
2022-05-28 04:08:01 -07:00
|
|
|
|
2024-07-10 11:49:12 -07:00
|
|
|
max_level_warn = ["tracing/max_level_warn"]
|
|
|
|
max_level_info = ["tracing/max_level_info"]
|
2022-05-28 04:08:01 -07:00
|
|
|
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
|
2023-10-17 21:15:17 -07:00
|
|
|
flamegraph = ["tracing-flame", "inferno"]
|
|
|
|
|
2022-11-08 23:36:10 -08:00
|
|
|
proptest-impl = [
|
|
|
|
"proptest",
|
|
|
|
"proptest-derive",
|
|
|
|
"zebra-consensus/proptest-impl",
|
|
|
|
"zebra-state/proptest-impl",
|
|
|
|
"zebra-network/proptest-impl",
|
|
|
|
"zebra-chain/proptest-impl",
|
|
|
|
]
|
2022-03-30 11:23:55 -07:00
|
|
|
|
2023-04-26 21:39:43 -07:00
|
|
|
# Build the zebra-checkpoints utility for checkpoint generation tests
|
|
|
|
zebra-checkpoints = [
|
|
|
|
"zebra-utils/zebra-checkpoints",
|
|
|
|
]
|
|
|
|
|
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]
|
2024-07-02 09:46:49 -07:00
|
|
|
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.38" }
|
|
|
|
zebra-consensus = { path = "../zebra-consensus", version = "1.0.0-beta.38" }
|
|
|
|
zebra-network = { path = "../zebra-network", version = "1.0.0-beta.38" }
|
2024-07-09 07:15:47 -07:00
|
|
|
zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.38", features = ["rpc-client"] }
|
2024-07-02 09:46:49 -07:00
|
|
|
zebra-rpc = { path = "../zebra-rpc", version = "1.0.0-beta.38" }
|
|
|
|
zebra-state = { path = "../zebra-state", version = "1.0.0-beta.38" }
|
2023-07-04 12:01:11 -07:00
|
|
|
|
2023-06-13 01:46:01 -07:00
|
|
|
# Required for crates.io publishing, but it's only used in tests
|
2024-07-02 09:46:49 -07:00
|
|
|
zebra-utils = { path = "../zebra-utils", version = "1.0.0-beta.38", optional = true }
|
2020-07-14 10:17:05 -07:00
|
|
|
|
2023-06-06 23:03:42 -07:00
|
|
|
abscissa_core = "0.7.0"
|
2024-07-29 17:15:26 -07:00
|
|
|
clap = { version = "4.5.11", features = ["cargo"] }
|
2024-04-19 16:23:57 -07:00
|
|
|
chrono = { version = "0.4.38", default-features = false, features = ["clock", "std"] }
|
2022-06-13 23:21:24 -07:00
|
|
|
humantime-serde = "1.1.1"
|
2024-04-16 19:20:28 -07:00
|
|
|
indexmap = "2.2.6"
|
2021-11-19 15:02:56 -08:00
|
|
|
lazy_static = "1.4.0"
|
2024-05-13 17:49:21 -07:00
|
|
|
semver = "1.0.23"
|
2024-07-10 11:49:12 -07:00
|
|
|
serde = { version = "1.0.204", features = ["serde_derive"] }
|
2024-07-29 17:15:26 -07:00
|
|
|
toml = "0.8.16"
|
2020-07-14 10:17:05 -07:00
|
|
|
|
2024-01-01 17:26:54 -08:00
|
|
|
futures = "0.3.30"
|
2024-04-16 19:20:28 -07:00
|
|
|
rayon = "1.10.0"
|
2024-07-29 17:15:26 -07:00
|
|
|
tokio = { version = "1.39.2", features = ["time", "rt-multi-thread", "macros", "tracing", "signal"] }
|
2024-04-16 19:20:28 -07:00
|
|
|
tokio-stream = { version = "0.1.15", features = ["time"] }
|
2022-06-21 10:12:19 -07:00
|
|
|
tower = { version = "0.4.13", features = ["hedge", "limit"] }
|
2024-03-21 11:23:41 -07:00
|
|
|
pin-project = "1.1.5"
|
2019-08-29 14:46:54 -07:00
|
|
|
|
2024-03-21 11:23:41 -07:00
|
|
|
color-eyre = { version = "0.6.3", 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.
|
2024-07-23 08:44:31 -07:00
|
|
|
tinyvec = { version = "1.8.0", features = ["rustc_1_55"] }
|
2022-08-03 16:42:50 -07:00
|
|
|
|
2024-07-26 13:19:38 -07:00
|
|
|
thiserror = "1.0.63"
|
2020-09-09 14:45:05 -07:00
|
|
|
|
2023-11-26 19:26:29 -08:00
|
|
|
tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }
|
|
|
|
tracing-appender = "0.2.3"
|
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"
|
2023-10-16 13:13:38 -07:00
|
|
|
tracing = "0.1.39"
|
2020-09-09 14:45:05 -07:00
|
|
|
|
2024-07-10 11:49:12 -07:00
|
|
|
metrics = "0.23.0"
|
2022-05-31 20:53:51 -07:00
|
|
|
|
2023-05-02 10:11:36 -07:00
|
|
|
dirs = "5.0.1"
|
2020-11-30 17:08:55 -08:00
|
|
|
atty = "0.2.14"
|
2020-02-14 13:38:33 -08:00
|
|
|
|
2024-02-14 04:24:33 -08:00
|
|
|
num-integer = "0.1.46"
|
2023-06-27 08:32:30 -07:00
|
|
|
rand = "0.8.5"
|
2021-10-26 17:21:19 -07:00
|
|
|
|
2024-01-11 06:41:01 -08:00
|
|
|
# prod feature internal-miner
|
2024-04-24 06:54:00 -07:00
|
|
|
thread-priority = { version = "1.0.0", optional = true }
|
2024-01-11 06:41:01 -08:00
|
|
|
|
2022-06-16 12:56:40 -07:00
|
|
|
# prod feature sentry
|
2024-02-06 19:18:52 -08:00
|
|
|
sentry = { version = "0.32.2", default-features = false, features = ["backtrace", "contexts", "reqwest", "rustls", "tracing"], 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 }
|
2024-07-23 08:44:31 -07:00
|
|
|
inferno = { version = "0.11.20", 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
|
2024-07-23 08:44:31 -07:00
|
|
|
hyper = { version = "1.3.1", features = ["http1", "http2", "server"], optional = true }
|
|
|
|
http-body-util = { version = "0.1.2", optional = true }
|
|
|
|
hyper-util = { version = "0.1.6", optional = true }
|
|
|
|
bytes = { version = "1.6.1", optional = true }
|
2022-06-16 12:56:40 -07:00
|
|
|
|
|
|
|
# prod feature prometheus
|
2024-07-23 08:44:31 -07:00
|
|
|
metrics-exporter-prometheus = { version = "0.15.3", 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
|
2024-07-10 11:49:12 -07:00
|
|
|
log = "0.4.22"
|
2022-05-27 12:49:51 -07:00
|
|
|
|
2023-04-13 01:42:17 -07:00
|
|
|
# prod feature progress-bar
|
|
|
|
howudoin = { version = "0.1.2", features = ["term-line"], optional = true }
|
2024-02-14 04:24:33 -08:00
|
|
|
indicatif = { version = "0.17.8", optional = true }
|
2023-04-13 01:42:17 -07:00
|
|
|
|
2022-05-10 22:00:14 -07:00
|
|
|
# test feature proptest-impl
|
2023-11-14 17:03:57 -08:00
|
|
|
proptest = { version = "1.4.0", optional = true }
|
2024-07-10 11:49:12 -07:00
|
|
|
proptest-derive = { version = "0.5.0", optional = true }
|
2022-03-30 11:23:55 -07:00
|
|
|
|
2022-06-14 23:43:20 -07:00
|
|
|
# test feature tokio-console
|
2024-07-29 17:15:26 -07:00
|
|
|
console-subscriber = { version = "0.4.0", optional = true }
|
2022-06-14 23:43:20 -07:00
|
|
|
|
2020-12-01 12:13:20 -08:00
|
|
|
[build-dependencies]
|
2024-07-23 08:44:31 -07:00
|
|
|
vergen = { version = "8.3.2", default-features = false, features = ["cargo", "git", "git2", "rustc"] }
|
2020-12-01 12:13:20 -08:00
|
|
|
|
2022-05-11 07:06:58 -07:00
|
|
|
# test feature lightwalletd-grpc-tests
|
2024-07-26 13:19:38 -07:00
|
|
|
tonic-build = { version = "0.12.1", optional = true }
|
2022-05-11 07:06:58 -07:00
|
|
|
|
2019-12-20 11:20:04 -08:00
|
|
|
[dev-dependencies]
|
2023-06-06 23:03:42 -07:00
|
|
|
abscissa_core = { version = "0.7.0", features = ["testing"] }
|
2022-04-25 22:32:27 -07:00
|
|
|
hex = "0.4.3"
|
2023-09-12 16:59:56 -07:00
|
|
|
hex-literal = "0.4.1"
|
2023-01-16 20:03:40 -08:00
|
|
|
jsonrpc-core = "18.0.0"
|
2023-06-06 04:14:53 -07:00
|
|
|
once_cell = "1.18.0"
|
2024-04-16 19:20:28 -07:00
|
|
|
regex = "1.10.4"
|
2024-05-20 12:50:59 -07:00
|
|
|
insta = { version = "1.39.0", features = ["json"] }
|
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
|
2024-07-29 17:15:26 -07:00
|
|
|
serde_json = { version = "1.0.121", features = ["preserve_order"] }
|
2024-03-21 11:23:41 -07:00
|
|
|
tempfile = "3.10.1"
|
2022-06-14 23:43:20 -07:00
|
|
|
|
2024-07-23 08:44:31 -07:00
|
|
|
hyper = { version = "1.3.1", features = ["http1", "http2", "server"]}
|
2023-04-28 07:13:21 -07:00
|
|
|
tracing-test = { version = "0.2.4", features = ["no-env-filter"] }
|
|
|
|
|
2024-07-29 17:15:26 -07:00
|
|
|
tokio = { version = "1.39.2", features = ["full", "tracing", "test-util"] }
|
2024-04-16 19:20:28 -07:00
|
|
|
tokio-stream = "0.1.15"
|
2022-05-11 07:06:58 -07:00
|
|
|
|
|
|
|
# test feature lightwalletd-grpc-tests
|
2024-07-23 08:44:31 -07:00
|
|
|
prost = "0.13.1"
|
2024-07-26 13:19:38 -07:00
|
|
|
tonic = "0.12.1"
|
2021-08-19 16:16:16 -07:00
|
|
|
|
2023-11-14 17:03:57 -08:00
|
|
|
proptest = "1.4.0"
|
2024-07-10 11:49:12 -07:00
|
|
|
proptest-derive = "0.5.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
|
2024-03-21 11:23:41 -07:00
|
|
|
color-eyre = { version = "0.6.3" }
|
2022-05-31 20:53:51 -07:00
|
|
|
|
2024-07-02 09:46:49 -07:00
|
|
|
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.38", features = ["proptest-impl"] }
|
|
|
|
zebra-consensus = { path = "../zebra-consensus", version = "1.0.0-beta.38", features = ["proptest-impl"] }
|
|
|
|
zebra-network = { path = "../zebra-network", version = "1.0.0-beta.38", features = ["proptest-impl"] }
|
|
|
|
zebra-state = { path = "../zebra-state", version = "1.0.0-beta.38", features = ["proptest-impl"] }
|
2023-04-26 16:35:53 -07:00
|
|
|
|
2024-07-02 09:46:49 -07:00
|
|
|
zebra-test = { path = "../zebra-test", version = "1.0.0-beta.38" }
|
|
|
|
zebra-grpc = { path = "../zebra-grpc", version = "0.1.0-alpha.5" }
|
2023-04-26 21:39:43 -07:00
|
|
|
|
|
|
|
# Used by the checkpoint generation tests via the zebra-checkpoints feature
|
|
|
|
# (the binaries in this crate won't be built unless their features are enabled).
|
|
|
|
#
|
|
|
|
# Currently, we use zebra-utils/tests/build_utils_for_zebrad_tests.rs as a workaround
|
|
|
|
# to build the zebra-checkpoints utility for the zebrad acceptance tests.
|
|
|
|
#
|
|
|
|
# When `-Z bindeps` is stabilised, enable this binary dependency instead:
|
|
|
|
# https://github.com/rust-lang/cargo/issues/9096
|
|
|
|
# zebra-utils { path = "../zebra-utils", artifact = "bin:zebra-checkpoints" }
|
2024-07-02 09:46:49 -07:00
|
|
|
zebra-utils = { path = "../zebra-utils", version = "1.0.0-beta.38" }
|
2024-06-11 18:04:30 -07:00
|
|
|
|
|
|
|
[lints.rust]
|
change(consensus): Add lockbox funding stream (#8694)
* Addresses clippy lints
* checks network magic and returns early from `is_regtest()`
* Moves `subsidy.rs` to `zebra-chain`, refactors funding streams into structs, splits them into pre/post NU6 funding streams, and adds them as a field on `testnet::Parameters`
* Replaces Vec with HashMap, adds `ConfiguredFundingStreams` type and conversion logic with constraints.
Minor refactors
* Empties recipients list
* Adds a comment on num_addresses calculation being invalid for configured Testnets, but that being okay since configured testnet parameters are checked when they're being built
* Documentation fixes, minor cleanup, renames a test, adds TODOs, and fixes test logic
* Removes unnecessary `ParameterSubsidy` impl for &Network, adds docs and TODOs
* Adds a "deferred" FundingStreamReceiver, adds a post-NU6 funding streams, updates the `miner_fees_are_valid()` and `subsidy_is_valid()` functions to check that the deferred pool contribution is valid and that there are no unclaimed block subsidies after NU6 activation, and adds some TODOs
* adds `lockbox_input_value()` fn
* Adds TODOs for linking to relevant ZIPs and updating height ranges
* Adds `nu6_lockbox_funding_stream` acceptance test
* updates funding stream values test to check post-NU6 funding streams too, adds Mainnet/Testnet NU6 activation heights, fixes lints/compilation issue
* Reverts Mainnet/Testnet NU6 activation height definitions, updates `test_funding_stream_values()` to use a configured testnet with the post-NU6 Mainnet funding streams height range
* reverts unnecessary refactor
* appease clippy
* Adds a test for `lockbox_input_value()`
* Applies suggestions from code review
* Fixes potential panic
* Fixes bad merge
* Update zebra-chain/src/parameters/network_upgrade.rs
* Updates acceptance test to check that invalid blocks are rejected
* Checks that the original valid block template at height 2 is accepted as a block submission
* Reverts changes for coinbase should balance exactly ZIP
* updates test name
* Updates deferred pool funding stream name to "Lockbox", moves post-NU6 height ranges to constants, updates TODO
* Updates `get_block_subsidy()` RPC method to exclude lockbox funding stream from `fundingstreams` field
* Adds a TODO for updating `FundingStreamReceiver::name()` method docs
* Updates `FundingStreamRecipient::new()` to accept an iterator of items instead of an option of an iterator, updates a comment quoting the coinbase transaction balance consensus rule to note that the current code is inconsistent with the protocol spec, adds a TODO for updating the quote there once the protocol spec has been updated.
* Uses FPF Testnet address for post-NU6 testnet funding streams
* Updates the NU6 consensus branch id
---------
Co-authored-by: Pili Guerra <mpguerra@users.noreply.github.com>
2024-08-01 16:22:36 -07:00
|
|
|
# TODO: Remove 'cfg(zcash_unstable, values("nu6"))' once it's no longer needed for NU6.
|
|
|
|
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tokio_unstable)', 'cfg(zcash_unstable, values("nu6"))'] }
|