[package]
edition = "2024"
name = "solana-core"
version = "4.2.0"
authors = ["Anza Maintainers <maintainers@anza.xyz>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Blockchain, Rebuilt for Scale"
homepage = "https://anza.xyz/"
documentation = "https://docs.rs/solana-core"
readme = false
license = "Apache-2.0"
repository = "https://github.com/anza-xyz/agave"
resolver = "2"
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]
all-features = true
rustdoc-args = ["--cfg=docsrs"]
[features]
agave-unstable-api = []
dev-context-only-utils = [
"solana-entry/dev-context-only-utils",
"solana-ledger/dev-context-only-utils",
"solana-perf/dev-context-only-utils",
"solana-runtime/dev-context-only-utils",
"solana-streamer/dev-context-only-utils",
"solana-tpu-client-next/dev-context-only-utils",
"agave-votor/dev-context-only-utils",
]
frozen-abi = [
"dep:solana-frozen-abi",
"dep:solana-frozen-abi-macro",
"solana-accounts-db/frozen-abi",
"solana-cost-model/frozen-abi",
"solana-frozen-abi/frozen-abi",
"solana-gossip/frozen-abi",
"solana-hash/frozen-abi",
"solana-ledger/frozen-abi",
"solana-packet/frozen-abi",
"solana-perf/frozen-abi",
"solana-pubkey/frozen-abi",
"solana-runtime/frozen-abi",
"solana-signature/frozen-abi",
"solana-svm/frozen-abi",
"solana-vote/frozen-abi",
"solana-vote-program/frozen-abi",
]
[lib]
name = "solana_core"
path = "src/lib.rs"
[[test]]
name = "fork-selection"
path = "tests/fork-selection.rs"
[[test]]
name = "scheduler_cost_adjustment"
path = "tests/scheduler_cost_adjustment.rs"
[[test]]
name = "snapshots"
path = "tests/snapshots.rs"
[[test]]
name = "unified_scheduler"
path = "tests/unified_scheduler.rs"
[[bench]]
name = "consensus"
path = "benches/consensus.rs"
[[bench]]
name = "shredder"
path = "benches/shredder.rs"
harness = false
[[bench]]
name = "sigverify_stage"
path = "benches/sigverify_stage.rs"
harness = false
[dependencies.agave-banking-stage-ingress-types]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.agave-bls-cert-verify]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.agave-bls-sigverify]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.agave-feature-set]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.agave-fs]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.agave-logger]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.agave-math-utils]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.agave-scheduler-bindings]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.agave-scheduling-utils]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.agave-snapshots]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.agave-transaction-view]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.agave-votor]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.agave-votor-messages]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.agave-xdp]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.ahash]
version = "0.8.12"
[dependencies.anyhow]
version = "1.0.102"
[dependencies.arc-swap]
version = "1.9.1"
[dependencies.arrayvec]
version = "0.7.6"
[dependencies.assert_matches]
version = "1.5.0"
[dependencies.async-trait]
version = "0.1.89"
[dependencies.bincode]
version = "1.3.3"
[dependencies.bitvec]
version = "1.1.1"
features = ["serde"]
[dependencies.bytes]
version = "1.12.0"
[dependencies.chrono]
version = "0.4.45"
features = [
"default",
"serde",
]
default-features = false
[dependencies.crossbeam-channel]
version = "0.5.15"
[dependencies.dashmap]
version = "5.5.3"
features = [
"rayon",
"raw-api",
]
[dependencies.futures]
version = "0.3.32"
[dependencies.histogram]
version = "0.6.9"
[dependencies.itertools]
version = "0.14.0"
[dependencies.lazy-lru]
version = "0.1.3"
[dependencies.libc]
version = "0.2.186"
[dependencies.log]
version = "0.4.32"
[dependencies.min-max-heap]
version = "1.3.0"
[dependencies.num_cpus]
version = "1.17.0"
[dependencies.num_enum]
version = "0.7.6"
[dependencies.qualifier_attr]
version = "0.2.2"
default-features = false
[dependencies.rand]
version = "0.9.4"
[dependencies.rand_chacha]
version = "0.9.0"
[dependencies.rayon]
version = "1.12.0"
[dependencies.rolling-file]
version = "0.2.0"
[dependencies.rts-alloc]
version = "4.0.0"
[dependencies.rustls]
version = "0.23.41"
features = ["std"]
default-features = false
[dependencies.serde]
version = "1.0.228"
features = ["derive"]
[dependencies.serde_bytes]
version = "0.11.19"
[dependencies.shaq]
version = "3.0.0"
[dependencies.signal-hook]
version = "0.4.4"
[dependencies.slab]
version = "0.4.12"
[dependencies.solana-account]
version = ">=4.3.1,<4.4.0"
[dependencies.solana-accounts-db]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.solana-address-lookup-table-interface]
version = ">=3.1.0,<3.2.0"
[dependencies.solana-bincode]
version = "3.1.0"
[dependencies.solana-bls-signatures]
version = ">=3.3.0,<3.4.0"
features = ["serde"]
[dependencies.solana-client]
version = "=4.2.0"
[dependencies.solana-clock]
version = ">=3.0.1,<3.2.0"
[dependencies.solana-cluster-type]
version = "3.1.0"
[dependencies.solana-compute-budget-interface]
version = "3.0.0"
[dependencies.solana-connection-cache]
version = "=4.2.0"
features = ["agave-unstable-api"]
default-features = false
[dependencies.solana-cost-model]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.solana-entry]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.solana-epoch-schedule]
version = ">=3.2.0,<3.3.0"
[dependencies.solana-fee]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.solana-fee-calculator]
version = ">=3.2.2,<3.3.0"
[dependencies.solana-fee-structure]
version = "3.0.0"
[dependencies.solana-frozen-abi]
version = ">=3.7.0,<3.8.0"
features = ["frozen-abi"]
optional = true
[dependencies.solana-frozen-abi-macro]
version = "3.6.0"
features = ["frozen-abi"]
optional = true
[dependencies.solana-genesis-config]
version = "4.0.0"
[dependencies.solana-genesis-utils]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.solana-geyser-plugin-manager]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.solana-gossip]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.solana-hard-forks]
version = ">=3.1.1,<3.2.0"
[dependencies.solana-hash]
version = ">=4.4.0,<4.6.0"
[dependencies.solana-instruction]
version = ">=3.4.0,<3.5.0"
[dependencies.solana-keypair]
version = "3.1.2"
[dependencies.solana-leader-schedule]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.solana-ledger]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.solana-measure]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.solana-message]
version = ">=4.2.3,<4.5.0"
[dependencies.solana-metrics]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.solana-native-token]
version = "3.0.0"
[dependencies.solana-net-utils]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.solana-nonce]
version = ">=3.2.0,<3.3.0"
[dependencies.solana-packet]
version = ">=4.1.0,<4.3.0"
[dependencies.solana-perf]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.solana-poh]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.solana-poh-config]
version = "3.0.0"
[dependencies.solana-pubkey]
version = ">=4.2.0,<4.3.0"
default-features = false
[dependencies.solana-rayon-threadlimit]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.solana-rpc]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.solana-rpc-client-api]
version = "=4.2.0"
[dependencies.solana-runtime]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.solana-runtime-transaction]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.solana-sdk-ids]
version = "3.1.0"
[dependencies.solana-send-transaction-service]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.solana-sha256-hasher]
version = "3.1.0"
[dependencies.solana-shred-version]
version = "3.0.1"
[dependencies.solana-signature]
version = ">=3.4.1,<3.5.0"
default-features = false
[dependencies.solana-signer]
version = "3.0.1"
[dependencies.solana-signer-store]
version = "0.1.0"
[dependencies.solana-slot-hashes]
version = ">=3.1.0,<3.2.0"
[dependencies.solana-slot-history]
version = ">=3.0.1,<3.2.0"
[dependencies.solana-streamer]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.solana-svm]
version = "=4.2.0"
features = [
"agave-unstable-api",
"metrics",
]
[dependencies.solana-svm-timings]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.solana-svm-transaction]
version = ">=4.2.0,<4.3.0"
[dependencies.solana-system-interface]
version = ">=3.2.0,<3.3.0"
features = [
"alloc",
"bincode",
"serde",
"wincode",
]
[dependencies.solana-system-transaction]
version = ">=4.0.0,<4.1.0"
[dependencies.solana-sysvar]
version = ">=4.0.0,<4.2.0"
[dependencies.solana-time-utils]
version = "3.0.0"
[dependencies.solana-tls-utils]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.solana-tpu-client]
version = "=4.2.0"
features = ["agave-unstable-api"]
default-features = false
[dependencies.solana-tpu-client-next]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.solana-transaction]
version = ">=4.1.4,<4.2.0"
[dependencies.solana-transaction-error]
version = ">=3.3.1,<3.4.0"
[dependencies.solana-transaction-status]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.solana-turbine]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.solana-unified-scheduler-logic]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.solana-unified-scheduler-pool]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.solana-validator-exit]
version = "3.0.0"
[dependencies.solana-version]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.solana-vote]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dependencies.solana-vote-program]
version = "=4.2.0"
features = ["agave-unstable-api"]
default-features = false
[dependencies.static_assertions]
version = "1.1.0"
[dependencies.strum]
version = "0.28.0"
features = ["derive"]
[dependencies.strum_macros]
version = "0.28.0"
[dependencies.sys-info]
version = "0.9.1"
[dependencies.tempfile]
version = "3.27.0"
[dependencies.thiserror]
version = "2.0.18"
[dependencies.tokio]
version = "1.52.3"
features = ["full"]
[dependencies.tokio-util]
version = "0.7.18"
[dependencies.trees]
version = "0.4.2"
[dependencies.wincode]
version = "0.5.5"
features = ["derive"]
[dev-dependencies.bencher]
version = "0.1.5"
[dev-dependencies.bitvec]
version = "1.1.1"
features = ["serde"]
[dev-dependencies.criterion]
version = "0.8.2"
[dev-dependencies.serial_test]
version = "3.5.0"
[dev-dependencies.solana-account]
version = ">=4.3.1,<4.4.0"
features = ["dev-context-only-utils"]
[dev-dependencies.solana-compute-budget]
version = "=4.2.0"
features = ["agave-unstable-api"]
[dev-dependencies.solana-compute-budget-interface]
version = "3.0.0"
[dev-dependencies.solana-keypair]
version = "3.1.2"
[dev-dependencies.solana-loader-v3-interface]
version = "7.0.0"
[dev-dependencies.solana-nonce-account]
version = ">=4.1.0,<4.2.0"
features = ["wincode"]
[dev-dependencies.solana-rent]
version = ">=4.2.1,<4.4.0"
[dev-dependencies.solana-signer-store]
version = "0.1.0"
[dev-dependencies.spl-memo-interface]
version = "2.1.0"
[dev-dependencies.static_assertions]
version = "1.1.0"
[dev-dependencies.test-case]
version = "3.3.1"
[target.'cfg(not(any(target_env = "msvc", target_os = "freebsd")))'.dependencies.jemalloc-ctl]
version = "0.6.0"
features = ["stats"]
package = "tikv-jemalloc-ctl"
[target.'cfg(not(any(target_env = "msvc", target_os = "freebsd")))'.dev-dependencies.jemallocator]
version = "0.6.0"
features = [
"unprefixed_malloc_on_supported_platforms",
"stats",
]
package = "tikv-jemallocator"
[target."cfg(unix)".dependencies.sysctl]
version = "0.7.1"
[lints.clippy]
arithmetic_side_effects = "deny"
default_trait_access = "deny"
manual_let_else = "deny"
new_without_default = "allow"
uninlined_format_args = "deny"
used_underscore_binding = "deny"
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = [
'cfg(target_os, values("solana"))',
'cfg(feature, values("frozen-abi", "no-entrypoint"))',
'cfg(target_arch, values("sbf"))',
]