logos-blockchain/Cargo.toml
gusto 3c249f67d1
feat(testnet): L2 sequencer and archiver example (#2001)
Co-authored-by: Antonio Antonino <antonio@status.im>
Co-authored-by: Petar Radovic <petar.radovic@gmail.com>
2026-01-12 18:15:22 +02:00

332 lines
18 KiB
TOML

[workspace.package]
categories = ["cryptography", "cryptography::cryptocurrencies", "security"]
description = "Nomos blockchain workspace crates. For more information please visit https://nomos.tech/."
edition = "2024"
keywords = ["blockchain", "privacy"]
license = "MIT or Apache-2.0"
readme = "README.md"
repository = "https://github.com/logos-co/nomos"
version = "0.1.0"
[workspace]
# Make sure any excluded crates are still clipped in our CI. Also, make sure they use the same Clippy and rustc lints we specify in this file down below.
members = [
"consensus/cryptarchia-engine",
"consensus/cryptarchia-sync",
"ledger/nomos-ledger",
"mmr",
"nodes/api-common",
"nodes/nomos-executor/executor",
"nodes/nomos-executor/http-client",
"nodes/nomos-node/http-client",
"nodes/nomos-node/node",
"nomos-blend/core",
"nomos-blend/crypto",
"nomos-blend/message",
"nomos-blend/network",
"nomos-blend/proofs",
"nomos-blend/scheduling",
"nomos-bundler",
"nomos-c",
"nomos-cli",
"nomos-core/chain-defs",
"nomos-da/kzgrs",
"nomos-da/kzgrs-backend",
"nomos-da/network/core",
"nomos-da/network/messages",
"nomos-da/network/subnetworks-assignations",
"nomos-kms/keys",
"nomos-kms/macros",
"nomos-libp2p",
"nomos-services/api",
"nomos-services/blend",
"nomos-services/chain/broadcast-service",
"nomos-services/chain/chain-common",
"nomos-services/chain/chain-leader",
"nomos-services/chain/chain-network",
"nomos-services/chain/chain-service",
"nomos-services/data-availability/dispersal",
"nomos-services/data-availability/network",
"nomos-services/data-availability/sampling",
"nomos-services/data-availability/verifier",
"nomos-services/key-management-system",
"nomos-services/network",
"nomos-services/sdp",
"nomos-services/storage",
"nomos-services/system-sig",
"nomos-services/time",
"nomos-services/tracing",
"nomos-services/tx-service",
"nomos-services/utils",
"nomos-services/wallet",
"nomos-tracing",
"nomos-utils",
"testnet/cfgsync",
"testnet/l2-sequencer-archival-demo/archiver",
"testnet/l2-sequencer-archival-demo/sequencer",
"tests",
"utxotree",
"wallet",
"wallet-http-client",
"zk/circuits/prover",
"zk/circuits/utils",
"zk/circuits/verifier",
"zk/circuits/witness-generator",
"zk/groth16",
"zk/poseidon2",
"zk/proofs/poc",
"zk/proofs/pol",
"zk/proofs/poq",
"zk/proofs/zksign",
]
resolver = "2"
[workspace.dependencies]
# Internal
archiver = { default-features = false, path = "./testnet/l2-sequencer-archival-demo/archiver" }
broadcast-service = { default-features = false, path = "./nomos-services/chain/broadcast-service" }
bundler = { default-features = false, path = "./nomos-bundler" }
cfgsync = { default-features = false, path = "./testnet/cfgsync" }
chain-common = { default-features = false, path = "./nomos-services/chain/chain-common" }
chain-leader = { default-features = false, path = "./nomos-services/chain/chain-leader" }
chain-network = { default-features = false, path = "./nomos-services/chain/chain-network" }
chain-service = { default-features = false, path = "./nomos-services/chain/chain-service" }
circuits-prover = { default-features = false, path = "./zk/circuits/prover" }
circuits-utils = { default-features = false, path = "./zk/circuits/utils" }
circuits-verifier = { default-features = false, path = "./zk/circuits/verifier" }
common-http-client = { default-features = false, path = "./nodes/nomos-node/http-client" }
cryptarchia-engine = { default-features = false, path = "./consensus/cryptarchia-engine" }
cryptarchia-sync = { default-features = false, path = "./consensus/cryptarchia-sync" }
demo-sequencer = { default-features = false, path = "./testnet/l2-sequencer-archival-demo/sequencer" }
executor-http-client = { default-features = false, path = "./nodes/nomos-executor/http-client" }
groth16 = { default-features = false, path = "./zk/groth16" }
key-management-system-keys = { default-features = false, path = "./nomos-kms/keys" }
key-management-system-macros = { default-features = false, path = "./nomos-kms/macros" }
key-management-system-service = { default-features = false, path = "./nomos-services/key-management-system" }
kzgrs = { default-features = false, path = "./nomos-da/kzgrs" }
kzgrs-backend = { default-features = false, path = "./nomos-da/kzgrs-backend" }
mmr = { default-features = false, path = "./mmr" }
nomos-api = { default-features = false, path = "./nomos-services/api" }
nomos-blend = { default-features = false, path = "./nomos-blend/core" }
nomos-blend-crypto = { default-features = false, path = "./nomos-blend/crypto" }
nomos-blend-message = { default-features = false, path = "./nomos-blend/message" }
nomos-blend-network = { default-features = false, path = "./nomos-blend/network" }
nomos-blend-proofs = { default-features = false, path = "./nomos-blend/proofs" }
nomos-blend-scheduling = { default-features = false, path = "./nomos-blend/scheduling" }
nomos-blend-service = { default-features = false, path = "./nomos-services/blend" }
nomos-cli = { default-features = false, path = "./nomos-cli" }
nomos-core = { default-features = false, path = "./nomos-core/chain-defs" }
nomos-da-dispersal = { default-features = false, path = "./nomos-services/data-availability/dispersal" }
nomos-da-messages = { default-features = false, path = "./nomos-da/network/messages" }
nomos-da-network-core = { default-features = false, path = "./nomos-da/network/core" }
nomos-da-network-service = { default-features = false, path = "./nomos-services/data-availability/network" }
nomos-da-sampling = { default-features = false, path = "./nomos-services/data-availability/sampling" }
nomos-da-verifier = { default-features = false, path = "./nomos-services/data-availability/verifier" }
nomos-executor = { default-features = false, path = "./nodes/nomos-executor/executor" }
nomos-http-api-common = { default-features = false, path = "./nodes/api-common" }
nomos-ledger = { default-features = false, path = "./ledger/nomos-ledger" }
nomos-libp2p = { default-features = false, path = "./nomos-libp2p" }
nomos-mantle-core = { default-features = false, path = "./nomos-mantle" }
nomos-network = { default-features = false, path = "./nomos-services/network" }
nomos-node = { default-features = false, path = "./nodes/nomos-node/node" }
nomos-sdp = { default-features = false, path = "./nomos-services/sdp" }
nomos-storage = { default-features = false, path = "./nomos-services/storage" }
nomos-system-sig = { default-features = false, path = "./nomos-services/system-sig" }
nomos-time = { default-features = false, path = "./nomos-services/time" }
nomos-tracing = { default-features = false, path = "./nomos-tracing" }
nomos-tracing-service = { default-features = false, path = "./nomos-services/tracing" }
nomos-utils = { default-features = false, path = "./nomos-utils" }
nomos-wallet = { default-features = false, path = "./nomos-services/wallet" }
poc = { default-features = false, path = "./zk/proofs/poc" }
pol = { default-features = false, path = "./zk/proofs/pol" }
poq = { default-features = false, path = "zk/proofs/poq" }
poseidon2 = { default-features = false, path = "./zk/poseidon2" }
services-utils = { default-features = false, path = "./nomos-services/utils" }
subnetworks-assignations = { default-features = false, path = "./nomos-da/network/subnetworks-assignations" }
tests = { default-features = false, path = "./tests" }
tx-service = { default-features = false, path = "./nomos-services/tx-service" }
utxotree = { default-features = false, path = "./utxotree" }
wallet = { default-features = false, path = "./wallet" }
wallet-http-client = { default-features = false, path = "./wallet-http-client" }
witness-generator = { default-features = false, path = "zk/circuits/witness-generator" }
zksign = { default-features = false, path = "./zk/proofs/zksign" }
# External
blake2 = { default-features = false, version = "0.10" }
bytes = { default-features = false, version = "1.3" }
cached = { default-features = false, version = "0.55.1" }
ed25519-dalek = { default-features = false, version = "2" }
fork_stream = { default-features = false, version = "0.1.0" }
hex = { default-features = false, version = "0.4" }
libp2p = { default-features = false, version = "0.55" }
libp2p-stream = { default-features = false, version = "0.3.0-alpha" }
overwatch = { default-features = false, git = "https://github.com/logos-co/Overwatch", rev = "f5a9902" }
overwatch-derive = { default-features = false, git = "https://github.com/logos-co/Overwatch", rev = "f5a9902" }
rand = { default-features = false, version = "0.8" }
reqwest = { default-features = false, version = "0.12" }
serde = { default-features = false, version = "1.0" }
serde-big-array = { default-features = false, version = "0.5" }
serde_ignored = { default-features = false, version = "0.1" }
serde_json = { default-features = false, version = "1.0" }
serde_with = { default-features = false, version = "3.14.0" }
serde_yaml = { default-features = false, version = "0.9.33" }
subtle = { default-features = false, version = "2.6.1" }
tempfile = { default-features = false, version = "3" }
thiserror = { default-features = false, version = "2.0" }
tokio = { default-features = false, version = "1" }
tracing = { default-features = false, version = "0.1" }
utoipa = { default-features = false, version = "4.0" }
utoipa-swagger-ui = { default-features = false, version = "7.0" }
x25519-dalek = { default-features = false, version = "2" }
zeroize = { default-features = false, version = "1" }
[workspace.lints.clippy]
# Cargo and allowed cargo warnings (new lints will warn by default)
cargo = { level = "warn", priority = -1 }
# TODO: We should tackle this lint at some point, to reduce dependencies duplication, reduce compilation times and bring down our binary size.
multiple_crate_versions = { level = "allow" }
# Nursery and allowed nursery warnings (new lints will warn by default)
nursery = { level = "warn", priority = -1 }
# Pedantic and allowed pedantic warnings (new lints will warn by default)
pedantic = { level = "warn", priority = -1 }
similar_names = { level = "allow" }
# Restriction and allowed restriction warnings (new lints will warn by default)
restriction = { level = "warn", priority = -1 }
absolute_paths = { level = "allow" }
alloc_instead_of_core = { level = "allow" }
arbitrary_source_item_ordering = { level = "allow" }
big_endian_bytes = { level = "allow" }
blanket_clippy_restriction_lints = { level = "allow" }
decimal_literal_representation = { level = "allow" }
default_numeric_fallback = { level = "allow" }
deref_by_slicing = { level = "allow" }
else_if_without_else = { level = "allow" }
exhaustive_enums = { level = "allow" }
exhaustive_structs = { level = "allow" }
exit = { level = "allow" }
expect_used = { level = "allow" }
field_scoped_visibility_modifiers = { level = "allow" }
float_arithmetic = { level = "allow" }
get_unwrap = { level = "allow" }
host_endian_bytes = { level = "allow" }
implicit_return = { level = "allow" }
integer_division_remainder_used = { level = "allow" }
iter_over_hash_type = { level = "allow" }
let_underscore_must_use = { level = "allow" }
let_underscore_untyped = { level = "allow" }
little_endian_bytes = { level = "allow" }
map_err_ignore = { level = "allow" }
min_ident_chars = { level = "allow" }
missing_asserts_for_indexing = { level = "allow" }
missing_docs_in_private_items = { level = "allow" }
missing_inline_in_public_items = { level = "allow" }
missing_trait_methods = { level = "allow" }
mixed_read_write_in_expression = { level = "allow" }
mod_module_files = { level = "allow" }
module_name_repetitions = { level = "allow" }
modulo_arithmetic = { level = "allow" }
panic = { level = "allow" }
panic_in_result_fn = { level = "allow" }
partial_pub_fields = { level = "allow" }
print_stderr = { level = "allow" }
print_stdout = { level = "allow" }
pub_use = { level = "allow" }
pub_with_shorthand = { level = "allow" }
question_mark_used = { level = "allow" }
self_named_module_files = { level = "allow" }
semicolon_inside_block = { level = "allow" }
single_call_fn = { level = "allow" }
single_char_lifetime_names = { level = "allow" }
std_instead_of_alloc = { level = "allow" }
std_instead_of_core = { level = "allow" }
struct_field_names = { level = "allow" }
unseparated_literal_suffix = { level = "allow" }
use_debug = { level = "allow" }
wildcard_enum_match_arm = { level = "allow" }
# TODO: Address these lints at some point. To allow them, move them to the section where they belong (e.g., pedantic), and keep allowing them. To enforce them, since all lints are "warn" by default, just remove them from this list.
arithmetic_side_effects = { level = "allow" }
as_conversions = { level = "allow" }
as_pointer_underscore = { level = "allow" }
as_underscore = { level = "allow" }
assertions_on_result_states = { level = "allow" }
cast_possible_truncation = { level = "allow" }
cast_possible_wrap = { level = "allow" }
cast_precision_loss = { level = "allow" }
cast_sign_loss = { level = "allow" }
error_impl_error = { level = "allow" }
impl_trait_in_params = { level = "allow" }
indexing_slicing = { level = "allow" }
infinite_loop = { level = "allow" }
integer_division = { level = "allow" }
large_stack_frames = { level = "allow" }
missing_assert_message = { level = "allow" }
missing_errors_doc = { level = "allow" }
missing_panics_doc = { level = "allow" }
pattern_type_mismatch = { level = "allow" }
redundant_test_prefix = { level = "allow" }
ref_patterns = { level = "allow" }
renamed_function_params = { level = "allow" }
same_name_method = { level = "allow" }
shadow_reuse = { level = "allow" }
shadow_same = { level = "allow" }
shadow_unrelated = { level = "allow" }
tests_outside_test_module = { level = "allow" }
todo = { level = "allow" }
unchecked_time_subtraction = { level = "allow" }
unimplemented = { level = "allow" }
unreachable = { level = "allow" }
unwrap_in_result = { level = "allow" }
unwrap_used = { level = "allow" }
[workspace.lints.rust]
# Explicitly allowed lints
unused_crate_dependencies = { level = "allow" } # Too many false positives especially around benchmarking and binaries, which do not have their own `dependencies` section yet. Plus, we have cargo-machete checking unused deps.
unused_results = { level = "allow" } # We have Clippy lints to warn on unused `must_use` results. This is too pedantic as it complains on EVERY unused result.
# Lints which are allow-by-default but have been changed to "warn"
ambiguous_negative_literals = { level = "warn" }
closure_returning_async_block = { level = "warn" }
deref_into_dyn_supertrait = { level = "warn" }
impl_trait_redundant_captures = { level = "warn" }
let_underscore_drop = { level = "warn" }
macro_use_extern_crate = { level = "warn" }
missing_unsafe_on_extern = { level = "warn" }
redundant_imports = { level = "warn" }
redundant_lifetimes = { level = "warn" }
single_use_lifetimes = { level = "warn" }
tail_expr_drop_order = { level = "warn" }
trivial_numeric_casts = { level = "warn" }
unit_bindings = { level = "warn" }
unsafe_attr_outside_unsafe = { level = "warn" }
unsafe_op_in_unsafe_fn = { level = "warn" }
unstable_features = { level = "warn" }
unused_extern_crates = { level = "warn" }
unused_import_braces = { level = "warn" }
unused_lifetimes = { level = "warn" }
unused_macro_rules = { level = "warn" }
unused_qualifications = { level = "warn" }
# TODO: Address these allow-by-default Rustc lints at some point. To allow them, move them to the list of explicitly allowed lints. To enforce them, move them to the list of explicitly warned ones.
absolute_paths_not_starting_with_crate = { level = "allow" }
elided_lifetimes_in_paths = { level = "allow" }
ffi_unwind_calls = { level = "allow" }
impl_trait_overcaptures = { level = "allow" }
linker_messages = { level = "allow" }
missing_copy_implementations = { level = "allow" }
missing_debug_implementations = { level = "allow" }
missing_docs = { level = "allow" }
trivial_casts = { level = "allow" }
unreachable_pub = { level = "allow" }
unsafe_code = { level = "allow" }
variant_size_differences = { level = "allow" }