[[bin]] name = "polkadot" path = "src/main.rs" [package] name = "polkadot" description = "Implementation of a `https://polkadot.network` node in Rust based on the Substrate framework." license = "GPL-3.0-only" version = "0.9.22" authors = ["Parity Technologies <admin@parity.io>"] edition = "2021" rust-version = "1.57.0" # custom profiles readme = "README.md" [dependencies] polkadot-cli = { path = "cli", features = [ "kusama-native", "westend-native", "rococo-native" ] } color-eyre = { version = "0.6.1", default-features = false } parity-util-mem = { version = "0.11.0", default-features = false, features = ["jemalloc-global"] } [dev-dependencies] assert_cmd = "2.0.4" nix = "0.24.1" tempfile = "3.2.0" tokio = "1.18.2" remote-externalities = { git = "https://github.com/paritytech/substrate", branch = "master" } polkadot-core-primitives = { path = "core-primitives" } [workspace] members = [ "cli", "core-primitives", "erasure-coding", "primitives", "primitives/test-helpers", "runtime/common", "runtime/common/slot_range_helper", "runtime/metrics", "runtime/parachains", "runtime/polkadot", "runtime/polkadot/constants", "runtime/kusama", "runtime/kusama/constants", "runtime/rococo", "runtime/rococo/constants", "runtime/westend", "runtime/westend/constants", "runtime/test-runtime", "runtime/test-runtime/constants", "statement-table", "xcm", "xcm/xcm-builder", "xcm/xcm-executor", "xcm/xcm-executor/integration-tests", "xcm/xcm-simulator", "xcm/xcm-simulator/example", "xcm/xcm-simulator/fuzzer", "xcm/pallet-xcm", "xcm/pallet-xcm-benchmarks", "xcm/procedural", "node/client", "node/collation-generation", "node/core/approval-voting", "node/core/av-store", "node/core/backing", "node/core/bitfield-signing", "node/core/candidate-validation", "node/core/chain-api", "node/core/chain-selection", "node/core/dispute-coordinator", "node/core/parachains-inherent", "node/core/provisioner", "node/core/pvf", "node/core/pvf-checker", "node/core/runtime-api", "node/network/approval-distribution", "node/network/bridge", "node/network/protocol", "node/network/statement-distribution", "node/network/bitfield-distribution", "node/network/availability-distribution", "node/network/availability-recovery", "node/network/collator-protocol", "node/network/gossip-support", "node/network/dispute-distribution", "node/overseer", "node/orchestra", "node/orchestra/proc-macro", "node/malus", "node/primitives", "node/service", "node/subsystem", "node/subsystem-types", "node/subsystem-test-helpers", "node/subsystem-util", "node/jaeger", "node/gum", "node/gum/proc-macro", "node/metrics", "node/metered-channel", "node/test/client", "node/test/performance-test", "node/test/service", "node/zombienet-backchannel", "rpc", "parachain", "parachain/test-parachains", "parachain/test-parachains/adder", "parachain/test-parachains/adder/collator", "parachain/test-parachains/halt", "parachain/test-parachains/undying", "parachain/test-parachains/undying/collator", "utils/staking-miner", "utils/remote-ext-tests/bags-list", "utils/generate-bags", ] # We want to be able to build the bridge relayer without pulling it (and all of its # dependencies into the Polkadot workspace) exclude = ["bridges/relays/bin-substrate", "bridges/bin/rialto/runtime", "bridges/bin/millau/runtime"] [badges] maintenance = { status = "actively-developed" } # The list of 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 is ordered alphabetically. [profile.dev.package] blake2b_simd = { opt-level = 3 } blake2 = { opt-level = 3 } blake2-rfc = { 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 } hashbrown = { opt-level = 3 } hash-db = { 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_core = { opt-level = 3 } parking_lot = { opt-level = 3 } percent-encoding = { opt-level = 3 } primitive-types = { opt-level = 3 } reed-solomon-novelpoly = { 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 } 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 } [profile.release] # Polkadot runtime requires unwinding. panic = "unwind" opt-level = 3 # make sure dev builds with backtrace do # not slow us down [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 [features] runtime-benchmarks= [ "polkadot-cli/runtime-benchmarks" ] try-runtime = [ "polkadot-cli/try-runtime" ] fast-runtime = [ "polkadot-cli/fast-runtime" ] runtime-metrics = [ "polkadot-cli/runtime-metrics" ] pyroscope = ["polkadot-cli/pyroscope"] staging-client = ["polkadot-cli/staging-client"] # Configuration for building a .deb package - for use with `cargo-deb` [package.metadata.deb] name = "polkadot" extended-description = "Implementation of a https://polkadot.network node in Rust based on the Substrate framework." section = "misc" maintainer = "martin@parity.io" license-file = ["LICENSE", "0"] # https://www.debian.org/doc/debian-policy/ch-maintainerscripts.html maintainer-scripts = "scripts/packaging/deb-maintainer-scripts" assets = [ ["target/release/polkadot", "/usr/bin/", "755"], ["scripts/packaging/polkadot.service", "/lib/systemd/system/", "644"] ] conf-files = [ "/etc/default/polkadot" ] # Configuration for building an .rpm package - for use with `cargo-rpm` [package.metadata.rpm] package = "polkadot" [package.metadata.rpm.cargo] buildflags = ["--release"] [package.metadata.rpm.targets] polkadot = { path = "/usr/bin/polkadot" } [package.metadata.rpm.files] "../scripts/packaging/polkadot.service" = { path = "/usr/lib/systemd/system/polkadot.service", mode = "644" } [package.metadata.spellcheck] config = "./scripts/ci/gitlab/spellcheck.toml"