[package]
name = "blvm-protocol"
version = "0.1.10"
edition = "2021"
authors = ["Bitcoin Commons Team"]
description = "Bitcoin Commons BLVM: Bitcoin protocol abstraction layer for multiple variants and evolution"
license = "MIT"
repository = "https://github.com/BTCDecoded/blvm-protocol"
homepage = "https://btcdecoded.org"
documentation = "https://docs.rs/blvm-protocol"
keywords = ["bitcoin", "protocol", "blockchain", "network", "consensus"]
categories = ["cryptography::cryptocurrencies", "network-programming"]
rust-version = "1.82"
include = ["Cargo.toml", "src/**"]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[dependencies]
blvm-consensus = "0.1.16"
blvm-spec-lock = { version = ">=0.1, <1", default-features = false, optional = true }
serde = { version = "=1.0.228", features = ["derive"] }
serde_json = "=1.0.108"
bincode = "=1.3.3"
serde_bytes = "=0.11.19"
tracing = "=0.1.41"
anyhow = "=1.0.93"
thiserror = "=1.0.69"
sha2 = "=0.10.9"
ripemd = "=0.1.3"
blvm-secp256k1 = { version = ">=0.1, <1" }
hex = "=0.4.3"
chacha20poly1305 = { version = "=0.10.1", optional = true }
aead = { version = "=0.5.2", optional = true }
getrandom = { version = "=0.2", optional = true }
hkdf = { version = "=0.12.4", optional = true }
bech32 = "=0.9"
sparse-merkle-tree = { version = "=0.6", optional = true }
rand = { version = "=0.8.5", optional = true }
lru = { version = "=0.12", optional = true }
rayon = { version = "=1.10", optional = true }
[dependencies.smallvec]
version = "=1.15.1"
optional = true
features = ["serde"]
[features]
production = ["blvm-consensus/production", "dep:smallvec", "dep:lru", "dep:rayon"]
utxo-commitments = ["sparse-merkle-tree", "dep:rand", "dep:blvm-spec-lock"]
ctv = ["blvm-consensus/ctv"]
profile = ["blvm-consensus/profile"]
benchmarking = ["blvm-consensus/benchmarking"]
bip324 = ["dep:chacha20poly1305", "dep:aead", "dep:getrandom", "dep:hkdf"]
utxo-proof-verification = []
parallel-verification = ["dep:rayon"]
test-utils = []
erlay = []
dandelion = []
protocol-verification = ["dep:blvm-spec-lock"]
[dev-dependencies]
blvm-primitives = { version = ">=0.1, <1", default-features = false }
blvm-secp256k1 = { version = ">=0.1, <1" }
[profile.release-fast]
inherits = "release"
opt-level = 2