Cargo.toml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. [workspace]
  2. members = [
  3. "../accounts-db/store-tool",
  4. "../banking-bench",
  5. "../bench-tps",
  6. "../dos",
  7. "../ledger-tool",
  8. ]
  9. resolver = "2"
  10. [workspace.package]
  11. version = "4.0.0-alpha.0"
  12. authors = ["Anza Maintainers <maintainers@anza.xyz>"]
  13. description = "Blockchain, Rebuilt for Scale"
  14. repository = "https://github.com/anza-xyz/agave"
  15. homepage = "https://anza.xyz/"
  16. license = "Apache-2.0"
  17. edition = "2021"
  18. [workspace.lints.rust]
  19. warnings = "deny"
  20. # List of rust-2024-compatibility lints that are already satisfied
  21. # See https://doc.rust-lang.org/rustc/lints/groups.html
  22. boxed_slice_into_iter = "deny"
  23. dependency_on_unit_never_type_fallback = "deny"
  24. deprecated_safe_2024 = "deny"
  25. impl_trait_overcaptures = "deny"
  26. missing_unsafe_on_extern = "deny"
  27. never_type_fallback_flowing_into_unsafe = "deny"
  28. rust_2024_guarded_string_incompatible_syntax = "deny"
  29. rust_2024_incompatible_pat = "deny"
  30. rust_2024_prelude_collisions = "deny"
  31. static_mut_refs = "deny"
  32. [workspace.lints.rust.unexpected_cfgs]
  33. level = "warn"
  34. check-cfg = [
  35. 'cfg(target_os, values("solana"))',
  36. 'cfg(feature, values("frozen-abi", "no-entrypoint"))',
  37. ]
  38. # Clippy lint configuration that can not be applied in clippy.toml
  39. [workspace.lints.clippy]
  40. arithmetic_side_effects = "deny"
  41. default_trait_access = "deny"
  42. manual_let_else = "deny"
  43. used_underscore_binding = "deny"
  44. [workspace.dependencies]
  45. agave-banking-stage-ingress-types = { path = "../banking-stage-ingress-types", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  46. agave-feature-set = { path = "../feature-set", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  47. agave-logger = { path = "../logger", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  48. agave-reserved-account-keys = { path = "../reserved-account-keys", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  49. agave-snapshots = { path = "../snapshots", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  50. agave-syscalls = { path = "../syscalls", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  51. ahash = "0.8.11"
  52. assert_cmd = "2.0"
  53. assert_matches = "1.5.0"
  54. bincode = "1.3.3"
  55. bs58 = { version = "0.5.1", default-features = false }
  56. chrono = { version = "0.4.42", default-features = false }
  57. clap = "2.33.1"
  58. crossbeam-channel = "0.5.15"
  59. csv = "1.4.0"
  60. dashmap = "5.5.3"
  61. futures = "0.3.31"
  62. histogram = "0.6.9"
  63. itertools = "0.13.0"
  64. jemallocator = { package = "tikv-jemallocator", version = "0.6.0", features = [
  65. "unprefixed_malloc_on_supported_platforms",
  66. ] }
  67. log = "0.4.28"
  68. num_cpus = "1.17.0"
  69. pretty-hex = "0.3.0"
  70. rand = "0.8.5"
  71. rayon = "1.11.0"
  72. regex = "1.12.2"
  73. serde = { version = "1.0.228", features = ["derive"] }
  74. serde_bytes = "0.11.19"
  75. serde_json = "1.0.145"
  76. serde_yaml = "0.9.34"
  77. serial_test = "2.0.0"
  78. signal-hook = "0.3.18"
  79. solana-account = "3.2.0"
  80. solana-account-decoder = { path = "../account-decoder", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  81. solana-accounts-db = { path = "../accounts-db", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  82. solana-bench-tps = { path = "../bench-tps", version = "=4.0.0-alpha.0" }
  83. solana-bpf-loader-program = { path = "../programs/bpf_loader", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  84. solana-clap-utils = { path = "../clap-utils", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  85. solana-cli-config = { path = "../cli-config", version = "=4.0.0-alpha.0" }
  86. solana-cli-output = { path = "../cli-output", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  87. solana-client = { path = "../client", version = "=4.0.0-alpha.0" }
  88. solana-clock = "3.0.0"
  89. solana-cluster-type = "3.0.0"
  90. solana-commitment-config = "3.0.0"
  91. solana-compute-budget = { path = "../compute-budget", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  92. solana-compute-budget-interface = "3.0.0"
  93. solana-connection-cache = { path = "../connection-cache", version = "=4.0.0-alpha.0", default-features = false, features = ["agave-unstable-api"] }
  94. solana-core = { path = "../core", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  95. solana-cost-model = { path = "../cost-model", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  96. solana-entry = { path = "../entry", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  97. solana-faucet = { path = "../faucet", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  98. solana-feature-gate-interface = "3.0.0"
  99. solana-fee-calculator = "3.0.0"
  100. solana-genesis = { path = "../genesis", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  101. solana-genesis-config = "3.0.0"
  102. solana-genesis-utils = { path = "../genesis-utils", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  103. solana-geyser-plugin-manager = { path = "../geyser-plugin-manager", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  104. solana-gossip = { path = "../gossip", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  105. solana-hash = "3.0.0"
  106. solana-inflation = "3.0.0"
  107. solana-instruction = "3.0.0"
  108. solana-keypair = "3.0.1"
  109. solana-ledger = { path = "../ledger", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  110. solana-loader-v3-interface = "6.1.0"
  111. solana-local-cluster = { path = "../local-cluster", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  112. solana-measure = { path = "../measure", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  113. solana-message = "3.0.1"
  114. solana-metrics = { path = "../metrics", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  115. solana-native-token = "3.0.0"
  116. solana-net-utils = { path = "../net-utils", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  117. solana-nonce = "3.0.0"
  118. solana-perf = { path = "../perf", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  119. solana-poh = { path = "../poh", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  120. solana-program-runtime = { path = "../program-runtime", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  121. solana-pubkey = { version = "3.0.0", default-features = false }
  122. solana-quic-client = { path = "../quic-client", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  123. solana-rent = "3.0.0"
  124. solana-rpc = { path = "../rpc", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  125. solana-rpc-client = { path = "../rpc-client", version = "=4.0.0-alpha.0", default-features = false }
  126. solana-rpc-client-api = { path = "../rpc-client-api", version = "=4.0.0-alpha.0" }
  127. solana-rpc-client-nonce-utils = { path = "../rpc-client-nonce-utils", version = "=4.0.0-alpha.0" }
  128. solana-runtime = { path = "../runtime", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  129. solana-runtime-transaction = { path = "../runtime-transaction", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  130. solana-sbpf = { version = "=0.13.1", default-features = false }
  131. solana-sdk-ids = "3.0.0"
  132. solana-shred-version = "3.0.0"
  133. solana-signature = { version = "3.1.0", default-features = false }
  134. solana-signer = "3.0.0"
  135. solana-stake-interface = { version = "2.0.1" }
  136. solana-storage-bigtable = { path = "../storage-bigtable", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  137. solana-streamer = { path = "../streamer", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  138. solana-svm-callback = { path = "../svm-callback", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  139. solana-svm-feature-set = { path = "../svm-feature-set", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  140. solana-svm-log-collector = { path = "../svm-log-collector", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  141. solana-svm-type-overrides = { path = "../svm-type-overrides", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  142. solana-system-interface = "2.0"
  143. solana-system-transaction = "3.0.0"
  144. solana-test-validator = { path = "../test-validator", version = "=4.0.0-alpha.0" }
  145. solana-time-utils = "3.0.0"
  146. solana-tps-client = { path = "../tps-client", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  147. solana-tpu-client = { path = "../tpu-client", version = "=4.0.0-alpha.0", default-features = false, features = ["agave-unstable-api"] }
  148. solana-transaction = "3.0.1"
  149. solana-transaction-context = { path = "../transaction-context", version = "=4.0.0-alpha.0", features = ["agave-unstable-api", "bincode"] }
  150. solana-transaction-status = { path = "../transaction-status", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  151. solana-unified-scheduler-pool = { path = "../unified-scheduler-pool", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  152. solana-version = { path = "../version", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  153. solana-vote = { path = "../vote", version = "=4.0.0-alpha.0", features = ["agave-unstable-api"] }
  154. solana-vote-program = { path = "../programs/vote", version = "=4.0.0-alpha.0", default-features = false, features = ["agave-unstable-api"] }
  155. tempfile = "3.23.0"
  156. thiserror = "2.0.17"
  157. tokio = "1.48.0"
  158. [profile.release-with-debug]
  159. inherits = "release"
  160. debug = true
  161. strip = false
  162. split-debuginfo = "off"
  163. [profile.release]
  164. split-debuginfo = "unpacked"
  165. lto = "thin"
  166. [profile.release-with-lto]
  167. inherits = "release"
  168. lto = "fat"
  169. codegen-units = 1
  170. # curve25519-dalek uses the simd backend by default in v4 if possible,
  171. # which has very slow performance on some platforms with opt-level 0,
  172. # which is the default for dev and test builds.
  173. # This slowdown causes certain interactions in the solana-test-validator,
  174. # such as verifying ZK proofs in transactions, to take much more than 400ms,
  175. # creating problems in the testing environment.
  176. # To enable better performance in solana-test-validator during tests and dev builds,
  177. # we override the opt-level to 3 for the crate.
  178. [profile.dev.package.curve25519-dalek]
  179. opt-level = 3
  180. [patch.crates-io]
  181. # We include the following crates as our dependencies above from crates.io:
  182. #
  183. # * spl-associated-token-account-interface
  184. # * spl-instruction-padding
  185. # * spl-memo-interface
  186. # * spl-pod
  187. # * spl-token
  188. # * spl-token-2022-interface
  189. # * spl-token-metadata-interface
  190. #
  191. # They, in turn, depend on a number of crates that we also include directly
  192. # using `path` specifications. For example, `spl-token` depends on
  193. # `solana-program`. And we explicitly specify `solana-program` above as a local
  194. # path dependency:
  195. #
  196. # solana-program = { path = "../../../sdk/program", version = "=1.16.0" }
  197. #
  198. # Unfortunately, Cargo will try to resolve the `spl-token` `solana-program`
  199. # dependency only using what is available on crates.io. Crates.io normally
  200. # contains a previous version of these crates, and we end up with two versions
  201. # of `solana-program` and `solana-zk-token-sdk` and all of their dependencies in
  202. # our build tree.
  203. #
  204. # If you are developing downstream using non-crates-io solana-program (local or
  205. # forked repo, or from github rev, eg), duplicate the following patch statements
  206. # in your Cargo.toml. If you still hit duplicate-type errors with the patch
  207. # statements in place, run `cargo update -p solana-program` and/or `cargo update
  208. # -p solana-zk-token-sdk` to remove extraneous versions from your Cargo.lock
  209. # file.
  210. #
  211. # There is a similar override in `programs/sbf/Cargo.toml`. Please keep both
  212. # comments and the overrides in sync.
  213. solana-curve25519 = { path = "../curves/curve25519" }