mirror of
https://github.com/logos-blockchain/logos-blockchain.git
synced 2026-03-03 02:03:10 +00:00
Co-authored-by: Antonio Antonino <antonio@status.im> Co-authored-by: Petar Radovic <petar.radovic@gmail.com>
332 lines
18 KiB
TOML
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" }
|