浏览代码

first tranche of solana-sdk omnicrate dependency removals (#6113)

* remove solana-sdk dependency from solana-banking-bench

* remove solana-sdk dependency from solana-banks-client

* remove solana-sdk dependency from solana-banks-interface

* remove solana-sdk dependency from solana-banks-server

* remove solana-sdk dependency from solana-bench-tps

* remove solana-sdk dependency from solana-bench-vote

* remove solana-sdk dependency from solana-cli

* remove solana-sdk dependency from solana-client-test

* remove solana-sdk dependency from solana-stake-accounts

* remove solana-sdk dependency from solana-core

* remove solana-sdk dependency from solana-dos

* remove solana-sdk dependency from solana-genesis-utils

* remove solana-sdk dependency from solana-ledger-tool

* remove solana-sdk dependency from solana-ledger

* remove solana-sdk dependency from solana-local-cluster

* remove solana-sdk dependency from solana-runtime
Trent Nelson 6 月之前
父节点
当前提交
f7f2f5f5ac
共有 100 个文件被更改,包括 964 次插入628 次删除
  1. 248 13
      Cargo.lock
  2. 11 1
      banking-bench/Cargo.toml
  3. 12 11
      banking-bench/src/main.rs
  4. 9 1
      banks-client/Cargo.toml
  5. 1 1
      banks-client/src/error.rs
  6. 14 12
      banks-client/src/lib.rs
  7. 9 1
      banks-interface/Cargo.toml
  8. 13 11
      banks-interface/src/lib.rs
  9. 9 1
      banks-server/Cargo.toml
  10. 15 10
      banks-server/src/banks_server.rs
  11. 21 1
      bench-tps/Cargo.toml
  12. 18 21
      bench-tps/src/bench.rs
  13. 7 8
      bench-tps/src/cli.rs
  14. 2 1
      bench-tps/src/keypairs.rs
  15. 3 6
      bench-tps/src/log_transaction_service.rs
  16. 6 7
      bench-tps/src/main.rs
  17. 1 1
      bench-tps/src/perf_utils.rs
  18. 2 3
      bench-tps/src/rpc_with_retry_utils.rs
  19. 10 12
      bench-tps/src/send_batch.rs
  20. 7 8
      bench-tps/tests/bench_tps.rs
  21. 6 1
      bench-vote/Cargo.toml
  22. 6 4
      bench-vote/src/main.rs
  23. 4 1
      cli/Cargo.toml
  24. 4 5
      cli/tests/address_lookup_table.rs
  25. 4 5
      cli/tests/cluster_query.rs
  26. 6 7
      cli/tests/nonce.rs
  27. 13 14
      cli/tests/program.rs
  28. 3 4
      cli/tests/request_airdrop.rs
  29. 14 15
      cli/tests/stake.rs
  30. 10 10
      cli/tests/transfer.rs
  31. 2 1
      cli/tests/validator_info.rs
  32. 3 4
      cli/tests/vote.rs
  33. 9 1
      client-test/Cargo.toml
  34. 9 9
      client-test/tests/client.rs
  35. 9 6
      client-test/tests/send_and_confirm_transactions_in_parallel.rs
  36. 36 1
      core/Cargo.toml
  37. 11 10
      core/benches/banking_stage.rs
  38. 3 4
      core/benches/consensus.rs
  39. 7 8
      core/benches/consumer.rs
  40. 2 1
      core/benches/shredder.rs
  41. 4 5
      core/benches/sigverify_stage.rs
  42. 1 1
      core/src/accounts_hash_verifier.rs
  43. 2 1
      core/src/admin_rpc_post_init.rs
  44. 6 8
      core/src/banking_simulation.rs
  45. 9 9
      core/src/banking_stage.rs
  46. 18 18
      core/src/banking_stage/consume_worker.rs
  47. 31 28
      core/src/banking_stage/consumer.rs
  48. 5 7
      core/src/banking_stage/decision_maker.rs
  49. 13 15
      core/src/banking_stage/immutable_deserialized_packet.rs
  50. 6 6
      core/src/banking_stage/latest_validator_vote_packet.rs
  51. 2 1
      core/src/banking_stage/leader_slot_metrics.rs
  52. 1 1
      core/src/banking_stage/leader_slot_timing_metrics.rs
  53. 5 4
      core/src/banking_stage/packet_deserializer.rs
  54. 2 2
      core/src/banking_stage/packet_filter.rs
  55. 17 16
      core/src/banking_stage/qos_service.rs
  56. 16 15
      core/src/banking_stage/read_write_account_set.rs
  57. 1 1
      core/src/banking_stage/scheduler_messages.rs
  58. 7 9
      core/src/banking_stage/transaction_scheduler/greedy_scheduler.rs
  59. 10 11
      core/src/banking_stage/transaction_scheduler/prio_graph_scheduler.rs
  60. 15 19
      core/src/banking_stage/transaction_scheduler/receive_and_buffer.rs
  61. 1 1
      core/src/banking_stage/transaction_scheduler/scheduler_common.rs
  62. 13 7
      core/src/banking_stage/transaction_scheduler/scheduler_controller.rs
  63. 2 1
      core/src/banking_stage/transaction_scheduler/scheduler_metrics.rs
  64. 7 9
      core/src/banking_stage/transaction_scheduler/transaction_state.rs
  65. 8 10
      core/src/banking_stage/transaction_scheduler/transaction_state_container.rs
  66. 11 10
      core/src/banking_stage/vote_storage.rs
  67. 8 5
      core/src/banking_stage/vote_worker.rs
  68. 2 1
      core/src/banking_trace.rs
  69. 11 13
      core/src/cluster_info_vote_listener.rs
  70. 3 2
      core/src/cluster_slots_service.rs
  71. 3 1
      core/src/cluster_slots_service/cluster_slots.rs
  72. 5 2
      core/src/commitment_service.rs
  73. 3 7
      core/src/completed_data_sets_service.rs
  74. 15 19
      core/src/consensus.rs
  75. 1 1
      core/src/consensus/fork_choice.rs
  76. 6 7
      core/src/consensus/heaviest_subtree_fork_choice.rs
  77. 3 1
      core/src/consensus/latest_validator_votes_for_frozen_banks.rs
  78. 3 1
      core/src/consensus/progress_map.rs
  79. 2 1
      core/src/consensus/tower1_14_11.rs
  80. 4 5
      core/src/consensus/tower1_7_14.rs
  81. 6 6
      core/src/consensus/tower_storage.rs
  82. 1 1
      core/src/consensus/tower_vote_state.rs
  83. 2 4
      core/src/fetch_stage.rs
  84. 9 9
      core/src/forwarding_stage.rs
  85. 1 1
      core/src/forwarding_stage/packet_container.rs
  86. 2 2
      core/src/gen_keys.rs
  87. 1 3
      core/src/next_leader.rs
  88. 3 1
      core/src/optimistic_confirmation_verifier.rs
  89. 8 12
      core/src/repair/ancestor_hashes_service.rs
  90. 2 1
      core/src/repair/cluster_slot_state_verifier.rs
  91. 4 1
      core/src/repair/duplicate_repair_status.rs
  92. 1 1
      core/src/repair/outstanding_requests.rs
  93. 3 2
      core/src/repair/quic_endpoint.rs
  94. 3 2
      core/src/repair/repair_generic_traversal.rs
  95. 5 5
      core/src/repair/repair_response.rs
  96. 11 14
      core/src/repair/repair_service.rs
  97. 5 7
      core/src/repair/repair_weight.rs
  98. 3 2
      core/src/repair/repair_weighted_traversal.rs
  99. 13 11
      core/src/repair/serve_repair.rs
  100. 20 21
      core/src/replay_stage.rs

+ 248 - 13
Cargo.lock

@@ -225,32 +225,49 @@ dependencies = [
  "serde_derive",
  "serde_json",
  "signal-hook",
+ "solana-account",
  "solana-account-decoder",
  "solana-accounts-db",
  "solana-bpf-loader-program",
  "solana-clap-utils",
  "solana-cli-output",
+ "solana-clock",
  "solana-compute-budget",
  "solana-core",
  "solana-cost-model",
  "solana-entry",
+ "solana-feature-gate-interface",
+ "solana-genesis-config",
  "solana-geyser-plugin-manager",
  "solana-gossip",
+ "solana-hash",
+ "solana-inflation",
+ "solana-keypair",
  "solana-ledger",
+ "solana-loader-v3-interface",
  "solana-log-collector",
  "solana-logger",
  "solana-measure",
+ "solana-message",
+ "solana-native-token",
  "solana-program-runtime",
+ "solana-pubkey",
+ "solana-rent",
  "solana-rpc",
  "solana-runtime",
  "solana-runtime-transaction",
  "solana-sbpf",
- "solana-sdk",
+ "solana-sdk-ids",
+ "solana-shred-version",
+ "solana-signature",
+ "solana-stake-interface",
  "solana-stake-program",
  "solana-storage-bigtable",
  "solana-streamer",
  "solana-svm-callback",
  "solana-svm-feature-set",
+ "solana-system-interface",
+ "solana-transaction",
  "solana-transaction-context 2.3.0",
  "solana-transaction-status",
  "solana-type-overrides",
@@ -6725,17 +6742,27 @@ dependencies = [
  "rand 0.8.5",
  "rayon",
  "solana-client",
+ "solana-compute-budget-interface",
  "solana-core",
  "solana-gossip",
+ "solana-hash",
+ "solana-keypair",
  "solana-ledger",
  "solana-logger",
  "solana-measure",
+ "solana-message",
  "solana-perf",
  "solana-poh",
+ "solana-pubkey",
  "solana-runtime",
- "solana-sdk",
+ "solana-signature",
+ "solana-signer",
  "solana-streamer",
+ "solana-system-interface",
+ "solana-system-transaction",
+ "solana-time-utils",
  "solana-tpu-client",
+ "solana-transaction",
  "solana-version",
 ]
 
@@ -6745,12 +6772,20 @@ version = "2.3.0"
 dependencies = [
  "borsh 1.5.7",
  "futures 0.3.31",
+ "solana-account",
  "solana-banks-interface",
  "solana-banks-server",
+ "solana-commitment-config",
+ "solana-message",
  "solana-program",
+ "solana-pubkey",
  "solana-runtime",
- "solana-sdk",
+ "solana-signature",
+ "solana-signer",
+ "solana-system-interface",
+ "solana-transaction",
  "solana-transaction-context 2.3.0",
+ "solana-transaction-error",
  "tarpc",
  "thiserror 2.0.12",
  "tokio",
@@ -6763,8 +6798,16 @@ version = "2.3.0"
 dependencies = [
  "serde",
  "serde_derive",
- "solana-sdk",
+ "solana-account",
+ "solana-clock",
+ "solana-commitment-config",
+ "solana-hash",
+ "solana-message",
+ "solana-pubkey",
+ "solana-signature",
+ "solana-transaction",
  "solana-transaction-context 2.3.0",
+ "solana-transaction-error",
  "tarpc",
 ]
 
@@ -6776,13 +6819,21 @@ dependencies = [
  "bincode",
  "crossbeam-channel",
  "futures 0.3.31",
+ "solana-account",
  "solana-banks-interface",
  "solana-client",
+ "solana-clock",
+ "solana-commitment-config",
+ "solana-hash",
+ "solana-message",
+ "solana-pubkey",
  "solana-runtime",
  "solana-runtime-transaction",
- "solana-sdk",
  "solana-send-transaction-service",
+ "solana-signature",
  "solana-svm",
+ "solana-transaction",
+ "solana-transaction-error",
  "tarpc",
  "tokio",
  "tokio-serde",
@@ -6815,30 +6866,49 @@ dependencies = [
  "serde_json",
  "serde_yaml 0.9.34+deprecated",
  "serial_test",
+ "solana-account",
  "solana-clap-utils",
  "solana-cli-config",
  "solana-client",
+ "solana-clock",
+ "solana-commitment-config",
+ "solana-compute-budget-interface",
  "solana-connection-cache",
  "solana-core",
  "solana-faucet",
+ "solana-fee-calculator",
  "solana-genesis",
+ "solana-genesis-config",
  "solana-gossip",
+ "solana-hash",
+ "solana-instruction",
+ "solana-keypair",
  "solana-local-cluster",
  "solana-logger",
  "solana-measure",
+ "solana-message",
  "solana-metrics",
+ "solana-native-token",
  "solana-net-utils",
+ "solana-nonce",
+ "solana-pubkey",
  "solana-quic-client",
+ "solana-rent",
  "solana-rpc",
  "solana-rpc-client",
  "solana-rpc-client-api",
  "solana-rpc-client-nonce-utils",
  "solana-runtime",
- "solana-sdk",
+ "solana-sdk-ids",
+ "solana-signature",
+ "solana-signer",
  "solana-streamer",
+ "solana-system-interface",
  "solana-test-validator",
+ "solana-time-utils",
  "solana-tps-client",
  "solana-tpu-client",
+ "solana-transaction",
  "solana-transaction-status",
  "solana-version",
  "spl-instruction-padding",
@@ -6856,10 +6926,15 @@ dependencies = [
  "solana-clap-utils",
  "solana-client",
  "solana-connection-cache",
+ "solana-hash",
+ "solana-keypair",
  "solana-logger",
+ "solana-message",
  "solana-net-utils",
- "solana-sdk",
+ "solana-pubkey",
+ "solana-signer",
  "solana-streamer",
+ "solana-transaction",
  "solana-version",
  "solana-vote-program",
 ]
@@ -7210,6 +7285,8 @@ dependencies = [
  "solana-faucet",
  "solana-feature-gate-client",
  "solana-feature-gate-interface",
+ "solana-fee-calculator",
+ "solana-fee-structure",
  "solana-hash",
  "solana-instruction",
  "solana-keypair",
@@ -7242,6 +7319,7 @@ dependencies = [
  "solana-signature",
  "solana-signer",
  "solana-slot-history",
+ "solana-stake-interface",
  "solana-streamer",
  "solana-system-interface",
  "solana-sysvar",
@@ -7375,19 +7453,27 @@ dependencies = [
  "rand 0.8.5",
  "serde_json",
  "solana-client",
+ "solana-clock",
+ "solana-commitment-config",
+ "solana-keypair",
  "solana-ledger",
  "solana-logger",
  "solana-measure",
  "solana-merkle-tree",
+ "solana-message",
+ "solana-native-token",
  "solana-perf",
+ "solana-pubkey",
  "solana-pubsub-client",
  "solana-rayon-threadlimit",
  "solana-rpc",
  "solana-rpc-client",
  "solana-rpc-client-api",
  "solana-runtime",
- "solana-sdk",
+ "solana-signer",
  "solana-streamer",
+ "solana-system-interface",
+ "solana-system-transaction",
  "solana-test-validator",
  "solana-transaction-status",
  "solana-version",
@@ -7611,35 +7697,56 @@ dependencies = [
  "serde_json",
  "serial_test",
  "slab",
+ "solana-account",
  "solana-accounts-db",
+ "solana-address-lookup-table-interface",
+ "solana-bincode",
  "solana-bloom",
  "solana-bpf-loader-program",
  "solana-builtins-default-costs",
  "solana-client",
+ "solana-clock",
  "solana-compute-budget",
  "solana-compute-budget-instruction",
+ "solana-compute-budget-interface",
  "solana-compute-budget-program",
  "solana-connection-cache",
  "solana-core",
  "solana-cost-model",
  "solana-entry",
+ "solana-epoch-schedule",
  "solana-fee",
+ "solana-fee-calculator",
+ "solana-fee-structure",
  "solana-frozen-abi",
  "solana-frozen-abi-macro",
+ "solana-genesis-config",
  "solana-geyser-plugin-manager",
  "solana-gossip",
+ "solana-hard-forks",
+ "solana-hash",
+ "solana-instruction",
  "solana-keypair",
  "solana-ledger",
+ "solana-loader-v3-interface",
  "solana-logger",
  "solana-measure",
+ "solana-message",
  "solana-metrics",
+ "solana-native-token",
  "solana-net-utils",
+ "solana-nonce",
+ "solana-nonce-account",
+ "solana-packet",
  "solana-perf",
  "solana-poh",
+ "solana-poh-config",
  "solana-program-runtime",
  "solana-pubkey",
  "solana-quic-client",
+ "solana-quic-definitions",
  "solana-rayon-threadlimit",
+ "solana-rent",
  "solana-rpc",
  "solana-rpc-client-api",
  "solana-runtime",
@@ -7648,20 +7755,33 @@ dependencies = [
  "solana-sdk",
  "solana-sdk-ids",
  "solana-send-transaction-service",
+ "solana-sha256-hasher",
  "solana-short-vec",
+ "solana-shred-version",
+ "solana-signature",
+ "solana-signer",
+ "solana-slot-hashes",
+ "solana-slot-history",
  "solana-stake-program",
  "solana-streamer",
  "solana-svm",
  "solana-svm-transaction",
+ "solana-system-interface",
  "solana-system-program",
+ "solana-system-transaction",
+ "solana-sysvar",
+ "solana-time-utils",
  "solana-timings",
  "solana-tls-utils",
  "solana-tpu-client",
  "solana-tpu-client-next",
+ "solana-transaction",
+ "solana-transaction-error",
  "solana-transaction-status",
  "solana-turbine",
  "solana-unified-scheduler-logic",
  "solana-unified-scheduler-pool",
+ "solana-validator-exit",
  "solana-version",
  "solana-vortexor-receiver",
  "solana-vote",
@@ -7798,19 +7918,29 @@ dependencies = [
  "solana-core",
  "solana-faucet",
  "solana-gossip",
+ "solana-hash",
+ "solana-instruction",
+ "solana-keypair",
  "solana-local-cluster",
  "solana-logger",
  "solana-measure",
+ "solana-message",
  "solana-net-utils",
  "solana-perf",
+ "solana-pubkey",
  "solana-quic-client",
  "solana-rpc",
  "solana-rpc-client",
  "solana-runtime",
- "solana-sdk",
+ "solana-signature",
+ "solana-signer",
+ "solana-stake-interface",
  "solana-streamer",
+ "solana-system-interface",
+ "solana-time-utils",
  "solana-tps-client",
  "solana-tpu-client",
+ "solana-transaction",
  "solana-version",
 ]
 
@@ -8201,8 +8331,9 @@ dependencies = [
  "log",
  "solana-accounts-db",
  "solana-download-utils",
+ "solana-genesis-config",
+ "solana-hash",
  "solana-rpc-client",
- "solana-sdk",
 ]
 
 [[package]]
@@ -8514,18 +8645,29 @@ dependencies = [
  "serde",
  "serde_bytes",
  "sha2 0.10.9",
+ "solana-account",
  "solana-account-decoder",
  "solana-accounts-db",
+ "solana-address-lookup-table-interface",
  "solana-bpf-loader-program",
+ "solana-clock",
  "solana-cost-model",
  "solana-entry",
+ "solana-epoch-schedule",
  "solana-frozen-abi",
  "solana-frozen-abi-macro",
+ "solana-genesis-config",
+ "solana-hash",
+ "solana-instruction",
+ "solana-keypair",
  "solana-ledger",
  "solana-logger",
  "solana-measure",
+ "solana-message",
  "solana-metrics",
+ "solana-native-token",
  "solana-net-utils",
+ "solana-packet",
  "solana-perf",
  "solana-program-option",
  "solana-program-pack",
@@ -8534,15 +8676,25 @@ dependencies = [
  "solana-rayon-threadlimit",
  "solana-runtime",
  "solana-runtime-transaction",
- "solana-sdk",
+ "solana-seed-derivable",
+ "solana-sha256-hasher",
+ "solana-shred-version",
+ "solana-signature",
+ "solana-signer",
+ "solana-stake-interface",
  "solana-stake-program",
  "solana-storage-bigtable",
  "solana-storage-proto",
  "solana-streamer",
  "solana-svm",
  "solana-svm-transaction",
+ "solana-system-interface",
+ "solana-system-transaction",
+ "solana-time-utils",
  "solana-timings",
+ "solana-transaction",
  "solana-transaction-context 2.3.0",
+ "solana-transaction-error",
  "solana-transaction-status",
  "solana-vote",
  "solana-vote-program",
@@ -8643,28 +8795,52 @@ dependencies = [
  "rand 0.8.5",
  "rayon",
  "serial_test",
+ "solana-account",
  "solana-accounts-db",
  "solana-client",
+ "solana-client-traits",
+ "solana-clock",
+ "solana-commitment-config",
  "solana-core",
  "solana-download-utils",
  "solana-entry",
+ "solana-epoch-schedule",
+ "solana-genesis-config",
  "solana-gossip",
+ "solana-hard-forks",
+ "solana-hash",
+ "solana-keypair",
  "solana-ledger",
  "solana-local-cluster",
  "solana-logger",
+ "solana-message",
+ "solana-native-token",
  "solana-net-utils",
+ "solana-poh-config",
+ "solana-pubkey",
  "solana-pubsub-client",
  "solana-quic-client",
  "solana-rpc-client",
  "solana-rpc-client-api",
  "solana-runtime",
- "solana-sdk",
+ "solana-sdk-ids",
+ "solana-shred-version",
+ "solana-signer",
+ "solana-slot-hashes",
+ "solana-stake-interface",
  "solana-stake-program",
  "solana-streamer",
+ "solana-system-interface",
+ "solana-system-transaction",
  "solana-thin-client",
+ "solana-time-utils",
  "solana-tpu-client",
+ "solana-transaction",
+ "solana-transaction-error",
  "solana-turbine",
+ "solana-validator-exit",
  "solana-vote",
+ "solana-vote-interface",
  "solana-vote-program",
  "static_assertions",
  "strum",
@@ -9742,48 +9918,94 @@ dependencies = [
  "serde_derive",
  "serde_json",
  "serde_with",
+ "solana-account",
+ "solana-account-info",
  "solana-accounts-db",
+ "solana-address-lookup-table-interface",
  "solana-bpf-loader-program",
  "solana-bucket-map",
  "solana-builtins",
+ "solana-client-traits",
  "solana-clock",
+ "solana-commitment-config",
  "solana-compute-budget",
  "solana-compute-budget-instruction",
+ "solana-compute-budget-interface",
  "solana-cost-model",
+ "solana-cpi",
+ "solana-ed25519-program",
+ "solana-epoch-info",
+ "solana-epoch-rewards-hasher",
+ "solana-epoch-schedule",
+ "solana-feature-gate-interface",
  "solana-fee",
+ "solana-fee-calculator",
+ "solana-fee-structure",
  "solana-frozen-abi",
  "solana-frozen-abi-macro",
+ "solana-genesis-config",
+ "solana-hard-forks",
+ "solana-hash",
+ "solana-inflation",
+ "solana-instruction",
+ "solana-keypair",
  "solana-lattice-hash",
  "solana-loader-v3-interface",
  "solana-loader-v4-interface",
  "solana-logger",
  "solana-measure",
+ "solana-message",
  "solana-metrics",
+ "solana-native-token",
  "solana-nohash-hasher",
+ "solana-nonce",
  "solana-nonce-account",
+ "solana-packet",
  "solana-perf",
+ "solana-poh-config",
  "solana-precompile-error",
  "solana-program",
  "solana-program-runtime",
  "solana-pubkey",
  "solana-rayon-threadlimit",
+ "solana-rent",
+ "solana-rent-collector",
+ "solana-rent-debits",
+ "solana-reward-info",
  "solana-runtime",
  "solana-runtime-transaction",
  "solana-sdk",
  "solana-sdk-ids",
+ "solana-sdk-macro",
+ "solana-secp256k1-program",
+ "solana-seed-derivable",
+ "solana-serde",
  "solana-sha256-hasher",
+ "solana-signature",
+ "solana-signer",
+ "solana-slot-hashes",
+ "solana-slot-history",
+ "solana-stake-interface",
  "solana-stake-program",
  "solana-svm",
  "solana-svm-callback",
  "solana-svm-rent-collector",
  "solana-svm-transaction",
+ "solana-system-interface",
  "solana-system-program",
+ "solana-system-transaction",
+ "solana-sysvar",
+ "solana-sysvar-id",
+ "solana-time-utils",
  "solana-timings",
+ "solana-transaction",
  "solana-transaction-context 2.3.0",
+ "solana-transaction-error",
  "solana-transaction-status-client-types",
  "solana-unified-scheduler-logic",
  "solana-version",
  "solana-vote",
+ "solana-vote-interface",
  "solana-vote-program",
  "spl-generic-token",
  "static_assertions",
@@ -10168,14 +10390,27 @@ name = "solana-stake-accounts"
 version = "2.3.0"
 dependencies = [
  "clap 2.33.3",
+ "solana-account",
  "solana-clap-utils",
  "solana-cli-config",
+ "solana-client-traits",
+ "solana-clock",
+ "solana-fee-calculator",
+ "solana-genesis-config",
+ "solana-instruction",
+ "solana-keypair",
+ "solana-message",
+ "solana-native-token",
+ "solana-pubkey",
  "solana-remote-wallet",
  "solana-rpc-client",
  "solana-rpc-client-api",
  "solana-runtime",
- "solana-sdk",
+ "solana-signature",
+ "solana-signer",
+ "solana-stake-interface",
  "solana-stake-program",
+ "solana-transaction",
  "solana-version",
 ]
 

+ 11 - 1
banking-bench/Cargo.toml

@@ -17,17 +17,27 @@ log = { workspace = true }
 rand = { workspace = true }
 rayon = { workspace = true }
 solana-client = { workspace = true }
+solana-compute-budget-interface = { workspace = true }
 solana-core = { workspace = true, features = ["dev-context-only-utils"] }
 solana-gossip = { workspace = true }
+solana-hash = { workspace = true }
+solana-keypair = { workspace = true }
 solana-ledger = { workspace = true }
 solana-logger = { workspace = true }
 solana-measure = { workspace = true }
+solana-message = { workspace = true }
 solana-perf = { workspace = true }
 solana-poh = { workspace = true, features = ["dev-context-only-utils"] }
+solana-pubkey = { workspace = true }
 solana-runtime = { workspace = true, features = ["dev-context-only-utils"] }
-solana-sdk = { workspace = true }
+solana-signature = { workspace = true }
+solana-signer = { workspace = true }
 solana-streamer = { workspace = true }
+solana-system-interface = { workspace = true }
+solana-system-transaction = { workspace = true }
+solana-time-utils = { workspace = true }
 solana-tpu-client = { workspace = true }
+solana-transaction = { workspace = true }
 solana-version = { workspace = true }
 
 [features]

+ 12 - 11
banking-bench/src/main.rs

@@ -7,12 +7,15 @@ use {
     log::*,
     rand::{thread_rng, Rng},
     rayon::prelude::*,
+    solana_compute_budget_interface::ComputeBudgetInstruction,
     solana_core::{
         banking_stage::{update_bank_forks_and_poh_recorder_for_new_tpu_bank, BankingStage},
         banking_trace::{BankingTracer, Channels, BANKING_TRACE_DIR_DEFAULT_BYTE_LIMIT},
         validator::{BlockProductionMethod, TransactionStructure},
     },
     solana_gossip::cluster_info::{ClusterInfo, Node},
+    solana_hash::Hash,
+    solana_keypair::Keypair,
     solana_ledger::{
         blockstore::Blockstore,
         genesis_utils::{create_genesis_config, GenesisConfigInfo},
@@ -20,22 +23,20 @@ use {
         leader_schedule_cache::LeaderScheduleCache,
     },
     solana_measure::measure::Measure,
+    solana_message::Message,
     solana_perf::packet::{to_packet_batches, PacketBatch},
     solana_poh::poh_recorder::{create_test_recorder, PohRecorder, WorkingBankEntry},
+    solana_pubkey::{self as pubkey, Pubkey},
     solana_runtime::{
         bank::Bank, bank_forks::BankForks, prioritization_fee_cache::PrioritizationFeeCache,
     },
-    solana_sdk::{
-        compute_budget::ComputeBudgetInstruction,
-        hash::Hash,
-        message::Message,
-        pubkey::{self, Pubkey},
-        signature::{Keypair, Signature, Signer},
-        system_instruction, system_transaction,
-        timing::timestamp,
-        transaction::Transaction,
-    },
+    solana_signature::Signature,
+    solana_signer::Signer,
     solana_streamer::socket::SocketAddrSpace,
+    solana_system_interface::instruction as system_instruction,
+    solana_system_transaction as system_transaction,
+    solana_time_utils::timestamp,
+    solana_transaction::Transaction,
     std::{
         sync::{atomic::Ordering, Arc, RwLock},
         thread::sleep,
@@ -486,7 +487,7 @@ fn main() {
     let mut tx_total_us = 0;
     let base_tx_count = bank.transaction_count();
     let mut txs_processed = 0;
-    let collector = solana_sdk::pubkey::new_rand();
+    let collector = solana_pubkey::new_rand();
     let mut total_sent = 0;
     for current_iteration_index in 0..iterations {
         trace!("RUNNING ITERATION {}", current_iteration_index);

+ 9 - 1
banks-client/Cargo.toml

@@ -12,10 +12,15 @@ edition = { workspace = true }
 [dependencies]
 borsh = { workspace = true }
 futures = { workspace = true }
+solana-account = { workspace = true }
 solana-banks-interface = { workspace = true }
+solana-commitment-config = { workspace = true }
+solana-message = { workspace = true }
 solana-program = { workspace = true }
-solana-sdk = { workspace = true }
+solana-signature = { workspace = true }
+solana-transaction = { workspace = true }
 solana-transaction-context = { workspace = true }
+solana-transaction-error = { workspace = true }
 tarpc = { workspace = true, features = ["full"] }
 thiserror = { workspace = true }
 tokio = { workspace = true, features = ["full"] }
@@ -23,7 +28,10 @@ tokio-serde = { workspace = true, features = ["bincode"] }
 
 [dev-dependencies]
 solana-banks-server = { workspace = true }
+solana-pubkey = { workspace = true }
 solana-runtime = { workspace = true, features = ["dev-context-only-utils"] }
+solana-signer = { workspace = true }
+solana-system-interface = { workspace = true }
 
 [lib]
 crate-type = ["lib"]

+ 1 - 1
banks-client/src/error.rs

@@ -1,6 +1,6 @@
 use {
-    solana_sdk::{transaction::TransactionError, transport::TransportError},
     solana_transaction_context::TransactionReturnData,
+    solana_transaction_error::{TransactionError, TransportError},
     std::io,
     tarpc::client::RpcError,
     thiserror::Error,

+ 14 - 12
banks-client/src/lib.rs

@@ -12,20 +12,18 @@ pub use {
 use {
     borsh::BorshDeserialize,
     futures::future::join_all,
+    solana_account::{from_account, Account},
     solana_banks_interface::{
         BanksRequest, BanksResponse, BanksTransactionResultWithMetadata,
         BanksTransactionResultWithSimulation,
     },
+    solana_commitment_config::CommitmentLevel,
+    solana_message::Message,
     solana_program::{
         clock::Slot, hash::Hash, program_pack::Pack, pubkey::Pubkey, rent::Rent, sysvar::Sysvar,
     },
-    solana_sdk::{
-        account::{from_account, Account},
-        commitment_config::CommitmentLevel,
-        message::Message,
-        signature::Signature,
-        transaction::{self, VersionedTransaction},
-    },
+    solana_signature::Signature,
+    solana_transaction::versioned::VersionedTransaction,
     tarpc::{
         client::{self, NewClient, RequestDispatch},
         context::{self, Context},
@@ -38,6 +36,10 @@ use {
 
 mod error;
 
+mod transaction {
+    pub use solana_transaction_error::TransactionResult as Result;
+}
+
 // This exists only for backward compatibility
 pub trait BanksClientExt {}
 
@@ -532,9 +534,9 @@ mod tests {
             bank::Bank, bank_forks::BankForks, commitment::BlockCommitmentCache,
             genesis_utils::create_genesis_config,
         },
-        solana_sdk::{
-            message::Message, signature::Signer, system_instruction, transaction::Transaction,
-        },
+        solana_signer::Signer,
+        solana_system_interface::instruction as system_instruction,
+        solana_transaction::Transaction,
         std::sync::{Arc, RwLock},
         tarpc::transport,
         tokio::{
@@ -564,7 +566,7 @@ mod tests {
         ));
         let bank_forks = BankForks::new_rw_arc(bank);
 
-        let bob_pubkey = solana_sdk::pubkey::new_rand();
+        let bob_pubkey = solana_pubkey::new_rand();
         let mint_pubkey = genesis.mint_keypair.pubkey();
         let instruction = system_instruction::transfer(&mint_pubkey, &bob_pubkey, 1);
         let message = Message::new(&[instruction], Some(&mint_pubkey));
@@ -604,7 +606,7 @@ mod tests {
         let bank_forks = BankForks::new_rw_arc(bank);
 
         let mint_pubkey = &genesis.mint_keypair.pubkey();
-        let bob_pubkey = solana_sdk::pubkey::new_rand();
+        let bob_pubkey = solana_pubkey::new_rand();
         let instruction = system_instruction::transfer(mint_pubkey, &bob_pubkey, 1);
         let message = Message::new(&[instruction], Some(mint_pubkey));
 

+ 9 - 1
banks-interface/Cargo.toml

@@ -12,8 +12,16 @@ edition = { workspace = true }
 [dependencies]
 serde = { workspace = true }
 serde_derive = { workspace = true }
-solana-sdk = { workspace = true }
+solana-account = { workspace = true }
+solana-clock = { workspace = true }
+solana-commitment-config = { workspace = true, features = [ "serde" ] }
+solana-hash = { workspace = true }
+solana-message = { workspace = true, features = [ "serde" ] }
+solana-pubkey = { workspace = true }
+solana-signature = { workspace = true, features = [ "serde" ] }
+solana-transaction = { workspace = true, features = [ "serde" ] }
 solana-transaction-context = { workspace = true }
+solana-transaction-error = { workspace = true, features = [ "serde" ] }
 tarpc = { workspace = true, features = ["full"] }
 
 [lib]

+ 13 - 11
banks-interface/src/lib.rs

@@ -2,20 +2,22 @@
 
 use {
     serde_derive::{Deserialize, Serialize},
-    solana_sdk::{
-        account::Account,
-        clock::Slot,
-        commitment_config::CommitmentLevel,
-        hash::Hash,
-        inner_instruction::InnerInstructions,
-        message::Message,
-        pubkey::Pubkey,
-        signature::Signature,
-        transaction::{self, TransactionError, VersionedTransaction},
-    },
+    solana_account::Account,
+    solana_clock::Slot,
+    solana_commitment_config::CommitmentLevel,
+    solana_hash::Hash,
+    solana_message::{inner_instruction::InnerInstructions, Message},
+    solana_pubkey::Pubkey,
+    solana_signature::Signature,
+    solana_transaction::versioned::VersionedTransaction,
     solana_transaction_context::TransactionReturnData,
+    solana_transaction_error::TransactionError,
 };
 
+mod transaction {
+    pub use solana_transaction_error::TransactionResult as Result;
+}
+
 #[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
 pub enum TransactionConfirmationStatus {
     Processed,

+ 9 - 1
banks-server/Cargo.toml

@@ -14,13 +14,21 @@ agave-feature-set = { workspace = true }
 bincode = { workspace = true }
 crossbeam-channel = { workspace = true }
 futures = { workspace = true }
+solana-account = { workspace = true }
 solana-banks-interface = { workspace = true }
 solana-client = { workspace = true }
+solana-clock = { workspace = true }
+solana-commitment-config = { workspace = true }
+solana-hash = { workspace = true }
+solana-message = { workspace = true }
+solana-pubkey = { workspace = true }
 solana-runtime = { workspace = true }
 solana-runtime-transaction = { workspace = true }
-solana-sdk = { workspace = true }
 solana-send-transaction-service = { workspace = true }
+solana-signature = { workspace = true }
 solana-svm = { workspace = true }
+solana-transaction = { workspace = true }
+solana-transaction-error = { workspace = true }
 tarpc = { workspace = true, features = ["full"] }
 tokio = { workspace = true, features = ["full"] }
 tokio-serde = { workspace = true, features = ["bincode"] }

+ 15 - 10
banks-server/src/banks_server.rs

@@ -2,33 +2,34 @@ use {
     bincode::{deserialize, serialize},
     crossbeam_channel::{unbounded, Receiver, Sender},
     futures::{future, prelude::stream::StreamExt},
+    solana_account::Account,
     solana_banks_interface::{
         Banks, BanksRequest, BanksResponse, BanksTransactionResultWithMetadata,
         BanksTransactionResultWithSimulation, TransactionConfirmationStatus, TransactionMetadata,
         TransactionSimulationDetails, TransactionStatus,
     },
     solana_client::connection_cache::ConnectionCache,
+    solana_clock::Slot,
+    solana_commitment_config::CommitmentLevel,
+    solana_hash::Hash,
+    solana_message::{Message, SanitizedMessage},
+    solana_pubkey::Pubkey,
     solana_runtime::{
         bank::{Bank, TransactionSimulationResult},
         bank_forks::BankForks,
         commitment::BlockCommitmentCache,
     },
     solana_runtime_transaction::runtime_transaction::RuntimeTransaction,
-    solana_sdk::{
-        account::Account,
-        clock::Slot,
-        commitment_config::CommitmentLevel,
-        hash::Hash,
-        message::{Message, SanitizedMessage},
-        pubkey::Pubkey,
-        signature::Signature,
-        transaction::{self, MessageHash, SanitizedTransaction, VersionedTransaction},
-    },
     solana_send_transaction_service::{
         send_transaction_service::{Config, SendTransactionService, TransactionInfo},
         tpu_info::NullTpuInfo,
         transaction_client::ConnectionCacheClient,
     },
+    solana_signature::Signature,
+    solana_transaction::{
+        sanitized::{MessageHash, SanitizedTransaction},
+        versioned::VersionedTransaction,
+    },
     std::{
         io,
         net::{Ipv4Addr, SocketAddr},
@@ -47,6 +48,10 @@ use {
     tokio_serde::formats::Bincode,
 };
 
+mod transaction {
+    pub use solana_transaction_error::TransactionResult as Result;
+}
+
 #[derive(Clone)]
 struct BanksServer {
     bank_forks: Arc<RwLock<BankForks>>,

+ 21 - 1
bench-tps/Cargo.toml

@@ -19,28 +19,46 @@ rayon = { workspace = true }
 serde = { workspace = true }
 serde_json = { workspace = true }
 serde_yaml = { workspace = true }
+
+solana-account = { workspace = true }
 solana-clap-utils = { workspace = true }
 solana-cli-config = { workspace = true }
 solana-client = { workspace = true }
+solana-clock = { workspace = true }
+solana-commitment-config = { workspace = true }
+solana-compute-budget-interface = { workspace = true }
 solana-connection-cache = { workspace = true }
 solana-core = { workspace = true, features = ["dev-context-only-utils"] }
 solana-faucet = { workspace = true }
+solana-fee-calculator = { workspace = true }
 solana-genesis = { workspace = true }
+solana-genesis-config = { workspace = true }
 solana-gossip = { workspace = true }
+solana-hash = { workspace = true }
+solana-instruction = { workspace = true }
+solana-keypair = { workspace = true }
 solana-logger = "=2.3.1"
 solana-measure = { workspace = true }
+solana-message = { workspace = true }
 solana-metrics = { workspace = true }
+solana-native-token = { workspace = true }
 solana-net-utils = { workspace = true }
+solana-nonce = { workspace = true }
+solana-pubkey = { workspace = true }
 solana-quic-client = { workspace = true }
 solana-rpc = { workspace = true }
 solana-rpc-client = { workspace = true }
 solana-rpc-client-api = { workspace = true }
 solana-rpc-client-nonce-utils = { workspace = true }
 solana-runtime = { workspace = true, features = ["dev-context-only-utils"] }
-solana-sdk = "=2.2.2"
+solana-signature = { workspace = true }
+solana-signer = { workspace = true }
 solana-streamer = { workspace = true }
+solana-system-interface = { workspace = true }
+solana-time-utils = { workspace = true }
 solana-tps-client = { workspace = true }
 solana-tpu-client = { workspace = true }
+solana-transaction = { workspace = true }
 solana-transaction-status = { workspace = true }
 solana-version = { workspace = true }
 spl-instruction-padding = { version = "=0.3.0", features = ["no-entrypoint"] }
@@ -50,7 +68,9 @@ thiserror = { workspace = true }
 agave-feature-set = { workspace = true }
 serial_test = { workspace = true }
 solana-local-cluster = { workspace = true }
+solana-rent = { workspace = true }
 solana-runtime = { workspace = true, features = ["dev-context-only-utils"] }
+solana-sdk-ids = { workspace = true }
 solana-test-validator = { workspace = true }
 solana-tps-client = { workspace = true, features = ["bank-client"] }
 tempfile = { workspace = true }

+ 18 - 21
bench-tps/src/bench.rs

@@ -11,24 +11,23 @@ use {
     log::*,
     rand::distributions::{Distribution, Uniform},
     rayon::prelude::*,
+    solana_account::Account,
     solana_client::nonce_utils,
+    solana_clock::{DEFAULT_MS_PER_SLOT, DEFAULT_S_PER_SLOT, MAX_PROCESSING_AGE},
+    solana_compute_budget_interface::ComputeBudgetInstruction,
+    solana_hash::Hash,
+    solana_instruction::{AccountMeta, Instruction},
+    solana_keypair::Keypair,
+    solana_message::Message,
     solana_metrics::{self, datapoint_info},
+    solana_native_token::Sol,
+    solana_pubkey::Pubkey,
     solana_rpc_client_api::request::MAX_MULTIPLE_ACCOUNTS,
-    solana_sdk::{
-        account::Account,
-        clock::{DEFAULT_MS_PER_SLOT, DEFAULT_S_PER_SLOT, MAX_PROCESSING_AGE},
-        compute_budget::ComputeBudgetInstruction,
-        hash::Hash,
-        instruction::{AccountMeta, Instruction},
-        message::Message,
-        native_token::Sol,
-        pubkey::Pubkey,
-        signature::{Keypair, Signer},
-        system_instruction,
-        timing::timestamp,
-        transaction::Transaction,
-    },
+    solana_signer::Signer,
+    solana_system_interface::instruction as system_instruction,
+    solana_time_utils::timestamp,
     solana_tps_client::*,
+    solana_transaction::Transaction,
     spl_instruction_padding::instruction::wrap_instruction,
     std::{
         collections::{HashSet, VecDeque},
@@ -1225,14 +1224,12 @@ mod tests {
     use {
         super::*,
         agave_feature_set::FeatureSet,
+        solana_commitment_config::CommitmentConfig,
+        solana_fee_calculator::FeeRateGovernor,
+        solana_genesis_config::{create_genesis_config, GenesisConfig},
+        solana_native_token::sol_to_lamports,
+        solana_nonce::state::State,
         solana_runtime::{bank::Bank, bank_client::BankClient, bank_forks::BankForks},
-        solana_sdk::{
-            commitment_config::CommitmentConfig,
-            fee_calculator::FeeRateGovernor,
-            genesis_config::{create_genesis_config, GenesisConfig},
-            native_token::sol_to_lamports,
-            nonce::State,
-        },
     };
 
     fn bank_with_all_features(

+ 7 - 8
bench-tps/src/cli.rs

@@ -5,12 +5,10 @@ use {
         input_validators::{is_keypair, is_url, is_url_or_moniker, is_within_range},
     },
     solana_cli_config::{ConfigInput, CONFIG_FILE},
-    solana_sdk::{
-        commitment_config::CommitmentConfig,
-        fee_calculator::FeeRateGovernor,
-        pubkey::Pubkey,
-        signature::{read_keypair_file, Keypair},
-    },
+    solana_commitment_config::CommitmentConfig,
+    solana_fee_calculator::FeeRateGovernor,
+    solana_keypair::{read_keypair_file, Keypair},
+    solana_pubkey::Pubkey,
     solana_streamer::quic::DEFAULT_MAX_CONNECTIONS_PER_IPADDR_PER_MINUTE,
     solana_tpu_client::tpu_client::{DEFAULT_TPU_CONNECTION_POOL_SIZE, DEFAULT_TPU_USE_QUIC},
     std::{
@@ -19,7 +17,7 @@ use {
     },
 };
 
-const NUM_LAMPORTS_PER_ACCOUNT_DEFAULT: u64 = solana_sdk::native_token::LAMPORTS_PER_SOL;
+const NUM_LAMPORTS_PER_ACCOUNT_DEFAULT: u64 = solana_native_token::LAMPORTS_PER_SOL;
 
 #[derive(Eq, PartialEq, Debug)]
 pub enum ExternalClientType {
@@ -641,7 +639,8 @@ pub fn parse_args(matches: &ArgMatches) -> Result<Config, &'static str> {
 mod tests {
     use {
         super::*,
-        solana_sdk::signature::{read_keypair_file, write_keypair_file, Keypair, Signer},
+        solana_keypair::{read_keypair_file, write_keypair_file, Keypair},
+        solana_signer::Signer,
         std::{
             net::{IpAddr, Ipv4Addr},
             time::Duration,

+ 2 - 1
bench-tps/src/keypairs.rs

@@ -2,7 +2,8 @@ use {
     crate::bench::{fund_keypairs, generate_and_fund_keypairs},
     log::*,
     solana_genesis::Base64Account,
-    solana_sdk::signature::{Keypair, Signer},
+    solana_keypair::Keypair,
+    solana_signer::Signer,
     solana_tps_client::TpsClient,
     std::{collections::HashMap, fs::File, path::Path, process::exit, sync::Arc},
 };

+ 3 - 6
bench-tps/src/log_transaction_service.rs

@@ -7,14 +7,11 @@ use {
     crossbeam_channel::{select, tick, unbounded, Receiver, Sender},
     log::*,
     serde::Serialize,
+    solana_clock::{Slot, DEFAULT_MS_PER_SLOT, MAX_PROCESSING_AGE},
+    solana_commitment_config::{CommitmentConfig, CommitmentLevel},
     solana_measure::measure::Measure,
     solana_rpc_client_api::config::RpcBlockConfig,
-    solana_sdk::{
-        clock::{DEFAULT_MS_PER_SLOT, MAX_PROCESSING_AGE},
-        commitment_config::{CommitmentConfig, CommitmentLevel},
-        signature::Signature,
-        slot_history::Slot,
-    },
+    solana_signature::Signature,
     solana_tps_client::TpsClient,
     solana_transaction_status::{
         option_serializer::OptionSerializer, EncodedTransactionWithStatusMeta, RewardType,

+ 6 - 7
bench-tps/src/main.rs

@@ -8,16 +8,15 @@ use {
         send_batch::{generate_durable_nonce_accounts, generate_keypairs},
     },
     solana_client::connection_cache::ConnectionCache,
+    solana_commitment_config::CommitmentConfig,
+    solana_fee_calculator::FeeRateGovernor,
     solana_genesis::Base64Account,
+    solana_keypair::Keypair,
+    solana_pubkey::Pubkey,
     solana_rpc_client::rpc_client::RpcClient,
-    solana_sdk::{
-        commitment_config::CommitmentConfig,
-        fee_calculator::FeeRateGovernor,
-        pubkey::Pubkey,
-        signature::{Keypair, Signer},
-        system_program,
-    },
+    solana_signer::Signer,
     solana_streamer::streamer::StakedNodes,
+    solana_system_interface::program as system_program,
     solana_tps_client::TpsClient,
     solana_tpu_client::tpu_client::{TpuClient, TpuClientConfig},
     std::{

+ 1 - 1
bench-tps/src/perf_utils.rs

@@ -1,6 +1,6 @@
 use {
     log::*,
-    solana_sdk::commitment_config::CommitmentConfig,
+    solana_commitment_config::CommitmentConfig,
     solana_tps_client::TpsClient,
     std::{
         sync::{

+ 2 - 3
bench-tps/src/rpc_with_retry_utils.rs

@@ -1,8 +1,7 @@
 use {
     log::*,
-    solana_sdk::{
-        clock::DEFAULT_MS_PER_SLOT, commitment_config::CommitmentConfig, slot_history::Slot,
-    },
+    solana_clock::{Slot, DEFAULT_MS_PER_SLOT},
+    solana_commitment_config::CommitmentConfig,
     solana_tps_client::{TpsClient, TpsClientResult},
     std::{sync::Arc, thread::sleep, time::Duration},
 };

+ 10 - 12
bench-tps/src/send_batch.rs

@@ -1,21 +1,19 @@
 use {
     log::*,
     rayon::prelude::*,
+    solana_commitment_config::CommitmentConfig,
+    solana_compute_budget_interface::ComputeBudgetInstruction,
     solana_core::gen_keys::GenKeys,
+    solana_hash::Hash,
+    solana_keypair::Keypair,
     solana_measure::measure::Measure,
-    solana_sdk::{
-        commitment_config::CommitmentConfig,
-        compute_budget::ComputeBudgetInstruction,
-        hash::Hash,
-        message::Message,
-        nonce::State,
-        pubkey::Pubkey,
-        signature::{Keypair, Signer},
-        signer::signers::Signers,
-        system_instruction,
-        transaction::Transaction,
-    },
+    solana_message::Message,
+    solana_nonce::state::State,
+    solana_pubkey::Pubkey,
+    solana_signer::{signers::Signers, Signer},
+    solana_system_interface::instruction as system_instruction,
     solana_tps_client::*,
+    solana_transaction::Transaction,
     std::{
         collections::HashSet,
         marker::Send,

+ 7 - 8
bench-tps/tests/bench_tps.rs

@@ -2,29 +2,28 @@
 
 use {
     serial_test::serial,
+    solana_account::{Account, AccountSharedData},
     solana_bench_tps::{
         bench::{do_bench_tps, generate_and_fund_keypairs},
         cli::{Config, InstructionPaddingConfig},
         send_batch::generate_durable_nonce_accounts,
     },
+    solana_commitment_config::CommitmentConfig,
     solana_connection_cache::connection_cache::NewConnectionConfig,
     solana_core::validator::ValidatorConfig,
     solana_faucet::faucet::run_local_faucet,
+    solana_fee_calculator::FeeRateGovernor,
+    solana_keypair::Keypair,
     solana_local_cluster::{
         cluster::Cluster,
         local_cluster::{ClusterConfig, LocalCluster},
         validator_configs::make_identical_validator_configs,
     },
     solana_quic_client::{QuicConfig, QuicConnectionManager},
+    solana_rent::Rent,
     solana_rpc::rpc::JsonRpcConfig,
     solana_rpc_client::rpc_client::RpcClient,
-    solana_sdk::{
-        account::{Account, AccountSharedData},
-        commitment_config::CommitmentConfig,
-        fee_calculator::FeeRateGovernor,
-        rent::Rent,
-        signature::{Keypair, Signer},
-    },
+    solana_signer::Signer,
     solana_streamer::socket::SocketAddrSpace,
     solana_test_validator::TestValidatorGenesis,
     solana_tpu_client::tpu_client::{TpuClient, TpuClientConfig},
@@ -35,7 +34,7 @@ fn program_account(program_data: &[u8]) -> AccountSharedData {
     AccountSharedData::from(Account {
         lamports: Rent::default().minimum_balance(program_data.len()).min(1),
         data: program_data.to_vec(),
-        owner: solana_sdk::bpf_loader::id(),
+        owner: solana_sdk_ids::bpf_loader::id(),
         executable: true,
         rent_epoch: 0,
     })

+ 6 - 1
bench-vote/Cargo.toml

@@ -15,10 +15,15 @@ crossbeam-channel = { workspace = true }
 solana-clap-utils = { workspace = true }
 solana-client = { workspace = true }
 solana-connection-cache = { workspace = true }
+solana-hash = { workspace = true }
+solana-keypair = { workspace = true }
 solana-logger = { workspace = true }
+solana-message = { workspace = true }
 solana-net-utils = { workspace = true }
-solana-sdk = { workspace = true }
+solana-pubkey = { workspace = true }
+solana-signer = { workspace = true }
 solana-streamer = { workspace = true }
+solana-transaction = { workspace = true }
 solana-version = { workspace = true }
 solana-vote-program = { workspace = true }
 

+ 6 - 4
bench-vote/src/main.rs

@@ -6,16 +6,18 @@ use {
     solana_clap_utils::{input_parsers::keypair_of, input_validators::is_keypair_or_ask_keyword},
     solana_client::connection_cache::ConnectionCache,
     solana_connection_cache::client_connection::ClientConnection,
+    solana_hash::Hash,
+    solana_keypair::Keypair,
+    solana_message::Message,
     solana_net_utils::{bind_to_unspecified, SocketConfig},
-    solana_sdk::{
-        hash::Hash, message::Message, pubkey::Pubkey, signature::Keypair, signer::Signer,
-        transaction::Transaction,
-    },
+    solana_pubkey::Pubkey,
+    solana_signer::Signer,
     solana_streamer::{
         packet::PacketBatchRecycler,
         quic::{spawn_server_multi, QuicServerParams},
         streamer::{receiver, PacketBatchReceiver, StakedNodes, StreamerReceiveStats},
     },
+    solana_transaction::Transaction,
     solana_vote_program::{vote_instruction, vote_state::Vote},
     std::{
         cmp::max,

+ 4 - 1
cli/Cargo.toml

@@ -47,6 +47,8 @@ solana-decode-error = "=2.2.1"
 solana-epoch-schedule = "=2.2.1"
 solana-feature-gate-client = "=0.0.2"
 solana-feature-gate-interface = "=2.2.1"
+solana-fee-calculator = "=2.2.1"
+solana-fee-structure = "=2.2.1"
 solana-hash = "=2.2.1"
 solana-instruction = "=2.2.1"
 solana-keypair = "=2.2.1"
@@ -74,6 +76,7 @@ solana-sdk-ids = "=2.2.1"
 solana-signature = { version = "=2.2.1", default-features = false }
 solana-signer = "=2.2.1"
 solana-slot-history = "=2.2.1"
+solana-stake-interface = "=1.2.1"
 solana-streamer = { workspace = true }
 solana-system-interface = { version = "=1.0", features = ["bincode"] }
 solana-sysvar = "=2.2.1"
@@ -95,7 +98,7 @@ solana-faucet = { workspace = true }
 solana-nonce-account = { workspace = true }
 solana-presigner = { workspace = true }
 solana-rpc = { workspace = true }
-solana-sdk = { workspace = true }
+solana-sdk = { workspace = true, default-features = false }
 solana-sha256-hasher = { workspace = true }
 solana-streamer = { workspace = true }
 solana-test-validator = { workspace = true }

+ 4 - 5
cli/tests/address_lookup_table.rs

@@ -8,11 +8,10 @@ use {
     },
     solana_cli_output::{CliAddressLookupTable, CliAddressLookupTableCreated, OutputFormat},
     solana_faucet::faucet::run_local_faucet,
-    solana_sdk::{
-        native_token::LAMPORTS_PER_SOL,
-        pubkey::Pubkey,
-        signature::{Keypair, Signer},
-    },
+    solana_keypair::Keypair,
+    solana_native_token::LAMPORTS_PER_SOL,
+    solana_pubkey::Pubkey,
+    solana_signer::Signer,
     solana_streamer::socket::SocketAddrSpace,
     solana_test_validator::TestValidator,
     std::str::FromStr,

+ 4 - 5
cli/tests/cluster_query.rs

@@ -6,12 +6,11 @@ use {
     },
     solana_commitment_config::CommitmentConfig,
     solana_faucet::faucet::run_local_faucet,
+    solana_fee_structure::FeeStructure,
+    solana_keypair::Keypair,
+    solana_native_token::sol_to_lamports,
     solana_rpc_client::rpc_client::RpcClient,
-    solana_sdk::{
-        fee::FeeStructure,
-        native_token::sol_to_lamports,
-        signature::{Keypair, Signer},
-    },
+    solana_signer::Signer,
     solana_streamer::socket::SocketAddrSpace,
     solana_test_validator::TestValidator,
     std::time::Duration,

+ 6 - 7
cli/tests/nonce.rs

@@ -9,16 +9,15 @@ use {
     solana_cli_output::{parse_sign_only_reply_string, OutputFormat},
     solana_commitment_config::CommitmentConfig,
     solana_faucet::faucet::run_local_faucet,
+    solana_hash::Hash,
+    solana_keypair::{keypair_from_seed, Keypair},
+    solana_native_token::sol_to_lamports,
+    solana_pubkey::Pubkey,
     solana_rpc_client::rpc_client::RpcClient,
     solana_rpc_client_nonce_utils::blockhash_query::{self, BlockhashQuery},
-    solana_sdk::{
-        hash::Hash,
-        native_token::sol_to_lamports,
-        pubkey::Pubkey,
-        signature::{keypair_from_seed, Keypair, Signer},
-        system_program,
-    },
+    solana_signer::Signer,
     solana_streamer::socket::SocketAddrSpace,
+    solana_system_interface::program as system_program,
     solana_test_validator::TestValidator,
     test_case::test_case,
 };

+ 13 - 14
cli/tests/program.rs

@@ -6,6 +6,8 @@ use {
     agave_feature_set::enable_alt_bn128_syscall,
     assert_matches::assert_matches,
     serde_json::Value,
+    solana_account::{state_traits::StateMut, ReadableAccount},
+    solana_borsh::v1::try_from_slice_unchecked,
     solana_cli::{
         cli::{process_command, CliCommand, CliConfig},
         program::{ProgramCliCommand, CLOSE_PROGRAM_WARNING},
@@ -15,27 +17,24 @@ use {
     solana_cli_output::{parse_sign_only_reply_string, OutputFormat},
     solana_client::rpc_config::RpcSendTransactionConfig,
     solana_commitment_config::CommitmentConfig,
+    solana_compute_budget_interface::ComputeBudgetInstruction,
     solana_faucet::faucet::run_local_faucet,
+    solana_fee_calculator::FeeRateGovernor,
+    solana_keypair::Keypair,
+    solana_loader_v3_interface::state::UpgradeableLoaderState,
+    solana_pubkey::Pubkey,
+    solana_rent::Rent,
     solana_rpc::rpc::JsonRpcConfig,
     solana_rpc_client::rpc_client::{GetConfirmedSignaturesForAddress2Config, RpcClient},
     solana_rpc_client_api::config::RpcTransactionConfig,
     solana_rpc_client_nonce_utils::blockhash_query::BlockhashQuery,
-    solana_sdk::{
-        account::ReadableAccount,
-        account_utils::StateMut,
-        borsh1::try_from_slice_unchecked,
-        bpf_loader_upgradeable::{self, UpgradeableLoaderState},
-        compute_budget::{self, ComputeBudgetInstruction},
-        fee_calculator::FeeRateGovernor,
-        pubkey::Pubkey,
-        rent::Rent,
-        signature::{Keypair, NullSigner, Signature, Signer},
-        system_program,
-        transaction::Transaction,
-    },
-    solana_sdk_ids::loader_v4,
+    solana_sdk_ids::{bpf_loader_upgradeable, compute_budget, loader_v4},
+    solana_signature::Signature,
+    solana_signer::{null_signer::NullSigner, Signer},
     solana_streamer::socket::SocketAddrSpace,
+    solana_system_interface::program as system_program,
     solana_test_validator::TestValidatorGenesis,
+    solana_transaction::Transaction,
     solana_transaction_status::UiTransactionEncoding,
     std::{
         env,

+ 3 - 4
cli/tests/request_airdrop.rs

@@ -3,11 +3,10 @@ use {
     solana_cli::cli::{process_command, CliCommand, CliConfig},
     solana_commitment_config::CommitmentConfig,
     solana_faucet::faucet::run_local_faucet,
+    solana_keypair::Keypair,
+    solana_native_token::sol_to_lamports,
     solana_rpc_client::rpc_client::RpcClient,
-    solana_sdk::{
-        native_token::sol_to_lamports,
-        signature::{Keypair, Signer},
-    },
+    solana_signer::Signer,
     solana_streamer::socket::SocketAddrSpace,
     solana_test_validator::TestValidator,
 };

+ 14 - 15
cli/tests/stake.rs

@@ -1,6 +1,7 @@
 #![allow(clippy::arithmetic_side_effects)]
 use {
     assert_matches::assert_matches,
+    solana_account::state_traits::StateMut,
     solana_cli::{
         check_balance,
         cli::{process_command, request_and_confirm_airdrop, CliCommand, CliConfig},
@@ -10,25 +11,23 @@ use {
     },
     solana_cli_output::{parse_sign_only_reply_string, OutputFormat},
     solana_commitment_config::CommitmentConfig,
+    solana_epoch_schedule::EpochSchedule,
     solana_faucet::faucet::run_local_faucet,
+    solana_fee_calculator::FeeRateGovernor,
+    solana_fee_structure::FeeStructure,
+    solana_keypair::{keypair_from_seed, Keypair},
+    solana_native_token::sol_to_lamports,
+    solana_nonce::state::State as NonceState,
+    solana_pubkey::Pubkey,
+    solana_rent::Rent,
     solana_rpc_client::rpc_client::RpcClient,
     solana_rpc_client_api::request::DELINQUENT_VALIDATOR_SLOT_DISTANCE,
     solana_rpc_client_nonce_utils::blockhash_query::{self, BlockhashQuery},
-    solana_sdk::{
-        account_utils::StateMut,
-        epoch_schedule::EpochSchedule,
-        fee::FeeStructure,
-        fee_calculator::FeeRateGovernor,
-        native_token::sol_to_lamports,
-        nonce::State as NonceState,
-        pubkey::Pubkey,
-        rent::Rent,
-        signature::{keypair_from_seed, Keypair, Signer},
-        stake::{
-            self,
-            instruction::LockupArgs,
-            state::{Lockup, StakeAuthorize, StakeStateV2},
-        },
+    solana_signer::Signer,
+    solana_stake_interface::{
+        self as stake,
+        instruction::LockupArgs,
+        state::{Lockup, StakeAuthorize, StakeStateV2},
     },
     solana_streamer::socket::SocketAddrSpace,
     solana_test_validator::{TestValidator, TestValidatorGenesis},

+ 10 - 10
cli/tests/transfer.rs

@@ -8,20 +8,20 @@ use {
     },
     solana_cli_output::{parse_sign_only_reply_string, OutputFormat},
     solana_commitment_config::CommitmentConfig,
+    solana_compute_budget_interface::ComputeBudgetInstruction,
     solana_faucet::faucet::run_local_faucet,
+    solana_fee_structure::FeeStructure,
+    solana_keypair::{keypair_from_seed, Keypair},
+    solana_message::Message,
+    solana_native_token::sol_to_lamports,
+    solana_nonce::state::State as NonceState,
+    solana_pubkey::Pubkey,
     solana_rpc_client::rpc_client::RpcClient,
     solana_rpc_client_nonce_utils::blockhash_query::{self, BlockhashQuery},
-    solana_sdk::{
-        compute_budget::ComputeBudgetInstruction,
-        fee::FeeStructure,
-        message::Message,
-        native_token::sol_to_lamports,
-        nonce::State as NonceState,
-        pubkey::Pubkey,
-        signature::{keypair_from_seed, Keypair, NullSigner, Signer},
-        stake, system_instruction,
-    },
+    solana_signer::{null_signer::NullSigner, Signer},
+    solana_stake_interface as stake,
     solana_streamer::socket::SocketAddrSpace,
+    solana_system_interface::instruction as system_instruction,
     solana_test_validator::TestValidator,
     test_case::test_case,
 };

+ 2 - 1
cli/tests/validator_info.rs

@@ -6,8 +6,9 @@ use {
     },
     solana_commitment_config::CommitmentConfig,
     solana_faucet::faucet::run_local_faucet,
+    solana_keypair::{keypair_from_seed, Keypair},
     solana_rpc_client::rpc_client::RpcClient,
-    solana_sdk::signature::{keypair_from_seed, Keypair, Signer},
+    solana_signer::Signer,
     solana_streamer::socket::SocketAddrSpace,
     solana_test_validator::TestValidator,
     test_case::test_case,

+ 3 - 4
cli/tests/vote.rs

@@ -1,5 +1,6 @@
 #![allow(clippy::arithmetic_side_effects)]
 use {
+    solana_account::state_traits::StateMut,
     solana_cli::{
         check_balance,
         cli::{process_command, request_and_confirm_airdrop, CliCommand, CliConfig},
@@ -8,12 +9,10 @@ use {
     solana_cli_output::{parse_sign_only_reply_string, OutputFormat},
     solana_commitment_config::CommitmentConfig,
     solana_faucet::faucet::run_local_faucet,
+    solana_keypair::Keypair,
     solana_rpc_client::rpc_client::RpcClient,
     solana_rpc_client_nonce_utils::blockhash_query::{self, BlockhashQuery},
-    solana_sdk::{
-        account_utils::StateMut,
-        signature::{Keypair, NullSigner, Signer},
-    },
+    solana_signer::{null_signer::NullSigner, Signer},
     solana_streamer::socket::SocketAddrSpace,
     solana_test_validator::TestValidator,
     solana_vote_program::vote_state::{VoteAuthorize, VoteState, VoteStateVersions},

+ 9 - 1
client-test/Cargo.toml

@@ -15,18 +15,26 @@ futures-util = { workspace = true }
 rand = { workspace = true }
 serde_json = { workspace = true }
 solana-client = { workspace = true }
+solana-clock = { workspace = true }
+solana-commitment-config = { workspace = true }
+solana-keypair = { workspace = true }
 solana-ledger = { workspace = true }
 solana-measure = { workspace = true }
 solana-merkle-tree = { workspace = true }
+solana-message = { workspace = true }
+solana-native-token = { workspace = true }
 solana-perf = { workspace = true }
+solana-pubkey = { workspace = true }
 solana-pubsub-client = { workspace = true }
 solana-rayon-threadlimit = { workspace = true }
 solana-rpc = { workspace = true }
 solana-rpc-client = { workspace = true }
 solana-rpc-client-api = { workspace = true }
 solana-runtime = { workspace = true }
-solana-sdk = { workspace = true }
+solana-signer = { workspace = true }
 solana-streamer = { workspace = true }
+solana-system-interface = { workspace = true }
+solana-system-transaction = { workspace = true }
 solana-test-validator = { workspace = true }
 solana-transaction-status = { workspace = true }
 solana-version = { workspace = true }

+ 9 - 9
client-test/tests/client.rs

@@ -2,7 +2,12 @@ use {
     futures_util::StreamExt,
     rand::Rng,
     serde_json::{json, Value},
+    solana_clock::Slot,
+    solana_commitment_config::{CommitmentConfig, CommitmentLevel},
+    solana_keypair::Keypair,
     solana_ledger::{blockstore::Blockstore, get_tmp_ledger_path_auto_delete},
+    solana_native_token::sol_to_lamports,
+    solana_pubkey::Pubkey,
     solana_pubsub_client::{nonblocking, pubsub_client::PubsubClient},
     solana_rpc::{
         optimistically_confirmed_bank_tracker::OptimisticallyConfirmedBank,
@@ -24,15 +29,10 @@ use {
         commitment::{BlockCommitmentCache, CommitmentSlots},
         genesis_utils::{create_genesis_config, GenesisConfigInfo},
     },
-    solana_sdk::{
-        clock::Slot,
-        commitment_config::{CommitmentConfig, CommitmentLevel},
-        native_token::sol_to_lamports,
-        pubkey::Pubkey,
-        signature::{Keypair, Signer},
-        system_program, system_transaction,
-    },
+    solana_signer::Signer,
     solana_streamer::socket::SocketAddrSpace,
+    solana_system_interface::program as system_program,
+    solana_system_transaction as system_transaction,
     solana_test_validator::TestValidator,
     solana_transaction_status::{
         BlockEncodingOptions, ConfirmedBlock, TransactionDetails, UiTransactionEncoding,
@@ -66,7 +66,7 @@ fn test_rpc_client() {
     let test_validator =
         TestValidator::with_no_fees(alice.pubkey(), None, SocketAddrSpace::Unspecified);
 
-    let bob_pubkey = solana_sdk::pubkey::new_rand();
+    let bob_pubkey = solana_pubkey::new_rand();
 
     let client = RpcClient::new(test_validator.rpc_url());
 

+ 9 - 6
client-test/tests/send_and_confirm_transactions_in_parallel.rs

@@ -6,12 +6,15 @@ use {
             send_and_confirm_transactions_in_parallel_blocking_v2, SendAndConfirmConfigV2,
         },
     },
+    solana_commitment_config::CommitmentConfig,
+    solana_keypair::Keypair,
+    solana_message::Message,
+    solana_native_token::sol_to_lamports,
+    solana_pubkey::Pubkey,
     solana_rpc_client::rpc_client::RpcClient,
-    solana_sdk::{
-        commitment_config::CommitmentConfig, message::Message, native_token::sol_to_lamports,
-        pubkey::Pubkey, signature::Keypair, signer::Signer, system_instruction,
-    },
+    solana_signer::Signer,
     solana_streamer::socket::SocketAddrSpace,
+    solana_system_interface::instruction as system_instruction,
     solana_test_validator::TestValidator,
     std::sync::Arc,
 };
@@ -39,7 +42,7 @@ fn test_send_and_confirm_transactions_in_parallel_without_tpu_client() {
     let test_validator =
         TestValidator::with_no_fees(alice.pubkey(), None, SocketAddrSpace::Unspecified);
 
-    let bob_pubkey = solana_sdk::pubkey::new_rand();
+    let bob_pubkey = solana_pubkey::new_rand();
     let alice_pubkey = alice.pubkey();
 
     let rpc_client = Arc::new(RpcClient::new(test_validator.rpc_url()));
@@ -96,7 +99,7 @@ fn test_send_and_confirm_transactions_in_parallel_with_tpu_client() {
     let test_validator =
         TestValidator::with_no_fees(alice.pubkey(), None, SocketAddrSpace::Unspecified);
 
-    let bob_pubkey = solana_sdk::pubkey::new_rand();
+    let bob_pubkey = solana_pubkey::new_rand();
     let alice_pubkey = alice.pubkey();
 
     let rpc_client = Arc::new(RpcClient::new(test_validator.rpc_url()));

+ 36 - 1
core/Cargo.toml

@@ -51,52 +51,87 @@ serde = { workspace = true }
 serde_bytes = { workspace = true }
 serde_derive = { workspace = true }
 slab = { workspace = true }
+solana-account = { workspace = true }
 solana-accounts-db = { workspace = true }
+solana-address-lookup-table-interface = { workspace = true }
+solana-bincode = { workspace = true }
 solana-bloom = { workspace = true }
 solana-builtins-default-costs = { workspace = true }
 solana-client = { workspace = true }
+solana-clock = { workspace = true }
 solana-compute-budget = { workspace = true }
 solana-compute-budget-instruction = { workspace = true }
+solana-compute-budget-interface = { workspace = true }
 solana-connection-cache = { workspace = true }
 solana-cost-model = { workspace = true }
 solana-entry = { workspace = true }
+solana-epoch-schedule = { workspace = true }
 solana-fee = { workspace = true }
+solana-fee-calculator = { workspace = true }
+solana-fee-structure = { workspace = true }
 solana-frozen-abi = { workspace = true, optional = true, features = [
     "frozen-abi",
 ] }
 solana-frozen-abi-macro = { workspace = true, optional = true, features = [
     "frozen-abi",
 ] }
+solana-genesis-config = { workspace = true }
 solana-geyser-plugin-manager = { workspace = true }
 solana-gossip = { workspace = true }
+solana-hard-forks = { workspace = true }
+solana-hash = { workspace = true }
+solana-instruction = { workspace = true }
+solana-keypair = { workspace = true }
 solana-ledger = { workspace = true }
+solana-loader-v3-interface = { workspace = true }
 solana-measure = { workspace = true }
+solana-message = { workspace = true }
 solana-metrics = { workspace = true }
+solana-native-token = { workspace = true }
 solana-net-utils = { workspace = true }
+solana-nonce = { workspace = true }
+solana-nonce-account = { workspace = true }
+solana-packet = { workspace = true }
 solana-perf = { workspace = true }
 solana-poh = { workspace = true }
+solana-poh-config = { workspace = true }
 solana-pubkey = { workspace = true }
 solana-quic-client = { workspace = true }
+solana-quic-definitions = { workspace = true }
 solana-rayon-threadlimit = { workspace = true }
+solana-rent = { workspace = true }
 solana-rpc = { workspace = true }
 solana-rpc-client-api = { workspace = true }
 solana-runtime = { workspace = true }
 solana-runtime-transaction = { workspace = true }
 solana-sanitize = { workspace = true }
-solana-sdk = { workspace = true }
+solana-sdk = { workspace = true, default-features = false }
 solana-sdk-ids = { workspace = true }
 solana-send-transaction-service = { workspace = true }
+solana-sha256-hasher = { workspace = true }
 solana-short-vec = { workspace = true }
+solana-shred-version = { workspace = true }
+solana-signature = { workspace = true }
+solana-signer = { workspace = true }
+solana-slot-hashes = { workspace = true }
+solana-slot-history = { workspace = true }
 solana-streamer = { workspace = true }
 solana-svm = { workspace = true }
 solana-svm-transaction = { workspace = true }
+solana-system-interface = { workspace = true }
+solana-system-transaction = { workspace = true }
+solana-sysvar = { workspace = true }
+solana-time-utils = { workspace = true }
 solana-timings = { workspace = true }
 solana-tls-utils = { workspace = true }
 solana-tpu-client = { workspace = true }
 solana-tpu-client-next = { workspace = true }
+solana-transaction = { workspace = true }
+solana-transaction-error = { workspace = true }
 solana-transaction-status = { workspace = true }
 solana-turbine = { workspace = true }
 solana-unified-scheduler-pool = { workspace = true }
+solana-validator-exit = { workspace = true }
 solana-version = { workspace = true }
 solana-vortexor-receiver = { workspace = true }
 solana-vote = { workspace = true }

+ 11 - 10
core/benches/banking_stage.rs

@@ -20,29 +20,30 @@ use {
     rayon::prelude::*,
     solana_core::{banking_stage::BankingStage, banking_trace::BankingTracer},
     solana_entry::entry::{next_hash, Entry},
+    solana_genesis_config::GenesisConfig,
     solana_gossip::cluster_info::{ClusterInfo, Node},
+    solana_hash::Hash,
+    solana_keypair::Keypair,
     solana_ledger::{
         blockstore::Blockstore,
         blockstore_processor::process_entries_for_tests,
         genesis_utils::{create_genesis_config, GenesisConfigInfo},
         get_tmp_ledger_path_auto_delete,
     },
+    solana_message::Message,
     solana_perf::packet::to_packet_batches,
     solana_poh::poh_recorder::{create_test_recorder, WorkingBankEntry},
+    solana_pubkey as pubkey,
     solana_runtime::{
         bank::Bank, bank_forks::BankForks, prioritization_fee_cache::PrioritizationFeeCache,
     },
-    solana_sdk::{
-        genesis_config::GenesisConfig,
-        hash::Hash,
-        message::Message,
-        pubkey,
-        signature::{Keypair, Signature, Signer},
-        system_instruction, system_transaction,
-        timing::timestamp,
-        transaction::{Transaction, VersionedTransaction},
-    },
+    solana_signature::Signature,
+    solana_signer::Signer,
     solana_streamer::socket::SocketAddrSpace,
+    solana_system_interface::instruction as system_instruction,
+    solana_system_transaction as system_transaction,
+    solana_time_utils::timestamp,
+    solana_transaction::{versioned::VersionedTransaction, Transaction},
     std::{
         iter::repeat_with,
         sync::{atomic::Ordering, Arc},

+ 3 - 4
core/benches/consensus.rs

@@ -8,11 +8,10 @@ use {
         consensus::{tower_storage::FileTowerStorage, Tower},
         vote_simulator::VoteSimulator,
     },
+    solana_keypair::Keypair,
+    solana_pubkey::Pubkey,
     solana_runtime::{bank::Bank, bank_forks::BankForks},
-    solana_sdk::{
-        pubkey::Pubkey,
-        signature::{Keypair, Signer},
-    },
+    solana_signer::Signer,
     std::{
         collections::{HashMap, HashSet},
         sync::Arc,

+ 7 - 8
core/benches/consumer.rs

@@ -7,10 +7,13 @@ use {
         iter::IndexedParallelIterator,
         prelude::{IntoParallelIterator, IntoParallelRefIterator, ParallelIterator},
     },
+    solana_account::{Account, ReadableAccount},
+    solana_clock::Epoch,
     solana_core::banking_stage::{
         committer::Committer, consumer::Consumer, qos_service::QosService,
     },
     solana_entry::entry::Entry,
+    solana_keypair::Keypair,
     solana_ledger::{
         blockstore::Blockstore,
         genesis_utils::{create_genesis_config, GenesisConfigInfo},
@@ -21,14 +24,10 @@ use {
     },
     solana_runtime::{bank::Bank, bank_forks::BankForks},
     solana_runtime_transaction::runtime_transaction::RuntimeTransaction,
-    solana_sdk::{
-        account::{Account, ReadableAccount},
-        signature::Keypair,
-        signer::Signer,
-        stake_history::Epoch,
-        system_program, system_transaction,
-        transaction::SanitizedTransaction,
-    },
+    solana_signer::Signer,
+    solana_system_interface::program as system_program,
+    solana_system_transaction as system_transaction,
+    solana_transaction::sanitized::SanitizedTransaction,
     std::sync::{
         atomic::{AtomicBool, Ordering},
         Arc, RwLock,

+ 2 - 1
core/benches/shredder.rs

@@ -6,13 +6,14 @@ extern crate test;
 use {
     rand::Rng,
     solana_entry::entry::{create_ticks, Entry},
+    solana_hash::Hash,
+    solana_keypair::Keypair,
     solana_ledger::shred::{
         get_data_shred_bytes_per_batch_typical, max_entries_per_n_shred, max_ticks_per_n_shreds,
         ProcessShredsStats, ReedSolomonCache, Shred, ShredFlags, Shredder,
         DATA_SHREDS_PER_FEC_BLOCK,
     },
     solana_perf::test_tx,
-    solana_sdk::{hash::Hash, signature::Keypair},
     test::{black_box, Bencher},
 };
 

+ 4 - 5
core/benches/sigverify_stage.rs

@@ -16,16 +16,15 @@ use {
         sigverify::TransactionSigVerifier,
         sigverify_stage::{SigVerifier, SigVerifyStage},
     },
+    solana_hash::Hash,
+    solana_keypair::Keypair,
     solana_measure::measure::Measure,
     solana_perf::{
         packet::{to_packet_batches, PacketBatch},
         test_tx::test_tx,
     },
-    solana_sdk::{
-        hash::Hash,
-        signature::{Keypair, Signer},
-        system_transaction,
-    },
+    solana_signer::Signer,
+    solana_system_transaction as system_transaction,
     std::time::{Duration, Instant},
     test::Bencher,
 };

+ 1 - 1
core/src/accounts_hash_verifier.rs

@@ -11,6 +11,7 @@ use {
         },
         sorted_storages::SortedStorages,
     },
+    solana_clock::{Slot, DEFAULT_MS_PER_SLOT},
     solana_measure::measure_us,
     solana_runtime::{
         serde_snapshot::BankIncrementalSnapshotPersistence,
@@ -22,7 +23,6 @@ use {
         },
         snapshot_utils,
     },
-    solana_sdk::clock::{Slot, DEFAULT_MS_PER_SLOT},
     std::{
         io::Result as IoResult,
         sync::{

+ 2 - 1
core/src/admin_rpc_post_init.rs

@@ -4,8 +4,9 @@ use {
         repair::{outstanding_requests::OutstandingRequests, serve_repair::ShredRepairType},
     },
     solana_gossip::cluster_info::ClusterInfo,
+    solana_pubkey::Pubkey,
+    solana_quic_definitions::NotifyKeyUpdate,
     solana_runtime::bank_forks::BankForks,
-    solana_sdk::{pubkey::Pubkey, quic::NotifyKeyUpdate},
     std::{
         collections::HashSet,
         net::UdpSocket,

+ 6 - 8
core/src/banking_simulation.rs

@@ -16,10 +16,13 @@ use {
     crossbeam_channel::{unbounded, Sender},
     itertools::Itertools,
     log::*,
+    solana_clock::{Slot, DEFAULT_MS_PER_SLOT, HOLD_TRANSACTIONS_SLOT_OFFSET},
+    solana_genesis_config::GenesisConfig,
     solana_gossip::{
         cluster_info::{ClusterInfo, Node},
         contact_info::ContactInfoQuery,
     },
+    solana_keypair::Keypair,
     solana_ledger::{
         blockstore::{Blockstore, PurgeType},
         leader_schedule_cache::LeaderScheduleCache,
@@ -30,20 +33,15 @@ use {
         poh_service::{PohService, DEFAULT_HASHES_PER_BATCH, DEFAULT_PINNED_CPU_CORE},
         transaction_recorder::TransactionRecorder,
     },
+    solana_pubkey::Pubkey,
     solana_runtime::{
         bank::{Bank, HashOverrides},
         bank_forks::BankForks,
         installed_scheduler_pool::BankWithScheduler,
         prioritization_fee_cache::PrioritizationFeeCache,
     },
-    solana_sdk::{
-        clock::{Slot, DEFAULT_MS_PER_SLOT, HOLD_TRANSACTIONS_SLOT_OFFSET},
-        genesis_config::GenesisConfig,
-        pubkey::Pubkey,
-        shred_version::compute_shred_version,
-        signature::Signer,
-        signer::keypair::Keypair,
-    },
+    solana_shred_version::compute_shred_version,
+    solana_signer::Signer,
     solana_streamer::socket::SocketAddrSpace,
     solana_turbine::broadcast_stage::{BroadcastStage, BroadcastStageType},
     std::{

+ 9 - 9
core/src/banking_stage.rs

@@ -28,11 +28,12 @@ use {
     solana_ledger::blockstore_processor::TransactionStatusSender,
     solana_perf::packet::PACKETS_PER_BATCH,
     solana_poh::{poh_recorder::PohRecorder, transaction_recorder::TransactionRecorder},
+    solana_pubkey::Pubkey,
     solana_runtime::{
         bank::Bank, bank_forks::BankForks, prioritization_fee_cache::PrioritizationFeeCache,
         vote_sender_types::ReplayVoteSender,
     },
-    solana_sdk::{pubkey::Pubkey, timing::AtomicInterval},
+    solana_time_utils::AtomicInterval,
     std::{
         cmp, env,
         ops::Deref,
@@ -696,6 +697,8 @@ mod tests {
         itertools::Itertools,
         solana_entry::entry::{self, Entry, EntrySlice},
         solana_gossip::cluster_info::Node,
+        solana_hash::Hash,
+        solana_keypair::Keypair,
         solana_ledger::{
             blockstore::Blockstore,
             genesis_utils::{
@@ -710,17 +713,14 @@ mod tests {
             poh_service::PohService,
             transaction_recorder::RecordTransactionsSummary,
         },
+        solana_poh_config::PohConfig,
+        solana_pubkey::Pubkey,
         solana_runtime::{bank::Bank, genesis_utils::bootstrap_validator_stake_lamports},
         solana_runtime_transaction::runtime_transaction::RuntimeTransaction,
-        solana_sdk::{
-            hash::Hash,
-            poh_config::PohConfig,
-            pubkey::Pubkey,
-            signature::{Keypair, Signer},
-            system_transaction,
-            transaction::{SanitizedTransaction, Transaction},
-        },
+        solana_signer::Signer,
         solana_streamer::socket::SocketAddrSpace,
+        solana_system_transaction as system_transaction,
+        solana_transaction::{sanitized::SanitizedTransaction, Transaction},
         solana_vote::vote_transaction::new_tower_sync_transaction,
         solana_vote_program::vote_state::TowerSync,
         std::{

+ 18 - 18
core/src/banking_stage/consume_worker.rs

@@ -9,8 +9,8 @@ use {
     solana_poh::leader_bank_notifier::LeaderBankNotifier,
     solana_runtime::bank::Bank,
     solana_runtime_transaction::transaction_with_meta::TransactionWithMeta,
-    solana_sdk::timing::AtomicInterval,
     solana_svm::transaction_error_metrics::TransactionErrorMetrics,
+    solana_time_utils::AtomicInterval,
     std::{
         sync::{
             atomic::{AtomicBool, AtomicU64, AtomicUsize, Ordering},
@@ -731,37 +731,37 @@ mod tests {
             tests::{create_slow_genesis_config, sanitize_transactions, simulate_poh},
         },
         crossbeam_channel::unbounded,
+        solana_clock::{Slot, MAX_PROCESSING_AGE},
+        solana_genesis_config::GenesisConfig,
+        solana_keypair::Keypair,
         solana_ledger::{
             blockstore::Blockstore, genesis_utils::GenesisConfigInfo,
             get_tmp_ledger_path_auto_delete, leader_schedule_cache::LeaderScheduleCache,
         },
+        solana_message::{
+            v0::{self, LoadedAddresses},
+            AddressLookupTableAccount, SimpleAddressLoader, VersionedMessage,
+        },
         solana_poh::{
             poh_recorder::{PohRecorder, WorkingBankEntry},
             transaction_recorder::TransactionRecorder,
         },
+        solana_poh_config::PohConfig,
+        solana_pubkey::Pubkey,
         solana_runtime::{
             bank_forks::BankForks, prioritization_fee_cache::PrioritizationFeeCache,
             vote_sender_types::ReplayVoteReceiver,
         },
         solana_runtime_transaction::runtime_transaction::RuntimeTransaction,
-        solana_sdk::{
-            address_lookup_table::AddressLookupTableAccount,
-            clock::{Slot, MAX_PROCESSING_AGE},
-            genesis_config::GenesisConfig,
-            message::{
-                v0::{self, LoadedAddresses},
-                SimpleAddressLoader, VersionedMessage,
-            },
-            poh_config::PohConfig,
-            pubkey::Pubkey,
-            signature::Keypair,
-            signer::Signer,
-            system_instruction, system_transaction,
-            transaction::{
-                MessageHash, SanitizedTransaction, TransactionError, VersionedTransaction,
-            },
-        },
+        solana_signer::Signer,
         solana_svm_transaction::svm_message::SVMMessage,
+        solana_system_interface::instruction as system_instruction,
+        solana_system_transaction as system_transaction,
+        solana_transaction::{
+            sanitized::{MessageHash, SanitizedTransaction},
+            versioned::VersionedTransaction,
+        },
+        solana_transaction_error::TransactionError,
         std::{
             collections::HashSet,
             sync::{atomic::AtomicBool, RwLock},

+ 31 - 28
core/src/banking_stage/consumer.rs

@@ -6,7 +6,9 @@ use {
         scheduler_messages::MaxAge,
     },
     itertools::Itertools,
+    solana_clock::MAX_PROCESSING_AGE,
     solana_fee::FeeFeatures,
+    solana_fee_structure::FeeBudgetLimits,
     solana_measure::measure_us,
     solana_poh::{
         poh_recorder::PohRecorderError,
@@ -19,13 +21,13 @@ use {
         transaction_batch::TransactionBatch,
     },
     solana_runtime_transaction::transaction_with_meta::TransactionWithMeta,
-    solana_sdk::{clock::MAX_PROCESSING_AGE, fee::FeeBudgetLimits, transaction::TransactionError},
     solana_svm::{
         account_loader::validate_fee_payer,
         transaction_error_metrics::TransactionErrorMetrics,
         transaction_processing_result::TransactionProcessingResultExtensions,
         transaction_processor::{ExecutionRecordingConfig, TransactionProcessingConfig},
     },
+    solana_transaction_error::TransactionError,
     std::{num::Saturating, sync::Arc},
 };
 
@@ -480,8 +482,17 @@ mod tests {
         },
         agave_reserved_account_keys::ReservedAccountKeys,
         crossbeam_channel::{unbounded, Receiver},
+        solana_account::{state_traits::StateMut, AccountSharedData},
+        solana_address_lookup_table_interface::{
+            self as address_lookup_table,
+            state::{AddressLookupTable, LookupTableMeta},
+        },
         solana_cost_model::{cost_model::CostModel, transaction_cost::TransactionCost},
         solana_entry::entry::{next_entry, next_versioned_entry},
+        solana_fee_calculator::FeeCalculator,
+        solana_hash::Hash,
+        solana_instruction::error::InstructionError,
+        solana_keypair::Keypair,
         solana_ledger::{
             blockstore::{entries_to_test_shreds, Blockstore},
             blockstore_processor::TransactionStatusSender,
@@ -492,32 +503,23 @@ mod tests {
             get_tmp_ledger_path_auto_delete,
             leader_schedule_cache::LeaderScheduleCache,
         },
+        solana_message::{
+            v0::{self, MessageAddressTableLookup},
+            MessageHeader, VersionedMessage,
+        },
+        solana_nonce::{self as nonce, state::DurableNonce},
+        solana_nonce_account::verify_nonce_account,
         solana_poh::poh_recorder::{PohRecorder, Record},
+        solana_poh_config::PohConfig,
+        solana_pubkey::Pubkey,
         solana_rpc::transaction_status_service::TransactionStatusService,
         solana_runtime::prioritization_fee_cache::PrioritizationFeeCache,
         solana_runtime_transaction::runtime_transaction::RuntimeTransaction,
-        solana_sdk::{
-            account::AccountSharedData,
-            account_utils::StateMut,
-            address_lookup_table::{
-                self,
-                state::{AddressLookupTable, LookupTableMeta},
-            },
-            fee_calculator::FeeCalculator,
-            hash::Hash,
-            instruction::InstructionError,
-            message::{
-                v0::{self, MessageAddressTableLookup},
-                MessageHeader, VersionedMessage,
-            },
-            nonce::{self, state::DurableNonce},
-            nonce_account::verify_nonce_account,
-            poh_config::PohConfig,
-            pubkey::Pubkey,
-            signature::Keypair,
-            signer::Signer,
-            system_program, system_transaction,
-            transaction::{MessageHash, Transaction, VersionedTransaction},
+        solana_signer::Signer,
+        solana_system_interface::program as system_program,
+        solana_system_transaction as system_transaction,
+        solana_transaction::{
+            sanitized::MessageHash, versioned::VersionedTransaction, Transaction,
         },
         solana_transaction_status::{TransactionStatusMeta, VersionedTransactionWithStatusMeta},
         std::{
@@ -599,11 +601,12 @@ mod tests {
     fn store_nonce_account(
         bank: &Bank,
         account_address: Pubkey,
-        nonce_state: nonce::State,
+        nonce_state: nonce::state::State,
     ) -> AccountSharedData {
-        let mut account = AccountSharedData::new(1, nonce::State::size(), &system_program::id());
+        let mut account =
+            AccountSharedData::new(1, nonce::state::State::size(), &system_program::id());
         account
-            .set_state(&nonce::state::Versions::new(nonce_state))
+            .set_state(&nonce::versions::Versions::new(nonce_state))
             .unwrap();
         bank.store_account(&account_address, &account);
 
@@ -780,7 +783,7 @@ mod tests {
         let durable_nonce = DurableNonce::from_blockhash(&Hash::new_unique());
         let nonce_hash = *durable_nonce.as_hash();
         let nonce_pubkey = Pubkey::new_unique();
-        let nonce_state = nonce::State::Initialized(nonce::state::Data {
+        let nonce_state = nonce::state::State::Initialized(nonce::state::Data {
             authority: mint_keypair.pubkey(),
             durable_nonce,
             fee_calculator: FeeCalculator::new(5000),
@@ -1452,7 +1455,7 @@ mod tests {
             mut genesis_config,
             mint_keypair,
             ..
-        } = create_slow_genesis_config(solana_sdk::native_token::sol_to_lamports(1000.0));
+        } = create_slow_genesis_config(solana_native_token::sol_to_lamports(1000.0));
         genesis_config.rent.lamports_per_byte_year = 50;
         genesis_config.rent.exemption_threshold = 2.0;
         let (bank, _bank_forks) = Bank::new_no_wallclock_throttle_for_tests(&genesis_config);

+ 5 - 7
core/src/banking_stage/decision_maker.rs

@@ -1,12 +1,10 @@
 use {
     solana_poh::poh_recorder::{BankStart, PohRecorder},
-    solana_sdk::{
-        clock::{
-            DEFAULT_TICKS_PER_SLOT, FORWARD_TRANSACTIONS_TO_LEADER_AT_SLOT_OFFSET,
-            HOLD_TRANSACTIONS_SLOT_OFFSET,
-        },
-        pubkey::Pubkey,
+    solana_clock::{
+        DEFAULT_TICKS_PER_SLOT, FORWARD_TRANSACTIONS_TO_LEADER_AT_SLOT_OFFSET,
+        HOLD_TRANSACTIONS_SLOT_OFFSET,
     },
+    solana_pubkey::Pubkey,
     std::{
         sync::{Arc, RwLock},
         time::{Duration, Instant},
@@ -144,7 +142,7 @@ mod tests {
         solana_ledger::{blockstore::Blockstore, genesis_utils::create_genesis_config},
         solana_poh::poh_recorder::create_test_recorder,
         solana_runtime::bank::Bank,
-        solana_sdk::clock::NUM_CONSECUTIVE_LEADER_SLOTS,
+        solana_clock::NUM_CONSECUTIVE_LEADER_SLOTS,
         std::{
             env::temp_dir,
             sync::{atomic::Ordering, Arc},

+ 13 - 15
core/src/banking_stage/immutable_deserialized_packet.rs

@@ -1,26 +1,25 @@
 use {
     super::packet_filter::PacketFilterFailure,
     agave_feature_set::FeatureSet,
+    solana_clock::Slot,
     solana_compute_budget::compute_budget_limits::ComputeBudgetLimits,
     solana_compute_budget_instruction::instructions_processor::process_compute_budget_instructions,
+    solana_hash::Hash,
+    solana_message::{v0::LoadedAddresses, AddressLoaderError, Message, SimpleAddressLoader},
     solana_perf::packet::Packet,
+    solana_pubkey::Pubkey,
     solana_runtime::bank::Bank,
     solana_runtime_transaction::runtime_transaction::RuntimeTransaction,
     solana_sanitize::SanitizeError,
-    solana_sdk::{
-        clock::Slot,
-        hash::Hash,
-        message::{v0::LoadedAddresses, AddressLoaderError, Message, SimpleAddressLoader},
-        pubkey::Pubkey,
-        signature::Signature,
-        transaction::{
-            MessageHash, SanitizedTransaction, SanitizedVersionedTransaction, VersionedTransaction,
-        },
-    },
     solana_short_vec::decode_shortu16_len,
+    solana_signature::Signature,
     solana_svm_transaction::{
         instruction::SVMInstruction, message_address_table_lookup::SVMMessageAddressTableLookup,
     },
+    solana_transaction::{
+        sanitized::{MessageHash, SanitizedTransaction},
+        versioned::{sanitized::SanitizedVersionedTransaction, VersionedTransaction},
+    },
     std::{cmp::Ordering, collections::HashSet, mem::size_of},
     thiserror::Error,
 };
@@ -209,11 +208,10 @@ fn packet_message(packet: &Packet) -> Result<&[u8], DeserializedPacketError> {
 #[cfg(test)]
 mod tests {
     use {
-        super::*,
-        solana_sdk::{
-            compute_budget, instruction::Instruction, pubkey::Pubkey, signature::Keypair,
-            signer::Signer, system_instruction, system_transaction, transaction::Transaction,
-        },
+        super::*, solana_compute_budget_interface as compute_budget,
+        solana_instruction::Instruction, solana_keypair::Keypair, solana_pubkey::Pubkey,
+        solana_signer::Signer, solana_system_interface::instruction as system_instruction,
+        solana_system_transaction as system_transaction, solana_transaction::Transaction,
     };
 
     #[test]

+ 6 - 6
core/src/banking_stage/latest_validator_vote_packet.rs

@@ -1,11 +1,9 @@
 use {
     super::immutable_deserialized_packet::{DeserializedPacketError, ImmutableDeserializedPacket},
+    solana_clock::{Slot, UnixTimestamp},
+    solana_hash::Hash,
     solana_pubkey::Pubkey,
-    solana_sdk::{
-        clock::{Slot, UnixTimestamp},
-        hash::Hash,
-        program_utils::limited_deserialize,
-    },
+    solana_sdk::program_utils::limited_deserialize,
     solana_vote_program::vote_instruction::VoteInstruction,
     std::sync::Arc,
 };
@@ -130,9 +128,11 @@ mod tests {
     use {
         super::*,
         itertools::Itertools,
+        solana_packet::PacketFlags,
         solana_perf::packet::{Packet, PacketBatch},
         solana_runtime::genesis_utils::ValidatorVoteKeypairs,
-        solana_sdk::{packet::PacketFlags, signer::Signer, system_transaction::transfer},
+        solana_signer::Signer,
+        solana_system_transaction::transfer,
         solana_vote::vote_transaction::new_tower_sync_transaction,
         solana_vote_program::vote_state::TowerSync,
     };

+ 2 - 1
core/src/banking_stage/leader_slot_metrics.rs

@@ -5,8 +5,9 @@ use {
         packet_deserializer::PacketReceiverStats,
         vote_storage::VoteBatchInsertionMetrics,
     },
+    solana_clock::Slot,
     solana_poh::poh_recorder::BankStart,
-    solana_sdk::{clock::Slot, saturating_add_assign},
+    solana_sdk::saturating_add_assign,
     solana_svm::transaction_error_metrics::*,
     std::time::Instant,
 };

+ 1 - 1
core/src/banking_stage/leader_slot_timing_metrics.rs

@@ -1,5 +1,5 @@
 use {
-    solana_poh::transaction_recorder::RecordTransactionsTimings, solana_sdk::clock::Slot,
+    solana_clock::Slot, solana_poh::transaction_recorder::RecordTransactionsTimings,
     solana_timings::ExecuteTimings, std::time::Instant,
 };
 

+ 5 - 4
core/src/banking_stage/packet_deserializer.rs

@@ -192,10 +192,11 @@ mod tests {
     use {
         super::*,
         solana_perf::packet::to_packet_batches,
-        solana_sdk::{
-            hash::Hash, pubkey::Pubkey, signature::Keypair, system_transaction,
-            transaction::Transaction,
-        },
+        solana_hash::Hash,
+        solana_pubkey::Pubkey,
+        solana_keypair::Keypair,
+        solana_system_transaction as system_transaction,
+        solana_transaction::Transaction,
     };
 
     fn random_transfer() -> Transaction {

+ 2 - 2
core/src/banking_stage/packet_filter.rs

@@ -3,8 +3,8 @@ use {
     agave_feature_set::FeatureSet,
     lazy_static::lazy_static,
     solana_builtins_default_costs::get_builtin_instruction_cost,
-    solana_sdk::{ed25519_program, saturating_add_assign, secp256k1_program},
-    solana_sdk_ids::secp256r1_program,
+    solana_sdk::saturating_add_assign,
+    solana_sdk_ids::{ed25519_program, secp256k1_program, secp256r1_program},
     thiserror::Error,
 };
 

+ 17 - 16
core/src/banking_stage/qos_service.rs

@@ -6,20 +6,22 @@
 use {
     super::{committer::CommitTransactionDetails, BatchedTransactionDetails},
     agave_feature_set::FeatureSet,
+    solana_clock::Slot,
     solana_cost_model::{
         cost_model::CostModel, cost_tracker::UpdatedCosts, transaction_cost::TransactionCost,
     },
     solana_measure::measure::Measure,
     solana_runtime::bank::Bank,
     solana_runtime_transaction::transaction_with_meta::TransactionWithMeta,
-    solana_sdk::{
-        clock::Slot,
-        saturating_add_assign,
-        transaction::{self, TransactionError},
-    },
+    solana_sdk::saturating_add_assign,
+    solana_transaction_error::TransactionError,
     std::sync::atomic::{AtomicU64, Ordering},
 };
 
+mod transaction {
+    pub use solana_transaction_error::TransactionResult as Result;
+}
+
 // QosService is local to each banking thread, each instance of QosService provides services to
 // one banking thread.
 // Banking thread calls `report_metrics(slot)` at end of `process_and_record_transaction()`, or any time
@@ -611,13 +613,12 @@ mod tests {
         super::*,
         itertools::Itertools,
         solana_cost_model::transaction_cost::{UsageCostDetails, WritableKeysTransaction},
+        solana_hash::Hash,
+        solana_keypair::Keypair,
         solana_runtime::genesis_utils::{create_genesis_config, GenesisConfigInfo},
         solana_runtime_transaction::runtime_transaction::RuntimeTransaction,
-        solana_sdk::{
-            hash::Hash,
-            signature::{Keypair, Signer},
-            system_transaction,
-        },
+        solana_signer::Signer,
+        solana_system_transaction as system_transaction,
         solana_vote::vote_transaction,
         solana_vote_program::vote_state::TowerSync,
         std::sync::Arc,
@@ -726,10 +727,10 @@ mod tests {
         let transaction_count = 5;
         let keypair = Keypair::new();
         let loaded_accounts_data_size: u32 = 1_000_000;
-        let transaction = solana_sdk::transaction::Transaction::new_unsigned(solana_sdk::message::Message::new(
+        let transaction = solana_transaction::Transaction::new_unsigned(solana_message::Message::new(
             &[
-                solana_sdk::compute_budget::ComputeBudgetInstruction::set_loaded_accounts_data_size_limit(loaded_accounts_data_size),
-                solana_sdk::system_instruction::transfer(&keypair.pubkey(), &solana_pubkey::Pubkey::new_unique(), 1),
+                solana_compute_budget_interface::ComputeBudgetInstruction::set_loaded_accounts_data_size_limit(loaded_accounts_data_size),
+                solana_system_interface::instruction::transfer(&keypair.pubkey(), &solana_pubkey::Pubkey::new_unique(), 1),
             ],
             Some(&keypair.pubkey()),
         ));
@@ -850,10 +851,10 @@ mod tests {
         let transaction_count = 5;
         let keypair = Keypair::new();
         let loaded_accounts_data_size: u32 = 1_000_000;
-        let transaction = solana_sdk::transaction::Transaction::new_unsigned(solana_sdk::message::Message::new(
+        let transaction = solana_transaction::Transaction::new_unsigned(solana_message::Message::new(
             &[
-                solana_sdk::compute_budget::ComputeBudgetInstruction::set_loaded_accounts_data_size_limit(loaded_accounts_data_size),
-                solana_sdk::system_instruction::transfer(&keypair.pubkey(), &solana_pubkey::Pubkey::new_unique(), 1),
+                solana_compute_budget_interface::ComputeBudgetInstruction::set_loaded_accounts_data_size_limit(loaded_accounts_data_size),
+                solana_system_interface::instruction::transfer(&keypair.pubkey(), &solana_pubkey::Pubkey::new_unique(), 1),
             ],
             Some(&keypair.pubkey()),
         ));

+ 16 - 15
core/src/banking_stage/read_write_account_set.rs

@@ -80,23 +80,24 @@ impl ReadWriteAccountSet {
 mod tests {
     use {
         super::ReadWriteAccountSet,
+        solana_account::AccountSharedData,
+        solana_address_lookup_table_interface::{
+            self as address_lookup_table,
+            state::{AddressLookupTable, LookupTableMeta},
+        },
+        solana_hash::Hash,
+        solana_keypair::Keypair,
         solana_ledger::genesis_utils::GenesisConfigInfo,
+        solana_message::{
+            v0::{self, MessageAddressTableLookup},
+            MessageHeader, VersionedMessage,
+        },
+        solana_pubkey::Pubkey,
         solana_runtime::{bank::Bank, bank_forks::BankForks, genesis_utils::create_genesis_config},
-        solana_sdk::{
-            account::AccountSharedData,
-            address_lookup_table::{
-                self,
-                state::{AddressLookupTable, LookupTableMeta},
-            },
-            hash::Hash,
-            message::{
-                v0::{self, MessageAddressTableLookup},
-                MessageHeader, VersionedMessage,
-            },
-            pubkey::Pubkey,
-            signature::Keypair,
-            signer::Signer,
-            transaction::{MessageHash, SanitizedTransaction, VersionedTransaction},
+        solana_signer::Signer,
+        solana_transaction::{
+            sanitized::{MessageHash, SanitizedTransaction},
+            versioned::VersionedTransaction,
         },
         std::{
             borrow::Cow,

+ 1 - 1
core/src/banking_stage/scheduler_messages.rs

@@ -1,5 +1,5 @@
 use {
-    solana_sdk::clock::{Epoch, Slot},
+    solana_clock::{Epoch, Slot},
     std::fmt::Display,
 };
 

+ 7 - 9
core/src/banking_stage/transaction_scheduler/greedy_scheduler.rs

@@ -283,15 +283,13 @@ mod test {
         itertools::Itertools,
         solana_pubkey::Pubkey,
         solana_runtime_transaction::runtime_transaction::RuntimeTransaction,
-        solana_sdk::{
-            compute_budget::ComputeBudgetInstruction,
-            hash::Hash,
-            message::Message,
-            signature::Keypair,
-            signer::Signer,
-            system_instruction,
-            transaction::{SanitizedTransaction, Transaction},
-        },
+        solana_compute_budget_interface::ComputeBudgetInstruction,
+        solana_hash::Hash,
+        solana_message::Message,
+        solana_keypair::Keypair,
+        solana_signer::Signer,
+        solana_system_interface::instruction as system_instruction,
+        solana_transaction::{sanitized::SanitizedTransaction, Transaction},
         std::borrow::Borrow,
     };
 

+ 10 - 11
core/src/banking_stage/transaction_scheduler/prio_graph_scheduler.rs

@@ -25,7 +25,8 @@ use {
     solana_cost_model::block_cost_limits::MAX_BLOCK_UNITS,
     solana_measure::measure_us,
     solana_runtime_transaction::transaction_with_meta::TransactionWithMeta,
-    solana_sdk::{pubkey::Pubkey, saturating_add_assign},
+    solana_sdk::saturating_add_assign,
+    solana_pubkey::Pubkey,
     solana_svm_transaction::svm_message::SVMMessage,
 };
 
@@ -438,16 +439,14 @@ mod tests {
         crossbeam_channel::{unbounded, Receiver},
         itertools::Itertools,
         solana_runtime_transaction::runtime_transaction::RuntimeTransaction,
-        solana_sdk::{
-            compute_budget::ComputeBudgetInstruction,
-            hash::Hash,
-            message::Message,
-            pubkey::Pubkey,
-            signature::Keypair,
-            signer::Signer,
-            system_instruction,
-            transaction::{SanitizedTransaction, Transaction},
-        },
+        solana_compute_budget_interface::ComputeBudgetInstruction,
+        solana_hash::Hash,
+        solana_message::Message,
+        solana_pubkey::Pubkey,
+        solana_keypair::Keypair,
+        solana_signer::Signer,
+        solana_system_interface::instruction as system_instruction,
+        solana_transaction::{sanitized::SanitizedTransaction, Transaction},
         std::borrow::Borrow,
     };
 

+ 15 - 19
core/src/banking_stage/transaction_scheduler/receive_and_buffer.rs

@@ -32,13 +32,11 @@ use {
         runtime_transaction::RuntimeTransaction, transaction_meta::StaticMeta,
         transaction_with_meta::TransactionWithMeta,
     },
-    solana_sdk::{
-        address_lookup_table::state::estimate_last_valid_slot,
-        clock::{Epoch, Slot, MAX_PROCESSING_AGE},
-        fee::FeeBudgetLimits,
-        saturating_add_assign,
-        transaction::{MessageHash, SanitizedTransaction},
-    },
+    solana_sdk::saturating_add_assign,
+    solana_address_lookup_table_interface::state::estimate_last_valid_slot,
+    solana_clock::{Epoch, Slot, MAX_PROCESSING_AGE},
+    solana_fee_structure::FeeBudgetLimits,
+    solana_transaction::sanitized::{MessageHash, SanitizedTransaction},
     solana_svm::transaction_error_metrics::TransactionErrorMetrics,
     solana_svm_transaction::svm_message::SVMMessage,
     std::{
@@ -682,16 +680,14 @@ mod tests {
         solana_ledger::genesis_utils::GenesisConfigInfo,
         solana_perf::packet::{to_packet_batches, Packet, PacketBatch},
         solana_pubkey::Pubkey,
-        solana_sdk::{
-            hash::Hash,
-            message::{v0, AddressLookupTableAccount, VersionedMessage},
-            packet::{Meta, PACKET_DATA_SIZE},
-            signature::Keypair,
-            signer::Signer,
-            system_instruction,
-            system_transaction::transfer,
-            transaction::VersionedTransaction,
-        },
+        solana_hash::Hash,
+        solana_message::{v0, AddressLookupTableAccount, VersionedMessage},
+        solana_packet::{Meta, PACKET_DATA_SIZE},
+        solana_keypair::Keypair,
+        solana_signer::Signer,
+        solana_system_interface::instruction as system_instruction,
+        solana_system_transaction::transfer,
+        solana_transaction::versioned::VersionedTransaction,
         test_case::test_case,
     };
 
@@ -770,7 +766,7 @@ mod tests {
             MaxAge {
                 sanitized_epoch,
                 alt_invalidation_slot: current_slot - 1
-                    + solana_sdk::slot_hashes::get_entries() as u64,
+                    + solana_slot_hashes::get_entries() as u64,
             }
         );
 
@@ -779,7 +775,7 @@ mod tests {
             calculate_max_age(sanitized_epoch, u64::MAX, current_slot),
             MaxAge {
                 sanitized_epoch,
-                alt_invalidation_slot: current_slot + solana_sdk::slot_hashes::get_entries() as u64,
+                alt_invalidation_slot: current_slot + solana_slot_hashes::get_entries() as u64,
             }
         );
     }

+ 1 - 1
core/src/banking_stage/transaction_scheduler/scheduler_common.rs

@@ -286,7 +286,7 @@ mod tests {
         solana_keypair::Keypair,
         solana_pubkey::Pubkey,
         solana_runtime_transaction::runtime_transaction::RuntimeTransaction,
-        solana_sdk::{hash::Hash, system_transaction, transaction::SanitizedTransaction},
+        solana_hash::Hash, solana_system_transaction as system_transaction, solana_transaction::sanitized::SanitizedTransaction,
         test_case::test_case,
     };
 

+ 13 - 7
core/src/banking_stage/transaction_scheduler/scheduler_controller.rs

@@ -20,7 +20,8 @@ use {
     },
     solana_measure::measure_us,
     solana_runtime::{bank::Bank, bank_forks::BankForks},
-    solana_sdk::{self, clock::MAX_PROCESSING_AGE, saturating_add_assign},
+    solana_clock::MAX_PROCESSING_AGE,
+    solana_sdk::saturating_add_assign,
     solana_svm::transaction_error_metrics::TransactionErrorMetrics,
     std::sync::{Arc, RwLock},
 };
@@ -360,11 +361,16 @@ mod tests {
         solana_poh::poh_recorder::PohRecorder,
         solana_runtime::bank::Bank,
         solana_runtime_transaction::transaction_meta::StaticMeta,
-        solana_sdk::{
-            compute_budget::ComputeBudgetInstruction, fee_calculator::FeeRateGovernor, hash::Hash,
-            message::Message, poh_config::PohConfig, pubkey::Pubkey, signature::Keypair,
-            signer::Signer, system_instruction, system_transaction, transaction::Transaction,
-        },
+        solana_compute_budget_interface::ComputeBudgetInstruction,
+        solana_fee_calculator::FeeRateGovernor,
+        solana_hash::Hash,
+        solana_message::Message,
+        solana_poh_config::PohConfig,
+        solana_pubkey::Pubkey,
+        solana_keypair::Keypair,
+        solana_signer::Signer,
+        solana_system_interface::instruction as system_instruction,
+        solana_transaction::Transaction,
         std::sync::{atomic::AtomicBool, Arc, RwLock},
         tempfile::TempDir,
         test_case::test_case,
@@ -481,7 +487,7 @@ mod tests {
     ) -> Transaction {
         // Fund the sending key, so that the transaction does not get filtered by the fee-payer check.
         {
-            let transfer = system_transaction::transfer(
+            let transfer = solana_system_transaction::transfer(
                 mint_keypair,
                 &from_keypair.pubkey(),
                 500_000, // just some amount that will always be enough

+ 2 - 1
core/src/banking_stage/transaction_scheduler/scheduler_metrics.rs

@@ -2,7 +2,8 @@ use {
     super::scheduler::SchedulingSummary,
     itertools::MinMaxResult,
     solana_poh::poh_recorder::BankStart,
-    solana_sdk::{clock::Slot, timing::AtomicInterval},
+    solana_clock::Slot,
+    solana_time_utils::AtomicInterval,
     std::time::{Duration, Instant},
 };
 

+ 7 - 9
core/src/banking_stage/transaction_scheduler/transaction_state.rs

@@ -89,15 +89,13 @@ mod tests {
     use {
         super::*,
         solana_runtime_transaction::runtime_transaction::RuntimeTransaction,
-        solana_sdk::{
-            compute_budget::ComputeBudgetInstruction,
-            hash::Hash,
-            message::Message,
-            signature::Keypair,
-            signer::Signer,
-            system_instruction,
-            transaction::{SanitizedTransaction, Transaction},
-        },
+        solana_compute_budget_interface::ComputeBudgetInstruction,
+        solana_hash::Hash,
+        solana_message::Message,
+        solana_keypair::Keypair,
+        solana_signer::Signer,
+        solana_system_interface::instruction as system_instruction,
+        solana_transaction::{sanitized::SanitizedTransaction, Transaction},
     };
 
     fn create_transaction_state(

+ 8 - 10
core/src/banking_stage/transaction_scheduler/transaction_state_container.rs

@@ -10,7 +10,7 @@ use {
     solana_runtime_transaction::{
         runtime_transaction::RuntimeTransaction, transaction_with_meta::TransactionWithMeta,
     },
-    solana_sdk::packet::PACKET_DATA_SIZE,
+    solana_packet::PACKET_DATA_SIZE,
     std::sync::Arc,
 };
 
@@ -348,15 +348,13 @@ mod tests {
         agave_transaction_view::transaction_view::SanitizedTransactionView,
         solana_perf::packet::Packet,
         solana_runtime_transaction::runtime_transaction::RuntimeTransaction,
-        solana_sdk::{
-            compute_budget::ComputeBudgetInstruction,
-            hash::Hash,
-            message::Message,
-            signature::Keypair,
-            signer::Signer,
-            system_instruction,
-            transaction::{MessageHash, SanitizedTransaction, Transaction},
-        },
+        solana_compute_budget_interface::ComputeBudgetInstruction,
+        solana_hash::Hash,
+        solana_message::Message,
+        solana_keypair::Keypair,
+        solana_signer::Signer,
+        solana_system_interface::instruction as system_instruction,
+        solana_transaction::{sanitized::{MessageHash, SanitizedTransaction}, Transaction},
         std::collections::HashSet,
     };
 

+ 11 - 10
core/src/banking_stage/vote_storage.rs

@@ -7,9 +7,11 @@ use {
     ahash::HashMap,
     itertools::Itertools,
     rand::{thread_rng, Rng},
+    solana_account::from_account,
+    solana_clock::Epoch,
     solana_pubkey::Pubkey,
     solana_runtime::{bank::Bank, epoch_stakes::EpochStakes},
-    solana_sdk::{account::from_account, clock::Epoch, slot_hashes::SlotHashes, sysvar},
+    solana_sysvar::{self as sysvar, slot_hashes::SlotHashes},
     std::{cmp, sync::Arc},
 };
 
@@ -320,14 +322,14 @@ impl VoteStorage {
     }
 
     #[cfg(test)]
-    pub fn get_latest_vote_slot(&self, pubkey: Pubkey) -> Option<solana_sdk::clock::Slot> {
+    pub fn get_latest_vote_slot(&self, pubkey: Pubkey) -> Option<solana_clock::Slot> {
         self.latest_vote_per_vote_pubkey
             .get(&pubkey)
             .map(|l| l.slot())
     }
 
     #[cfg(test)]
-    fn get_latest_timestamp(&self, pubkey: Pubkey) -> Option<solana_sdk::clock::UnixTimestamp> {
+    fn get_latest_timestamp(&self, pubkey: Pubkey) -> Option<solana_clock::UnixTimestamp> {
         self.latest_vote_per_vote_pubkey
             .get(&pubkey)
             .and_then(|l| l.timestamp())
@@ -338,15 +340,14 @@ impl VoteStorage {
 mod tests {
     use {
         super::*,
+        solana_clock::UnixTimestamp,
+        solana_epoch_schedule::MINIMUM_SLOTS_PER_EPOCH,
+        solana_genesis_config::GenesisConfig,
+        solana_hash::Hash,
+        solana_keypair::Keypair,
         solana_perf::packet::{Packet, PacketFlags},
         solana_runtime::genesis_utils::{self, ValidatorVoteKeypairs},
-        solana_sdk::{
-            clock::UnixTimestamp,
-            epoch_schedule::MINIMUM_SLOTS_PER_EPOCH,
-            genesis_config::GenesisConfig,
-            hash::Hash,
-            signature::{Keypair, Signer},
-        },
+        solana_signer::Signer,
         solana_vote::vote_transaction::new_tower_sync_transaction,
         solana_vote_program::vote_state::TowerSync,
         std::error::Error,

+ 8 - 5
core/src/banking_stage/vote_worker.rs

@@ -17,26 +17,29 @@ use {
     arrayvec::ArrayVec,
     crossbeam_channel::RecvTimeoutError,
     solana_accounts_db::account_locks::validate_account_locks,
+    solana_clock::FORWARD_TRANSACTIONS_TO_LEADER_AT_SLOT_OFFSET,
     solana_measure::{measure::Measure, measure_us},
     solana_poh::poh_recorder::{BankStart, PohRecorderError},
     solana_runtime::{bank::Bank, bank_forks::BankForks},
     solana_runtime_transaction::{
         runtime_transaction::RuntimeTransaction, transaction_with_meta::TransactionWithMeta,
     },
-    solana_sdk::{
-        clock::FORWARD_TRANSACTIONS_TO_LEADER_AT_SLOT_OFFSET,
-        timing::timestamp,
-        transaction::{self, SanitizedTransaction, TransactionError},
-    },
     solana_svm::{
         account_loader::TransactionCheckResult, transaction_error_metrics::TransactionErrorMetrics,
     },
+    solana_time_utils::timestamp,
+    solana_transaction::sanitized::SanitizedTransaction,
+    solana_transaction_error::TransactionError,
     std::{
         sync::{atomic::Ordering, Arc, RwLock},
         time::Instant,
     },
 };
 
+mod transaction {
+    pub use solana_transaction_error::TransactionResult as Result;
+}
+
 // This vote batch size was selected to balance the following two things:
 // 1. Amortize execution overhead (Larger is better)
 // 2. Constrain max entry size for FEC set packing (Smaller is better)

+ 2 - 1
core/src/banking_trace.rs

@@ -4,7 +4,8 @@ use {
     chrono::{DateTime, Local},
     crossbeam_channel::{unbounded, Receiver, SendError, Sender, TryRecvError},
     rolling_file::{RollingCondition, RollingConditionBasic, RollingFileAppender},
-    solana_sdk::{hash::Hash, slot_history::Slot},
+    solana_clock::Slot,
+    solana_hash::Hash,
     std::{
         fs::{create_dir_all, remove_dir_all},
         io::{self, Write},

+ 11 - 13
core/src/cluster_info_vote_listener.rs

@@ -10,14 +10,17 @@ use {
     agave_banking_stage_ingress_types::BankingPacketBatch,
     crossbeam_channel::{unbounded, Receiver, RecvTimeoutError, Select, Sender},
     log::*,
+    solana_clock::{Slot, DEFAULT_MS_PER_SLOT},
     solana_gossip::{
         cluster_info::{ClusterInfo, GOSSIP_SLEEP_MILLIS},
         crds::Cursor,
     },
+    solana_hash::Hash,
     solana_ledger::blockstore::Blockstore,
     solana_measure::measure::Measure,
     solana_metrics::inc_new_counter_debug,
     solana_perf::packet::{self, PacketBatch},
+    solana_pubkey::Pubkey,
     solana_rpc::{
         optimistically_confirmed_bank_tracker::{BankNotification, BankNotificationSender},
         rpc_subscriptions::RpcSubscriptions,
@@ -31,14 +34,9 @@ use {
         root_bank_cache::RootBankCache,
         vote_sender_types::ReplayVoteReceiver,
     },
-    solana_sdk::{
-        clock::{Slot, DEFAULT_MS_PER_SLOT},
-        hash::Hash,
-        pubkey::Pubkey,
-        signature::Signature,
-        timing::AtomicInterval,
-        transaction::Transaction,
-    },
+    solana_signature::Signature,
+    solana_time_utils::AtomicInterval,
+    solana_transaction::Transaction,
     solana_vote::{
         vote_parser::{self, ParsedVote},
         vote_transaction::VoteTransaction,
@@ -734,7 +732,10 @@ mod tests {
     use {
         super::*,
         itertools::Itertools,
+        solana_hash::Hash,
+        solana_keypair::Keypair,
         solana_perf::packet,
+        solana_pubkey::Pubkey,
         solana_rpc::optimistically_confirmed_bank_tracker::OptimisticallyConfirmedBank,
         solana_runtime::{
             bank::Bank,
@@ -744,11 +745,8 @@ mod tests {
             },
             vote_sender_types::ReplayVoteSender,
         },
-        solana_sdk::{
-            hash::Hash,
-            pubkey::Pubkey,
-            signature::{Keypair, Signature, Signer},
-        },
+        solana_signature::Signature,
+        solana_signer::Signer,
         solana_vote::vote_transaction,
         solana_vote_program::vote_state::{TowerSync, Vote, MAX_LOCKOUT_HISTORY},
         std::{

+ 3 - 2
core/src/cluster_slots_service.rs

@@ -2,11 +2,11 @@ pub mod cluster_slots;
 use {
     cluster_slots::ClusterSlots,
     crossbeam_channel::{Receiver, RecvTimeoutError, Sender},
+    solana_clock::Slot,
     solana_gossip::{cluster_info::ClusterInfo, epoch_specs::EpochSpecs},
     solana_ledger::blockstore::Blockstore,
     solana_measure::measure::Measure,
     solana_runtime::bank_forks::BankForks,
-    solana_sdk::clock::Slot,
     std::{
         sync::{
             atomic::{AtomicBool, Ordering},
@@ -199,7 +199,8 @@ mod test {
     use {
         super::*,
         solana_gossip::{cluster_info::Node, crds_data::LowestSlot},
-        solana_sdk::signature::{Keypair, Signer},
+        solana_keypair::Keypair,
+        solana_signer::Signer,
         solana_streamer::socket::SocketAddrSpace,
     };
 

+ 3 - 1
core/src/cluster_slots_service/cluster_slots.rs

@@ -1,9 +1,11 @@
 use {
     crate::replay_stage::DUPLICATE_THRESHOLD,
+    solana_clock::Slot,
     solana_gossip::{
         cluster_info::ClusterInfo, contact_info::ContactInfo, crds::Cursor, epoch_slots::EpochSlots,
     },
-    solana_sdk::{clock::Slot, pubkey::Pubkey, timing::AtomicInterval},
+    solana_pubkey::Pubkey,
+    solana_time_utils::AtomicInterval,
     std::{
         collections::{HashMap, VecDeque},
         hash::RandomState,

+ 5 - 2
core/src/commitment_service.rs

@@ -1,14 +1,15 @@
 use {
     crate::consensus::{tower_vote_state::TowerVoteState, Stake},
     crossbeam_channel::{unbounded, Receiver, RecvTimeoutError, Sender},
+    solana_clock::Slot,
     solana_measure::measure::Measure,
     solana_metrics::datapoint_info,
+    solana_pubkey::Pubkey,
     solana_rpc::rpc_subscriptions::RpcSubscriptions,
     solana_runtime::{
         bank::Bank,
         commitment::{BlockCommitment, BlockCommitmentCache, CommitmentSlots, VOTE_THRESHOLD_SIZE},
     },
-    solana_sdk::{clock::Slot, pubkey::Pubkey},
     std::{
         cmp::max,
         collections::HashMap,
@@ -265,12 +266,14 @@ impl AggregateCommitmentService {
 mod tests {
     use {
         super::*,
+        solana_account::Account,
         solana_ledger::genesis_utils::{create_genesis_config, GenesisConfigInfo},
+        solana_pubkey::Pubkey,
         solana_runtime::{
             bank_forks::BankForks,
             genesis_utils::{create_genesis_config_with_vote_accounts, ValidatorVoteKeypairs},
         },
-        solana_sdk::{account::Account, pubkey::Pubkey, signature::Signer},
+        solana_signer::Signer,
         solana_stake_program::stake_state,
         solana_vote::vote_transaction,
         solana_vote_program::vote_state::{

+ 3 - 7
core/src/completed_data_sets_service.rs

@@ -9,7 +9,7 @@ use {
     solana_entry::entry::Entry,
     solana_ledger::blockstore::{Blockstore, CompletedDataSetInfo},
     solana_rpc::{max_slots::MaxSlots, rpc_subscriptions::RpcSubscriptions},
-    solana_sdk::signature::Signature,
+    solana_signature::Signature,
     std::{
         sync::{
             atomic::{AtomicBool, Ordering},
@@ -109,12 +109,8 @@ impl CompletedDataSetsService {
 #[cfg(test)]
 pub mod test {
     use {
-        super::*,
-        solana_sdk::{
-            hash::Hash,
-            signature::{Keypair, Signer},
-            transaction::Transaction,
-        },
+        super::*, solana_hash::Hash, solana_keypair::Keypair, solana_signer::Signer,
+        solana_transaction::Transaction,
     };
 
     #[test]

+ 15 - 19
core/src/consensus.rs

@@ -21,19 +21,17 @@ use {
     },
     crate::replay_stage::DUPLICATE_THRESHOLD,
     chrono::prelude::*,
+    solana_clock::{Slot, UnixTimestamp},
+    solana_hash::Hash,
+    solana_instruction::Instruction,
+    solana_keypair::Keypair,
     solana_ledger::{
         ancestor_iterator::AncestorIterator,
         blockstore::{self, Blockstore},
     },
+    solana_pubkey::Pubkey,
     solana_runtime::{bank::Bank, bank_forks::BankForks, commitment::VOTE_THRESHOLD_SIZE},
-    solana_sdk::{
-        clock::{Slot, UnixTimestamp},
-        hash::Hash,
-        instruction::Instruction,
-        pubkey::Pubkey,
-        signature::Keypair,
-        slot_history::{Check, SlotHistory},
-    },
+    solana_slot_history::{Check, SlotHistory},
     solana_vote::{vote_account::VoteAccountsHashMap, vote_transaction::VoteTransaction},
     solana_vote_program::{
         vote_error::VoteError,
@@ -1782,16 +1780,14 @@ pub mod test {
             vote_simulator::VoteSimulator,
         },
         itertools::Itertools,
+        solana_account::{Account, AccountSharedData, ReadableAccount, WritableAccount},
+        solana_clock::Slot,
+        solana_hash::Hash,
         solana_ledger::{blockstore::make_slot_entries, get_tmp_ledger_path_auto_delete},
+        solana_pubkey::Pubkey,
         solana_runtime::bank::Bank,
-        solana_sdk::{
-            account::{Account, AccountSharedData, ReadableAccount, WritableAccount},
-            clock::Slot,
-            hash::Hash,
-            pubkey::Pubkey,
-            signature::Signer,
-            slot_history::SlotHistory,
-        },
+        solana_signer::Signer,
+        solana_slot_history::SlotHistory,
         solana_vote::vote_account::VoteAccount,
         solana_vote_program::vote_state::{
             process_slot_vote_unchecked, Vote, VoteState, VoteStateVersions, MAX_LOCKOUT_HISTORY,
@@ -3413,7 +3409,7 @@ pub mod test {
 
     #[test]
     fn test_adjust_lockouts_after_replay_all_rooted_with_too_old() {
-        use solana_sdk::slot_history::MAX_ENTRIES;
+        use solana_slot_history::MAX_ENTRIES;
 
         let mut tower = Tower::new_for_tests(10, 0.9);
         tower.record_vote(0, Hash::default());
@@ -3539,7 +3535,7 @@ pub mod test {
 
     #[test]
     fn test_adjust_lockouts_after_replay_too_old_tower() {
-        use solana_sdk::slot_history::MAX_ENTRIES;
+        use solana_slot_history::MAX_ENTRIES;
 
         let mut tower = Tower::new_for_tests(10, 0.9);
         tower.record_vote(0, Hash::default());
@@ -3595,7 +3591,7 @@ pub mod test {
 
     #[test]
     fn test_adjust_lockouts_after_replay_out_of_order() {
-        use solana_sdk::slot_history::MAX_ENTRIES;
+        use solana_slot_history::MAX_ENTRIES;
 
         let mut tower = Tower::new_for_tests(10, 0.9);
         tower

+ 1 - 1
core/src/consensus/fork_choice.rs

@@ -8,8 +8,8 @@ use {
         },
         replay_stage::HeaviestForkFailures,
     },
+    solana_clock::Slot,
     solana_runtime::{bank::Bank, bank_forks::BankForks},
-    solana_sdk::clock::Slot,
     std::{
         collections::{HashMap, HashSet},
         sync::{Arc, RwLock},

+ 6 - 7
core/src/consensus/heaviest_subtree_fork_choice.rs

@@ -6,14 +6,12 @@ use {
         latest_validator_votes_for_frozen_banks::LatestValidatorVotesForFrozenBanks,
         progress_map::ProgressMap, tree_diff::TreeDiff, Tower,
     },
+    solana_clock::{Epoch, Slot},
+    solana_epoch_schedule::EpochSchedule,
+    solana_hash::Hash,
     solana_measure::measure::Measure,
+    solana_pubkey::Pubkey,
     solana_runtime::{bank::Bank, bank_forks::BankForks, epoch_stakes::EpochStakes},
-    solana_sdk::{
-        clock::{Epoch, Slot},
-        epoch_schedule::EpochSchedule,
-        hash::Hash,
-        pubkey::Pubkey,
-    },
     std::{
         borrow::Borrow,
         cmp::Ordering,
@@ -1426,8 +1424,9 @@ mod test {
         super::*,
         crate::vote_simulator::VoteSimulator,
         itertools::Itertools,
+        solana_hash::Hash,
         solana_runtime::{bank::Bank, bank_utils},
-        solana_sdk::{hash::Hash, slot_history::SlotHistory},
+        solana_slot_history::SlotHistory,
         std::{collections::HashSet, ops::Range},
         trees::tr,
     };

+ 3 - 1
core/src/consensus/latest_validator_votes_for_frozen_banks.rs

@@ -1,6 +1,8 @@
 use {
     crate::consensus::heaviest_subtree_fork_choice::SlotHashKey,
-    solana_sdk::{clock::Slot, hash::Hash, pubkey::Pubkey},
+    solana_clock::Slot,
+    solana_hash::Hash,
+    solana_pubkey::Pubkey,
     std::collections::{hash_map::Entry, HashMap},
 };
 

+ 3 - 1
core/src/consensus/progress_map.rs

@@ -5,9 +5,11 @@ use {
         consensus::{Stake, ThresholdDecision, VotedStakes},
         replay_stage::SUPERMINORITY_THRESHOLD,
     },
+    solana_clock::Slot,
+    solana_hash::Hash,
     solana_ledger::blockstore_processor::{ConfirmationProgress, ReplaySlotStats},
+    solana_pubkey::Pubkey,
     solana_runtime::{bank::Bank, bank_forks::BankForks},
-    solana_sdk::{clock::Slot, hash::Hash, pubkey::Pubkey},
     solana_vote::vote_account::VoteAccountsHashMap,
     std::{
         collections::{BTreeMap, HashMap, HashSet},

+ 2 - 1
core/src/consensus/tower1_14_11.rs

@@ -1,6 +1,7 @@
 use {
     crate::consensus::{BlockhashStatus, SwitchForkDecision},
-    solana_sdk::{clock::Slot, pubkey::Pubkey},
+    solana_clock::Slot,
+    solana_pubkey::Pubkey,
     solana_vote::vote_transaction::VoteTransaction,
     solana_vote_program::vote_state::{vote_state_1_14_11::VoteState1_14_11, BlockTimestamp},
 };

+ 4 - 5
core/src/consensus/tower1_7_14.rs

@@ -1,10 +1,9 @@
 use {
     crate::consensus::{BlockhashStatus, Result, SwitchForkDecision, TowerError},
-    solana_sdk::{
-        clock::Slot,
-        pubkey::Pubkey,
-        signature::{Signature, Signer},
-    },
+    solana_clock::Slot,
+    solana_pubkey::Pubkey,
+    solana_signature::Signature,
+    solana_signer::Signer,
     solana_vote_program::vote_state::{vote_state_1_14_11::VoteState1_14_11, BlockTimestamp, Vote},
 };
 

+ 6 - 6
core/src/consensus/tower_storage.rs

@@ -3,10 +3,9 @@ use {
         tower1_14_11::Tower1_14_11, tower1_7_14::SavedTower1_7_14, Result, Tower, TowerError,
         TowerVersions,
     },
-    solana_sdk::{
-        pubkey::Pubkey,
-        signature::{Signature, Signer},
-    },
+    solana_pubkey::Pubkey,
+    solana_signature::Signature,
+    solana_signer::Signer,
     std::{
         fs::{self, File},
         io::{self, BufReader},
@@ -265,7 +264,7 @@ impl EtcdTowerStorage {
 
         Ok(Self {
             client: tokio::sync::Mutex::new(client),
-            instance_id: solana_sdk::timing::timestamp().to_le_bytes(),
+            instance_id: solana_time_utils::timestamp().to_le_bytes(),
             runtime,
         })
     }
@@ -377,7 +376,8 @@ pub mod test {
             tower1_7_14::{SavedTower1_7_14, Tower1_7_14},
             BlockhashStatus, Tower,
         },
-        solana_sdk::{hash::Hash, signature::Keypair},
+        solana_hash::Hash,
+        solana_keypair::Keypair,
         solana_vote::vote_transaction::VoteTransaction,
         solana_vote_program::vote_state::{
             BlockTimestamp, LandedVote, Vote, VoteState, VoteState1_14_11, MAX_LOCKOUT_HISTORY,

+ 1 - 1
core/src/consensus/tower_vote_state.rs

@@ -1,5 +1,5 @@
 use {
-    solana_sdk::clock::Slot,
+    solana_clock::Slot,
     solana_vote::vote_state_view::VoteStateView,
     solana_vote_program::vote_state::{Lockout, VoteState, VoteState1_14_11, MAX_LOCKOUT_HISTORY},
     std::collections::VecDeque,

+ 2 - 4
core/src/fetch_stage.rs

@@ -3,13 +3,11 @@
 use {
     crate::result::{Error, Result},
     crossbeam_channel::{unbounded, RecvTimeoutError},
+    solana_clock::{DEFAULT_TICKS_PER_SLOT, HOLD_TRANSACTIONS_SLOT_OFFSET},
     solana_metrics::{inc_new_counter_debug, inc_new_counter_info},
+    solana_packet::{Packet, PacketFlags},
     solana_perf::{packet::PacketBatchRecycler, recycler::Recycler},
     solana_poh::poh_recorder::PohRecorder,
-    solana_sdk::{
-        clock::{DEFAULT_TICKS_PER_SLOT, HOLD_TRANSACTIONS_SLOT_OFFSET},
-        packet::{Packet, PacketFlags},
-    },
     solana_streamer::streamer::{
         self, PacketBatchReceiver, PacketBatchSender, StreamerReceiveStats,
     },

+ 9 - 9
core/src/forwarding_stage.rs

@@ -11,9 +11,13 @@ use {
     solana_client::connection_cache::ConnectionCache,
     solana_connection_cache::client_connection::ClientConnection,
     solana_cost_model::cost_model::CostModel,
+    solana_fee_structure::{FeeBudgetLimits, FeeDetails},
     solana_gossip::{cluster_info::ClusterInfo, contact_info::Protocol},
+    solana_keypair::Keypair,
+    solana_packet as packet,
     solana_perf::data_budget::DataBudget,
     solana_poh::poh_recorder::PohRecorder,
+    solana_quic_definitions::NotifyKeyUpdate,
     solana_runtime::{
         bank::{Bank, CollectorFeeDetails},
         root_bank_cache::RootBankCache,
@@ -21,14 +25,6 @@ use {
     solana_runtime_transaction::{
         runtime_transaction::RuntimeTransaction, transaction_meta::StaticMeta,
     },
-    solana_sdk::{
-        fee::{FeeBudgetLimits, FeeDetails},
-        packet,
-        quic::NotifyKeyUpdate,
-        signer::keypair::Keypair,
-        transaction::MessageHash,
-        transport::TransportError,
-    },
     solana_streamer::sendmmsg::{batch_send, SendPktsError},
     solana_tpu_client_next::{
         connection_workers_scheduler::{
@@ -38,6 +34,8 @@ use {
         transaction_batch::TransactionBatch,
         ConnectionWorkersScheduler,
     },
+    solana_transaction::sanitized::MessageHash,
+    solana_transaction_error::TransportError,
     std::{
         net::{SocketAddr, UdpSocket},
         sync::{Arc, RwLock},
@@ -820,10 +818,12 @@ mod tests {
         super::*,
         crossbeam_channel::unbounded,
         packet::PacketFlags,
+        solana_hash::Hash,
+        solana_keypair::Keypair,
         solana_perf::packet::{Packet, PacketBatch},
         solana_pubkey::Pubkey,
         solana_runtime::genesis_utils::create_genesis_config,
-        solana_sdk::{hash::Hash, signature::Keypair, system_transaction},
+        solana_system_transaction as system_transaction,
         std::sync::{Arc, Mutex},
     };
 

+ 1 - 1
core/src/forwarding_stage/packet_container.rs

@@ -57,7 +57,7 @@ struct PriorityIndex {
 
 #[cfg(test)]
 mod tests {
-    use {super::*, solana_sdk::packet::PacketFlags};
+    use {super::*, solana_packet::PacketFlags};
 
     fn simple_packet_with_flags(packet_flags: PacketFlags) -> Packet {
         let mut packet = Packet::default();

+ 2 - 2
core/src/gen_keys.rs

@@ -4,7 +4,7 @@ use {
     rand::{Rng, SeedableRng},
     rand_chacha::ChaChaRng,
     rayon::prelude::*,
-    solana_sdk::{signature::Keypair, signer::keypair::keypair_from_seed},
+    solana_keypair::{keypair_from_seed, Keypair},
 };
 
 pub struct GenKeys {
@@ -48,7 +48,7 @@ impl GenKeys {
 #[cfg(test)]
 mod tests {
     pub use solana_pubkey::Pubkey;
-    use {super::*, solana_sdk::signature::Signer, std::collections::HashSet};
+    use {super::*, solana_signer::Signer, std::collections::HashSet};
 
     #[test]
     fn test_new_key_is_deterministic() {

+ 1 - 3
core/src/next_leader.rs

@@ -1,14 +1,12 @@
 use {
     crate::banking_stage::LikeClusterInfo,
     itertools::Itertools,
+    solana_clock::{FORWARD_TRANSACTIONS_TO_LEADER_AT_SLOT_OFFSET, NUM_CONSECUTIVE_LEADER_SLOTS},
     solana_gossip::{
         cluster_info::ClusterInfo,
         contact_info::{ContactInfoQuery, Protocol},
     },
     solana_poh::poh_recorder::PohRecorder,
-    solana_sdk::clock::{
-        FORWARD_TRANSACTIONS_TO_LEADER_AT_SLOT_OFFSET, NUM_CONSECUTIVE_LEADER_SLOTS,
-    },
     std::{net::SocketAddr, sync::RwLock},
 };
 

+ 3 - 1
core/src/optimistic_confirmation_verifier.rs

@@ -1,8 +1,10 @@
 use {
     crate::cluster_info_vote_listener::VoteTracker,
+    solana_clock::Slot,
+    solana_hash::Hash,
     solana_ledger::blockstore::Blockstore,
     solana_runtime::bank::Bank,
-    solana_sdk::{clock::Slot, hash::Hash, timing::timestamp},
+    solana_time_utils::timestamp,
     std::{collections::BTreeSet, time::Instant},
 };
 

+ 8 - 12
core/src/repair/ancestor_hashes_service.rs

@@ -18,22 +18,19 @@ use {
     bytes::Bytes,
     crossbeam_channel::{unbounded, Receiver, RecvTimeoutError, Sender},
     dashmap::{mapref::entry::Entry::Occupied, DashMap},
+    solana_clock::{Slot, DEFAULT_MS_PER_SLOT},
+    solana_genesis_config::ClusterType,
     solana_gossip::{cluster_info::ClusterInfo, contact_info::Protocol, ping_pong::Pong},
+    solana_keypair::{signable::Signable, Keypair},
     solana_ledger::blockstore::Blockstore,
     solana_perf::{
         packet::{deserialize_from_with_limit, Packet, PacketBatch, PacketFlags},
         recycler::Recycler,
     },
+    solana_pubkey::Pubkey,
     solana_runtime::bank::Bank,
-    solana_sdk::{
-        clock::{Slot, DEFAULT_MS_PER_SLOT},
-        genesis_config::ClusterType,
-        pubkey::Pubkey,
-        signature::Signable,
-        signer::keypair::Keypair,
-        timing::timestamp,
-    },
     solana_streamer::streamer::{self, PacketBatchReceiver, StreamerReceiveStats},
+    solana_time_utils::timestamp,
     std::{
         collections::HashSet,
         io::{Cursor, Read},
@@ -919,16 +916,15 @@ mod test {
             cluster_info::{ClusterInfo, Node},
             contact_info::{ContactInfo, Protocol},
         },
+        solana_hash::Hash,
+        solana_keypair::Keypair,
         solana_ledger::{
             blockstore::make_many_slot_entries, get_tmp_ledger_path,
             get_tmp_ledger_path_auto_delete, shred::Nonce,
         },
         solana_net_utils::bind_to_unspecified,
         solana_runtime::bank_forks::BankForks,
-        solana_sdk::{
-            hash::Hash,
-            signature::{Keypair, Signer},
-        },
+        solana_signer::Signer,
         solana_streamer::socket::SocketAddrSpace,
         std::collections::HashMap,
         trees::tr,

+ 2 - 1
core/src/repair/cluster_slot_state_verifier.rs

@@ -9,8 +9,9 @@ use {
             AncestorHashesReplayUpdate, AncestorHashesReplayUpdateSender,
         },
     },
+    solana_clock::Slot,
+    solana_hash::Hash,
     solana_ledger::blockstore::Blockstore,
-    solana_sdk::{clock::Slot, hash::Hash},
     std::collections::{BTreeMap, BTreeSet, HashMap},
 };
 

+ 4 - 1
core/src/repair/duplicate_repair_status.rs

@@ -1,6 +1,9 @@
 use {
+    solana_clock::Slot,
+    solana_hash::Hash,
     solana_ledger::blockstore::Blockstore,
-    solana_sdk::{clock::Slot, hash::Hash, pubkey::Pubkey, timing::timestamp},
+    solana_pubkey::Pubkey,
+    solana_time_utils::timestamp,
     std::{
         collections::HashMap,
         net::SocketAddr,

+ 1 - 1
core/src/repair/outstanding_requests.rs

@@ -88,7 +88,7 @@ pub(crate) mod tests {
         super::*,
         crate::repair::serve_repair::ShredRepairType,
         solana_ledger::shred::{Shred, ShredFlags},
-        solana_sdk::timing::timestamp,
+        solana_time_utils::timestamp,
     };
 
     #[test]

+ 3 - 2
core/src/repair/quic_endpoint.rs

@@ -14,8 +14,9 @@ use {
         CertificateError, KeyLogFile,
     },
     solana_gossip::contact_info::Protocol,
+    solana_keypair::Keypair,
+    solana_pubkey::Pubkey,
     solana_runtime::bank_forks::BankForks,
-    solana_sdk::{pubkey::Pubkey, signature::Keypair},
     solana_tls_utils::{
         new_dummy_x509_certificate, tls_client_config_builder, tls_server_config_builder,
     },
@@ -1019,7 +1020,7 @@ mod tests {
         solana_ledger::genesis_utils::{create_genesis_config, GenesisConfigInfo},
         solana_net_utils::bind_to_localhost,
         solana_runtime::bank::Bank,
-        solana_sdk::signature::Signer,
+        solana_signer::Signer,
         std::{iter::repeat_with, time::Duration},
     };
 

+ 3 - 2
core/src/repair/repair_generic_traversal.rs

@@ -3,8 +3,9 @@ use {
         consensus::{heaviest_subtree_fork_choice::HeaviestSubtreeForkChoice, tree_diff::TreeDiff},
         repair::{repair_service::RepairService, serve_repair::ShredRepairType},
     },
+    solana_clock::Slot,
+    solana_hash::Hash,
     solana_ledger::{blockstore::Blockstore, blockstore_meta::SlotMeta},
-    solana_sdk::{clock::Slot, hash::Hash},
     std::collections::{HashMap, HashSet},
 };
 
@@ -214,8 +215,8 @@ pub mod test {
     use {
         super::*,
         crate::repair::repair_service::sleep_shred_deferment_period,
+        solana_hash::Hash,
         solana_ledger::{blockstore::Blockstore, get_tmp_ledger_path},
-        solana_sdk::hash::Hash,
         trees::{tr, Tree, TreeWalk},
     };
 

+ 5 - 5
core/src/repair/repair_response.rs

@@ -1,9 +1,10 @@
 use {
+    solana_clock::Slot,
     solana_ledger::{
         blockstore::Blockstore,
         shred::{Nonce, SIZE_OF_NONCE},
     },
-    solana_sdk::{clock::Slot, packet::Packet},
+    solana_packet::Packet,
     std::{io, net::SocketAddr},
 };
 
@@ -45,14 +46,13 @@ pub fn repair_response_packet_from_bytes(
 mod test {
     use {
         super::*,
+        solana_keypair::Keypair,
         solana_ledger::{
             shred::{Shred, ShredFlags},
             sigverify_shreds::{verify_shred_cpu, LruCache},
         },
-        solana_sdk::{
-            packet::PacketFlags,
-            signature::{Keypair, Signer},
-        },
+        solana_packet::PacketFlags,
+        solana_signer::Signer,
         std::{
             collections::HashMap,
             net::{IpAddr, Ipv4Addr},

+ 11 - 14
core/src/repair/repair_service.rs

@@ -3,7 +3,7 @@
 #[cfg(test)]
 use {
     crate::repair::duplicate_repair_status::DuplicateSlotRepairStatus,
-    solana_sdk::{clock::DEFAULT_MS_PER_SLOT, signer::keypair::Keypair},
+    solana_clock::DEFAULT_MS_PER_SLOT, solana_keypair::Keypair,
 };
 use {
     crate::{
@@ -27,21 +27,19 @@ use {
     lru::LruCache,
     rand::seq::SliceRandom,
     solana_client::connection_cache::Protocol,
+    solana_clock::{Slot, DEFAULT_TICKS_PER_SECOND, MS_PER_TICK},
+    solana_epoch_schedule::EpochSchedule,
     solana_gossip::cluster_info::ClusterInfo,
+    solana_hash::Hash,
     solana_ledger::{
         blockstore::{Blockstore, SlotMeta},
         shred,
     },
     solana_measure::measure::Measure,
+    solana_pubkey::Pubkey,
     solana_runtime::{bank::Bank, bank_forks::BankForks, root_bank_cache::RootBankCache},
-    solana_sdk::{
-        clock::{Slot, DEFAULT_TICKS_PER_SECOND, MS_PER_TICK},
-        epoch_schedule::EpochSchedule,
-        hash::Hash,
-        pubkey::Pubkey,
-        timing::timestamp,
-    },
     solana_streamer::sendmmsg::{batch_send, SendPktsError},
+    solana_time_utils::timestamp,
     std::{
         collections::{hash_map::Entry, HashMap, HashSet},
         iter::Iterator,
@@ -962,7 +960,7 @@ impl RepairService {
                     Some((
                         *pubkey,
                         peer_repair_addr,
-                        (stake / solana_sdk::native_token::LAMPORTS_PER_SOL) as u32,
+                        (stake / solana_native_token::LAMPORTS_PER_SOL) as u32,
                     ))
                 } else {
                     None
@@ -1268,6 +1266,7 @@ mod test {
         super::*,
         crate::repair::quic_endpoint::RemoteRequest,
         solana_gossip::{cluster_info::Node, contact_info::ContactInfo},
+        solana_keypair::Keypair,
         solana_ledger::{
             blockstore::{
                 make_chaining_slot_entries, make_many_slot_entries, make_slot_entries, Blockstore,
@@ -1278,11 +1277,9 @@ mod test {
         },
         solana_net_utils::{bind_to_localhost, bind_to_unspecified},
         solana_runtime::bank::Bank,
-        solana_sdk::{
-            signature::{Keypair, Signer},
-            timing::timestamp,
-        },
+        solana_signer::Signer,
         solana_streamer::socket::SocketAddrSpace,
+        solana_time_utils::timestamp,
         std::collections::HashSet,
     };
 
@@ -1316,7 +1313,7 @@ mod test {
         );
 
         // Receive and translate repair packet
-        let mut packets = vec![solana_sdk::packet::Packet::default(); 1];
+        let mut packets = vec![solana_packet::Packet::default(); 1];
         let _recv_count = solana_streamer::recvmmsg::recv_mmsg(&reader, &mut packets[..]).unwrap();
         let packet = &packets[0];
         let Some(bytes) = packet.data(..).map(Vec::from) else {

+ 5 - 7
core/src/repair/repair_weight.rs

@@ -9,17 +9,15 @@ use {
         },
         replay_stage::DUPLICATE_THRESHOLD,
     },
+    solana_clock::{Epoch, Slot},
+    solana_epoch_schedule::EpochSchedule,
+    solana_hash::Hash,
     solana_ledger::{
         ancestor_iterator::AncestorIterator, blockstore::Blockstore, blockstore_meta::SlotMeta,
     },
     solana_measure::measure::Measure,
+    solana_pubkey::Pubkey,
     solana_runtime::epoch_stakes::EpochStakes,
-    solana_sdk::{
-        clock::Slot,
-        epoch_schedule::{Epoch, EpochSchedule},
-        hash::Hash,
-        pubkey::Pubkey,
-    },
     std::{
         collections::{HashMap, HashSet, VecDeque},
         iter,
@@ -997,12 +995,12 @@ mod test {
         super::*,
         itertools::Itertools,
         solana_accounts_db::contains::Contains,
+        solana_hash::Hash,
         solana_ledger::{
             blockstore::{make_chaining_slot_entries, Blockstore},
             get_tmp_ledger_path,
         },
         solana_runtime::{bank::Bank, bank_utils},
-        solana_sdk::hash::Hash,
         trees::tr,
     };
 

+ 3 - 2
core/src/repair/repair_weighted_traversal.rs

@@ -3,8 +3,9 @@ use {
         consensus::{heaviest_subtree_fork_choice::HeaviestSubtreeForkChoice, tree_diff::TreeDiff},
         repair::{repair_service::RepairService, serve_repair::ShredRepairType},
     },
+    solana_clock::Slot,
+    solana_hash::Hash,
     solana_ledger::{blockstore::Blockstore, blockstore_meta::SlotMeta},
-    solana_sdk::{clock::Slot, hash::Hash},
     std::collections::{HashMap, HashSet},
 };
 
@@ -140,12 +141,12 @@ pub mod test {
     use {
         super::*,
         crate::repair::repair_service::sleep_shred_deferment_period,
+        solana_hash::Hash,
         solana_ledger::{
             get_tmp_ledger_path,
             shred::{Shred, ShredFlags},
         },
         solana_runtime::bank_utils,
-        solana_sdk::hash::Hash,
         trees::tr,
     };
 

+ 13 - 11
core/src/repair/serve_repair.rs

@@ -18,37 +18,36 @@ use {
         distributions::{Distribution, WeightedError, WeightedIndex},
         Rng,
     },
+    solana_clock::Slot,
+    solana_genesis_config::ClusterType,
     solana_gossip::{
         cluster_info::{ClusterInfo, ClusterInfoError},
         contact_info::{ContactInfo, Protocol},
         ping_pong::{self, Pong},
         weighted_shuffle::WeightedShuffle,
     },
+    solana_hash::{Hash, HASH_BYTES},
+    solana_keypair::{signable::Signable, Keypair},
     solana_ledger::{
         ancestor_iterator::{AncestorIterator, AncestorIteratorWithHash},
         blockstore::Blockstore,
         shred::{self, Nonce, ShredFetchStats, SIZE_OF_NONCE},
     },
+    solana_packet::PACKET_DATA_SIZE,
     solana_perf::{
         data_budget::DataBudget,
         packet::{Packet, PacketBatch, PacketBatchRecycler},
     },
+    solana_pubkey::{Pubkey, PUBKEY_BYTES},
     solana_runtime::{bank_forks::BankForks, root_bank_cache::RootBankCache},
-    solana_sdk::{
-        clock::Slot,
-        genesis_config::ClusterType,
-        hash::{Hash, HASH_BYTES},
-        packet::PACKET_DATA_SIZE,
-        pubkey::{Pubkey, PUBKEY_BYTES},
-        signature::{Signable, Signature, Signer, SIGNATURE_BYTES},
-        signer::keypair::Keypair,
-        timing::timestamp,
-    },
+    solana_signature::{Signature, SIGNATURE_BYTES},
+    solana_signer::Signer,
     solana_streamer::{
         sendmmsg::{batch_send, SendPktsError},
         socket::SocketAddrSpace,
         streamer::PacketBatchSender,
     },
+    solana_time_utils::timestamp,
     std::{
         cmp::Reverse,
         collections::{HashMap, HashSet},
@@ -1444,6 +1443,8 @@ mod tests {
         crate::repair::repair_response,
         agave_feature_set::FeatureSet,
         solana_gossip::{contact_info::ContactInfo, socketaddr, socketaddr_any},
+        solana_hash::Hash,
+        solana_keypair::Keypair,
         solana_ledger::{
             blockstore::make_many_slot_entries,
             blockstore_processor::fill_blockstore_slot_with_ticks,
@@ -1452,9 +1453,10 @@ mod tests {
             shred::{max_ticks_per_n_shreds, Shred, ShredFlags},
         },
         solana_perf::packet::{deserialize_from_with_limit, Packet, PacketFlags},
+        solana_pubkey::Pubkey,
         solana_runtime::bank::Bank,
-        solana_sdk::{hash::Hash, pubkey::Pubkey, signature::Keypair, timing::timestamp},
         solana_streamer::socket::SocketAddrSpace,
+        solana_time_utils::timestamp,
         std::{io::Cursor, net::Ipv4Addr},
     };
 

+ 20 - 21
core/src/replay_stage.rs

@@ -35,9 +35,12 @@ use {
     crossbeam_channel::{Receiver, RecvTimeoutError, Sender},
     rayon::{prelude::*, ThreadPool},
     solana_accounts_db::contains::Contains,
+    solana_clock::{BankId, Slot, NUM_CONSECUTIVE_LEADER_SLOTS},
     solana_entry::entry::VerifyRecyclers,
     solana_geyser_plugin_manager::block_metadata_notifier_interface::BlockMetadataNotifierArc,
     solana_gossip::cluster_info::ClusterInfo,
+    solana_hash::Hash,
+    solana_keypair::Keypair,
     solana_ledger::{
         block_error::BlockError,
         blockstore::Blockstore,
@@ -51,6 +54,7 @@ use {
     },
     solana_measure::measure::Measure,
     solana_poh::poh_recorder::{PohLeaderStatus, PohRecorder, GRACE_TICKS_FACTOR, MAX_GRACE_SLOTS},
+    solana_pubkey::Pubkey,
     solana_rpc::{
         block_meta_service::BlockMetaSender,
         optimistically_confirmed_bank_tracker::{BankNotification, BankNotificationSenderConfig},
@@ -67,16 +71,12 @@ use {
         snapshot_controller::SnapshotController,
         vote_sender_types::ReplayVoteSender,
     },
-    solana_sdk::{
-        clock::{BankId, Slot, NUM_CONSECUTIVE_LEADER_SLOTS},
-        hash::Hash,
-        pubkey::Pubkey,
-        saturating_add_assign,
-        signature::{Keypair, Signature, Signer},
-        timing::timestamp,
-        transaction::Transaction,
-    },
+    solana_sdk::saturating_add_assign,
+    solana_signature::Signature,
+    solana_signer::Signer,
+    solana_time_utils::timestamp,
     solana_timings::ExecuteTimings,
+    solana_transaction::Transaction,
     solana_vote::vote_transaction::VoteTransaction,
     std::{
         collections::{HashMap, HashSet},
@@ -102,7 +102,7 @@ const MAX_VOTE_REFRESH_INTERVAL_MILLIS: usize = 5000;
 const MAX_REPAIR_RETRY_LOOP_ATTEMPTS: usize = 10;
 
 #[cfg(test)]
-static_assertions::const_assert!(REFRESH_VOTE_BLOCKHEIGHT < solana_sdk::clock::MAX_PROCESSING_AGE);
+static_assertions::const_assert!(REFRESH_VOTE_BLOCKHEIGHT < solana_clock::MAX_PROCESSING_AGE);
 // Give at least 4 leaders the chance to pack our vote
 const REFRESH_VOTE_BLOCKHEIGHT: usize = 16;
 #[derive(PartialEq, Eq, Debug)]
@@ -4344,8 +4344,13 @@ pub(crate) mod tests {
         crossbeam_channel::unbounded,
         itertools::Itertools,
         solana_client::connection_cache::ConnectionCache,
+        solana_clock::NUM_CONSECUTIVE_LEADER_SLOTS,
         solana_entry::entry::{self, Entry},
+        solana_genesis_config as genesis_config,
         solana_gossip::{cluster_info::Node, crds::Cursor},
+        solana_hash::Hash,
+        solana_instruction::error::InstructionError,
+        solana_keypair::Keypair,
         solana_ledger::{
             blockstore::{entries_to_test_shreds, make_slot_entries, BlockstoreError},
             create_new_tmp_ledger,
@@ -4353,6 +4358,7 @@ pub(crate) mod tests {
             get_tmp_ledger_path, get_tmp_ledger_path_auto_delete,
             shred::{Shred, ShredFlags, LEGACY_SHRED_DATA_CAPACITY},
         },
+        solana_poh_config::PohConfig,
         solana_rpc::{
             optimistically_confirmed_bank_tracker::OptimisticallyConfirmedBank,
             rpc::{create_test_transaction_entries, populate_blockstore_for_tests},
@@ -4362,18 +4368,11 @@ pub(crate) mod tests {
             commitment::{BlockCommitment, VOTE_THRESHOLD_SIZE},
             genesis_utils::{GenesisConfigInfo, ValidatorVoteKeypairs},
         },
-        solana_sdk::{
-            clock::NUM_CONSECUTIVE_LEADER_SLOTS,
-            genesis_config,
-            hash::{hash, Hash},
-            instruction::InstructionError,
-            poh_config::PohConfig,
-            signature::{Keypair, Signer},
-            system_transaction,
-            transaction::TransactionError,
-        },
+        solana_sha256_hasher::hash,
         solana_streamer::socket::SocketAddrSpace,
+        solana_system_transaction as system_transaction,
         solana_tpu_client::tpu_client::{DEFAULT_TPU_CONNECTION_POOL_SIZE, DEFAULT_VOTE_USE_QUIC},
+        solana_transaction_error::TransactionError,
         solana_transaction_status::VersionedTransactionWithStatusMeta,
         solana_vote::vote_transaction,
         solana_vote_program::vote_state::{self, TowerSync, VoteStateVersions},
@@ -5298,7 +5297,7 @@ pub(crate) mod tests {
             mut genesis_config,
             mint_keypair,
             ..
-        } = create_genesis_config(solana_sdk::native_token::sol_to_lamports(1000.0));
+        } = create_genesis_config(solana_native_token::sol_to_lamports(1000.0));
         genesis_config.rent.lamports_per_byte_year = 50;
         genesis_config.rent.exemption_threshold = 2.0;
         let (ledger_path, _) = create_new_tmp_ledger!(&genesis_config);

部分文件因为文件数量过多而无法显示