Files
pezkuwi-subxt/substrate/client/service/Cargo.toml
T
Sebastian Kunert 6c5a42a690 Introduce Notification block pinning limit (#2935)
While investigating some pruning issues I found some room for
improvement in the notification pin handling.

**Problem:** It was not possible to define an upper limit on
notification pins. The block pinning cache has a limit, but only handles
bodies and justifications.

After this PR, bookkeeping for notifications is managed in the pinning
worker. A limit can be defined in the worker. If that limit is crossed,
blocks that were pinned for that notification are unpinned, which now
affects the state as well as bodies and justifications. The pinned
blocks cache still has a limit, but should never be hit.

closes #19

---------

Co-authored-by: Bastian Köcher <git@kchr.de>
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
2024-02-26 11:45:30 +00:00

92 lines
3.5 KiB
TOML

[package]
name = "sc-service"
version = "0.35.0"
authors.workspace = true
edition.workspace = true
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
homepage = "https://substrate.io"
repository.workspace = true
description = "Substrate service. Starts a thread that spins up the network, client, and extrinsic pool. Manages communication between them."
readme = "README.md"
[lints]
workspace = true
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]
[features]
default = ["rocksdb"]
# The RocksDB feature activates the RocksDB database backend. If it is not activated, and you pass
# a path to a database, an error will be produced at runtime.
rocksdb = ["sc-client-db/rocksdb"]
# exposes the client type
test-helpers = []
runtime-benchmarks = [
"sc-client-db/runtime-benchmarks",
"sp-runtime/runtime-benchmarks",
]
[dependencies]
jsonrpsee = { version = "0.22", features = ["server"] }
thiserror = { workspace = true }
futures = "0.3.21"
rand = "0.8.5"
parking_lot = "0.12.1"
log = { workspace = true, default-features = true }
futures-timer = "3.0.1"
exit-future = "0.2.0"
pin-project = "1.0.12"
serde = { workspace = true, default-features = true }
serde_json = { workspace = true, default-features = true }
sc-keystore = { path = "../keystore" }
sp-runtime = { path = "../../primitives/runtime" }
sp-trie = { path = "../../primitives/trie" }
sp-externalities = { path = "../../primitives/externalities" }
sc-utils = { path = "../utils" }
sp-version = { path = "../../primitives/version" }
sp-blockchain = { path = "../../primitives/blockchain" }
sp-core = { path = "../../primitives/core" }
sp-keystore = { path = "../../primitives/keystore" }
sp-session = { path = "../../primitives/session" }
sp-state-machine = { path = "../../primitives/state-machine" }
sp-consensus = { path = "../../primitives/consensus/common" }
sc-consensus = { path = "../consensus/common" }
sp-storage = { path = "../../primitives/storage" }
sc-network = { path = "../network" }
sc-network-bitswap = { path = "../network/bitswap" }
sc-network-common = { path = "../network/common" }
sc-network-light = { path = "../network/light" }
sc-network-sync = { path = "../network/sync" }
sc-network-transactions = { path = "../network/transactions" }
sc-chain-spec = { path = "../chain-spec" }
sc-client-api = { path = "../api" }
sp-api = { path = "../../primitives/api" }
sc-client-db = { path = "../db", default-features = false }
codec = { package = "parity-scale-codec", version = "3.6.1" }
sc-executor = { path = "../executor" }
sc-transaction-pool = { path = "../transaction-pool" }
sp-transaction-pool = { path = "../../primitives/transaction-pool" }
sc-transaction-pool-api = { path = "../transaction-pool/api" }
sp-transaction-storage-proof = { path = "../../primitives/transaction-storage-proof" }
sc-rpc-server = { path = "../rpc-servers" }
sc-rpc = { path = "../rpc" }
sc-rpc-spec-v2 = { path = "../rpc-spec-v2" }
sc-informant = { path = "../informant" }
sc-telemetry = { path = "../telemetry" }
prometheus-endpoint = { package = "substrate-prometheus-endpoint", path = "../../utils/prometheus" }
sc-tracing = { path = "../tracing" }
sc-sysinfo = { path = "../sysinfo" }
tracing = "0.1.29"
tracing-futures = { version = "0.2.4" }
async-trait = "0.1.74"
tokio = { version = "1.22.0", features = ["parking_lot", "rt-multi-thread", "time"] }
tempfile = "3.1.0"
directories = "5.0.1"
static_init = "1.0.3"
schnellru = "0.2.1"
[dev-dependencies]
substrate-test-runtime-client = { path = "../../test-utils/runtime/client" }
substrate-test-runtime = { path = "../../test-utils/runtime" }