[[bin]] name = "ghost" path = "src/main.rs" [package] name = "ghost-node" description = "Implementation of a Ghost Node in Rust based on the Substrate Network" readme = "README.md" default-run = "ghost" license.workspace = true authors.workspace = true version.workspace = true edition.workspace = true repository.workspace = true homepage.workspace = true [workspace.package] license = "GPL-3.0-only" authors = ["571nky", "57r37ch", "f4750"] version = "0.7.178" edition = "2021" homepage = "https://ghostchain.io" repository = "https://git.ghostchain.io/ghostchain/ghost-node" [workspace.dependencies] # External dependencies rand = { version = "0.8.5" } lazy_static = { version = "1.4.0" } hex-literal = { version = "0.4.1" } is_executable = { version = "1.0.1" } primitive-types = { version = "0.12.0" } array-bytes = { version = "6.2.2" } itertools = { version = "0.11" } static_assertions = { version = "1.1.0" } clap = { version = "4.5.3" } separator = { version = "0.4.1" } tokio = { version = "1.36.0" } smallvec = { version = "1.13.1" } futures = { version = "0.3" } futures-timer = { version = "3.0.2" } thiserror = { version = "1.0" } jsonrpsee = { version = "0.22.3" } pin-project-lite = { version = "0.2" } tracing-subscriber = { version = "0.3.18" } hyper = { version = "0.14.29" } once_cell = { version = "1.19" } prometheus = { version = "0.13" } anyhow = { version = "1" } assert_cmd = { version = "2.0" } regex = { version = "1" } nix = { version = "0.28.0" } tempfile = { version = "3.2.0" } cfg-if = { version = "1.0" } kvdb = { version = "0.13.0" } kvdb-rocksdb = { version = "0.19.0" } parity-db = { version = "0.4.12" } parking_lot = { version = "0.12.1" } pyro = { package = "pyroscope", version = "0.5.3" } pyroscope_pprofrs = { version = "0.2" } tikv-jemallocator = { version = "0.5.0" } async-trait = { version = "0.1.79" } bitvec = { version = "1.0.1" } schnellru = { version = "0.2.1" } assert_matches = { version = "1.5.0" } env_logger = { version = "0.11" } serial_test = { version = "2.0.0" } color-eyre = { version = "0.6.1" } bs58 = { version = "0.5.0" } prometheus-parse = { version = "0.2.2" } rustc-hex = { version = "2.1.0", default-features = false } log = { version = "0.4", default-features = false } libsecp256k1 = { version = "0.7", default-features = false } bip39 = { package = "parity-bip39", version = "2.0.1" } sha3 = { version = "0.10", default-features = false } serde = { version = "1.0.197", default-features = false } serde_derive = { version = "1.0.117", default-features = false } serde_json = { version = "1.0.114", default-features = false } blake2-rfc = { version = "0.2.18", default-features = false } impl-serde = { version = "0.4.0", default-features = false } hex = { version = "0.4.3", default-features = false } metered = { package = "prioritized-metered-channel", version = "0.6.1", default-features = false } scale-value = { version = "0.16.0" } codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false } scale-info = { version = "2.5.0", default-features = false } subxt = { version = "0.37.0", default-features = false } # Frames frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } frame-executive = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } frame-election-provider-support = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } frame-rpc-system = { package = "substrate-frame-rpc-system", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } remote-externalities = { package = "frame-remote-externalities", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } prometheus-endpoint = { package = "substrate-prometheus-endpoint", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } substrate-rpc-client = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } substrate-build-script-utils = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } substrate-state-trie-migration-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } # Substrate Primitives dependencies keyring = { package = "sp-keyring", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } sp-trie = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } sp-core = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } sp-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } sp-runtime-interface = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } sp-tracing = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } sp-debug-derive = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } sp-arithmetic = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } sp-genesis-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } sp-application-crypto = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } sp-staking = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } sp-session = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } sp-storage = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } sp-version = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } sp-weights = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } sp-keystore = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } sp-npos-elections = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } sp-maybe-compressed-blob = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } sp-blockchain = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } sp-state-machine = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } sp-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } sp-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } authority-discovery-primitives = { package = "sp-authority-discovery", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } babe-primitives = { package = "sp-consensus-babe", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } grandpa-primitives = { package = "sp-consensus-grandpa", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } block-builder-api = { package = "sp-block-builder", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } inherents = { package = "sp-inherents", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } offchain-primitives = { package = "sp-offchain", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } consensus-common = { package = "sp-consensus", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } # Pallets pallet-alliance = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-authority-discovery = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-authorship = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-babe = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-bags-list = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-bounties = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-child-bounties = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-collective = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-core-fellowship = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-transaction-payment = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-election-provider-multi-phase = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-fast-unstake = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-grandpa = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-identity = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-indices = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-multisig = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-nomination-pools = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-nomination-pools-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-offences = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-preimage = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-proxy = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-ranked-collective = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-referenda = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-salary = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-scheduler = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-session = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-staking = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-staking-reward-fn = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-staking-reward-curve = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } # TODO pallet-staking-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-treasury = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-whitelist = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-vesting = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-utility = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } # Benchmarking frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } frame-benchmarking-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } frame-try-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } frame-system-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } generate-bags = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-election-provider-support-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-offences-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-session-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-nomination-pools-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } pallet-bags-list-remote-tests = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0", default-features = false } # Substrate Client dependencies sc-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } sc-chain-spec = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } sc-executor = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } sc-service = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } sc-storage-monitor = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } sc-sysinfo = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } sc-tracing = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } sc-keystore = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } sc-authority-discovery = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } sc-basic-authorship = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } sc-block-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } sc-client-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } sc-client-db = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } sc-network = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } sc-network-common = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } sc-network-sync = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } sc-offchain = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } sc-sync-state-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } sc-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } sc-consensus = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } sc-consensus-slots = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } sc-consensus-epochs = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } sc-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } sc-rpc-spec-v2 = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } babe = { package = "sc-consensus-babe", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } babe-rpc = { package = "sc-consensus-babe-rpc", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } grandpa = { package = "sc-consensus-grandpa", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } grandpa-rpc = { package = "sc-consensus-grandpa-rpc", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } telemetry = { package = "sc-telemetry", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } tx-pool-api = { package = "sc-transaction-pool-api", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.12.0" } # Local dependencies ghost-cli = { path = "cli", default-features = false } ghost-client-cli = { path = "client/cli", default-features = false } ghost-machine-primitives = { path = "primitives/machine", default-features = false } ghost-metrics = { path = "metrics", default-features = false } ghost-rpc = { path = "rpc", default-features = false } service = { package = "ghost-service", path = "service", default-features = false } ghost-traits = { path = "pallets/traits", default-features = false } ghost-networks = { path = "pallets/networks", default-features = false } ghost-claims = { path = "pallets/claims", default-features = false } ghost-slow-clap = { path = "pallets/slow-clap", default-features = false } ghost-runtime-constants = { package = "ghost-runtime-constants", path = "runtime/ghost/constants", default-features = false } casper-runtime = { path = "runtime/casper", default-features = false } casper-runtime-constants = { package = "casper-runtime-constants", path = "runtime/casper/constants", default-features = false } primitives = { package = "ghost-core-primitives", path = "core-primitives", default-features = false } runtime-common = { package = "ghost-runtime-common", path = "runtime/common", default-features = false } [dependencies] color-eyre = { workspace = true } tikv-jemallocator = { workspace = true, optional = true, features = ["unprefixed_malloc_on_supported_platforms"] } ghost-cli = { workspace = true, optional = true } [target.'cfg(target_os = "linux")'.dependencies] tikv-jemallocator = { workspace = true, features = ["unprefixed_malloc_on_supported_platforms"] } [dev-dependencies] assert_cmd = { workspace = true } nix = { workspace = true, features = ["signal"] } tempfile = { workspace = true } tokio = { workspace = true } substrate-rpc-client = { workspace = true } primitives = { workspace = true } [build-dependencies] substrate-build-script-utils = { workspace = true } [workspace] resolver = "2" members = [ "core-primitives", "cli", "rpc", "service", "metrics", "client/cli", "primitives/machine", "runtime/common", "runtime/casper", "runtime/casper/constants", "pallets/networks", "pallets/claims", "pallets/slow-clap", "utils/bags-list", "utils/chain-spec-builder", "utils/generate-bags", "utils/ghostkey", "utils/staking-miner", ] [badges] maintenance = { status = "actively-developed" } [profile.release] panic = "unwind" opt-level = 3 [profile.dev.package.backtrace] inherits = "release" [profile.production] inherits = "release" lto = true codegen-units = 1 [profile.testnet] inherits = "release" debug = 1 # debug symbols are useful for profilers debug-assertions = true overflow-checks = true # The list if dependencies below (which can be both direct and indirect # dependencies) are crates that are suspected to be CPU-intensive, and that # are unlikely to require debugging (as some of their debug info might be # missing) or to require to be frequently recompiled. We compile these # dependencies with `opt-level=3` even in "dev" mode in order to make "dev" # mode more usable. # The majority of these crates are cryptographic libraries. # # If you see an error mentioning "profile package spec ... did not match any # packages", it probably concerns this list. # # This list ordered alphabetically. [profile.dev.package] blake2 = { opt-level = 3 } blake2b_simd = { opt-level = 3 } chacha20poly1305 = { opt-level = 3 } cranelift-codegen = { opt-level = 3 } cranelift-wasm = { opt-level = 3 } crc32fast = { opt-level = 3 } crossbeam-deque = { opt-level = 3 } crypto-mac = { opt-level = 3 } curve25519-dalek = { opt-level = 3 } ed25519-dalek = { opt-level = 3 } flate2 = { opt-level = 3 } futures-channel = { opt-level = 3 } hash-db = { opt-level = 3 } hashbrown = { opt-level = 3 } hmac = { opt-level = 3 } httparse = { opt-level = 3 } integer-sqrt = { opt-level = 3 } keccak = { opt-level = 3 } libm = { opt-level = 3 } librocksdb-sys = { opt-level = 3 } libsecp256k1 = { opt-level = 3 } libz-sys = { opt-level = 3 } mio = { opt-level = 3 } nalgebra = { opt-level = 3 } num-bigint = { opt-level = 3 } parking_lot = { opt-level = 3 } parking_lot_core = { opt-level = 3 } percent-encoding = { opt-level = 3 } primitive-types = { opt-level = 3 } ring = { opt-level = 3 } rustls = { opt-level = 3 } sha2 = { opt-level = 3 } sha3 = { opt-level = 3 } smallvec = { opt-level = 3 } snow = { opt-level = 3 } substrate-bip39 = { opt-level = 3 } twox-hash = { opt-level = 3 } uint = { opt-level = 3 } wasmi = { opt-level = 3 } x25519-dalek = { opt-level = 3 } yamux = { opt-level = 3 } zeroize = { opt-level = 3 } [features] default = ["cli", "casper-native"] cli = [ "ghost-cli", "ghost-cli/cli", "ghost-cli/db", "ghost-cli/full-node", ] runtime-benchmarks = ["ghost-cli/runtime-benchmarks"] try-runtime = ["ghost-cli/try-runtime"] fast-runtime = ["ghost-cli/fast-runtime"] pyroscope = ["ghost-cli/pyroscope"] jemalloc-allocator = [ "dep:tikv-jemallocator", ] # Configure runtimes. ghost-native = [] casper-native = ["ghost-cli?/casper-native"] [package.metadata.deb] [package.metadata.spellcheck]