diff --git a/Cargo.lock b/Cargo.lock index 0973d94da..85641aff1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -177,7 +177,6 @@ dependencies = [ "solana-stake-program", "solana-storage-bigtable", "solana-streamer", - "solana-svm", "solana-transaction-status", "solana-unified-scheduler-pool", "solana-version", @@ -233,6 +232,7 @@ dependencies = [ "solana-net-utils", "solana-perf", "solana-poh", + "solana-program-runtime", "solana-rpc", "solana-rpc-client", "solana-rpc-client-api", @@ -241,7 +241,6 @@ dependencies = [ "solana-send-transaction-service", "solana-storage-bigtable", "solana-streamer", - "solana-svm", "solana-test-validator", "solana-tpu-client", "solana-unified-scheduler-pool", @@ -7345,7 +7344,6 @@ dependencies = [ "solana-runtime", "solana-sdk", "solana-streamer", - "solana-svm", "solana-tpu-client", "tokio", ] diff --git a/core/src/validator.rs b/core/src/validator.rs index 196dad5f2..a1c8293f8 100644 --- a/core/src/validator.rs +++ b/core/src/validator.rs @@ -74,6 +74,7 @@ use { poh_recorder::PohRecorder, poh_service::{self, PohService}, }, + solana_program_runtime::runtime_config::RuntimeConfig, solana_rpc::{ max_slots::MaxSlots, optimistically_confirmed_bank_tracker::{ @@ -116,7 +117,6 @@ use { }, solana_send_transaction_service::send_transaction_service, solana_streamer::{socket::SocketAddrSpace, streamer::StakedNodes}, - solana_svm::runtime_config::RuntimeConfig, solana_turbine::{self, broadcast_stage::BroadcastStageType}, solana_unified_scheduler_pool::DefaultSchedulerPool, solana_vote_program::vote_state, diff --git a/core/tests/epoch_accounts_hash.rs b/core/tests/epoch_accounts_hash.rs index 62e31f0a8..25e976899 100755 --- a/core/tests/epoch_accounts_hash.rs +++ b/core/tests/epoch_accounts_hash.rs @@ -16,6 +16,7 @@ use { snapshot_packager_service::SnapshotPackagerService, }, solana_gossip::{cluster_info::ClusterInfo, contact_info::ContactInfo}, + solana_program_runtime::runtime_config::RuntimeConfig, solana_runtime::{ accounts_background_service::{ AbsRequestHandlers, AbsRequestSender, AccountsBackgroundService, DroppedSlotsReceiver, @@ -39,7 +40,6 @@ use { timing::timestamp, }, solana_streamer::socket::SocketAddrSpace, - solana_svm::runtime_config::RuntimeConfig, std::{ mem::ManuallyDrop, sync::{ diff --git a/core/tests/snapshots.rs b/core/tests/snapshots.rs index e67c942f0..1607ebd3f 100644 --- a/core/tests/snapshots.rs +++ b/core/tests/snapshots.rs @@ -18,6 +18,7 @@ use { snapshot_packager_service::SnapshotPackagerService, }, solana_gossip::{cluster_info::ClusterInfo, contact_info::ContactInfo}, + solana_program_runtime::runtime_config::RuntimeConfig, solana_runtime::{ accounts_background_service::{ AbsRequestHandlers, AbsRequestSender, AccountsBackgroundService, @@ -50,7 +51,6 @@ use { timing::timestamp, }, solana_streamer::socket::SocketAddrSpace, - solana_svm::runtime_config::RuntimeConfig, std::{ collections::HashSet, fs, diff --git a/ledger-tool/Cargo.toml b/ledger-tool/Cargo.toml index cb87a0e16..88bb3d3ff 100644 --- a/ledger-tool/Cargo.toml +++ b/ledger-tool/Cargo.toml @@ -44,7 +44,6 @@ solana-sdk = { workspace = true } solana-stake-program = { workspace = true } solana-storage-bigtable = { workspace = true } solana-streamer = { workspace = true } -solana-svm = { workspace = true } solana-transaction-status = { workspace = true } solana-unified-scheduler-pool = { workspace = true } solana-version = { workspace = true } diff --git a/ledger-tool/src/args.rs b/ledger-tool/src/args.rs index 80ea6f971..1f0c06966 100644 --- a/ledger-tool/src/args.rs +++ b/ledger-tool/src/args.rs @@ -12,8 +12,8 @@ use { blockstore_processor::ProcessOptions, use_snapshot_archives_at_startup::{self, UseSnapshotArchivesAtStartup}, }, + solana_program_runtime::runtime_config::RuntimeConfig, solana_sdk::clock::Slot, - solana_svm::runtime_config::RuntimeConfig, std::{ collections::HashSet, path::{Path, PathBuf}, diff --git a/ledger/src/blockstore_processor.rs b/ledger/src/blockstore_processor.rs index 2e172870d..c999eab1a 100644 --- a/ledger/src/blockstore_processor.rs +++ b/ledger/src/blockstore_processor.rs @@ -27,7 +27,10 @@ use { }, solana_measure::{measure, measure::Measure}, solana_metrics::datapoint_error, - solana_program_runtime::timings::{ExecuteTimingType, ExecuteTimings, ThreadExecuteTimings}, + solana_program_runtime::{ + runtime_config::RuntimeConfig, + timings::{ExecuteTimingType, ExecuteTimings, ThreadExecuteTimings}, + }, solana_rayon_threadlimit::{get_max_thread_count, get_thread_count}, solana_runtime::{ accounts_background_service::{AbsRequestSender, SnapshotRequestKind}, @@ -54,11 +57,8 @@ use { VersionedTransaction, }, }, - solana_svm::{ - runtime_config::RuntimeConfig, - transaction_results::{ - TransactionExecutionDetails, TransactionExecutionResult, TransactionResults, - }, + solana_svm::transaction_results::{ + TransactionExecutionDetails, TransactionExecutionResult, TransactionResults, }, solana_transaction_status::token_balances::TransactionTokenBalancesSet, solana_vote::{vote_account::VoteAccountsHashMap, vote_sender_types::ReplayVoteSender}, diff --git a/program-runtime/src/lib.rs b/program-runtime/src/lib.rs index 5797626a0..079f214fa 100644 --- a/program-runtime/src/lib.rs +++ b/program-runtime/src/lib.rs @@ -17,6 +17,7 @@ pub mod loaded_programs; pub mod log_collector; pub mod message_processor; pub mod prioritization_fee; +pub mod runtime_config; pub mod stable_log; pub mod sysvar_cache; pub mod timings; diff --git a/program-runtime/src/runtime_config.rs b/program-runtime/src/runtime_config.rs new file mode 100644 index 000000000..da6fc1dfb --- /dev/null +++ b/program-runtime/src/runtime_config.rs @@ -0,0 +1,17 @@ +use crate::compute_budget::ComputeBudget; + +#[cfg(RUSTC_WITH_SPECIALIZATION)] +impl ::solana_frozen_abi::abi_example::AbiExample for RuntimeConfig { + fn example() -> Self { + // RuntimeConfig is not Serialize so just rely on Default. + RuntimeConfig::default() + } +} + +/// Encapsulates flags that can be used to tweak the runtime behavior. +#[derive(Debug, Default, Clone)] +pub struct RuntimeConfig { + pub compute_budget: Option, + pub log_messages_bytes_limit: Option, + pub transaction_account_lock_limit: Option, +} diff --git a/program-test/src/lib.rs b/program-test/src/lib.rs index 20b9f5806..669cb15a5 100644 --- a/program-test/src/lib.rs +++ b/program-test/src/lib.rs @@ -17,7 +17,8 @@ use { solana_bpf_loader_program::serialization::serialize_parameters, solana_program_runtime::{ compute_budget::ComputeBudget, ic_msg, invoke_context::BuiltinFunctionWithContext, - loaded_programs::LoadedProgram, stable_log, timings::ExecuteTimings, + loaded_programs::LoadedProgram, runtime_config::RuntimeConfig, stable_log, + timings::ExecuteTimings, }, solana_runtime::{ accounts_background_service::{AbsRequestSender, SnapshotRequestKind}, @@ -45,7 +46,6 @@ use { stable_layout::stable_instruction::StableInstruction, sysvar::{Sysvar, SysvarId}, }, - solana_svm::runtime_config::RuntimeConfig, solana_vote_program::vote_state::{self, VoteState, VoteStateVersions}, std::{ cell::RefCell, diff --git a/programs/sbf/Cargo.lock b/programs/sbf/Cargo.lock index 11a4bcab0..b72b4110e 100644 --- a/programs/sbf/Cargo.lock +++ b/programs/sbf/Cargo.lock @@ -117,6 +117,7 @@ dependencies = [ "solana-net-utils", "solana-perf", "solana-poh", + "solana-program-runtime", "solana-rpc", "solana-rpc-client", "solana-rpc-client-api", @@ -125,7 +126,6 @@ dependencies = [ "solana-send-transaction-service", "solana-storage-bigtable", "solana-streamer", - "solana-svm", "solana-test-validator", "solana-tpu-client", "solana-unified-scheduler-pool", @@ -6393,7 +6393,6 @@ dependencies = [ "solana-runtime", "solana-sdk", "solana-streamer", - "solana-svm", "solana-tpu-client", "tokio", ] diff --git a/runtime/src/bank.rs b/runtime/src/bank.rs index 39df91c38..ee04f2078 100644 --- a/runtime/src/bank.rs +++ b/runtime/src/bank.rs @@ -99,6 +99,7 @@ use { compute_budget_processor::process_compute_budget_instructions, invoke_context::BuiltinFunctionWithContext, loaded_programs::{LoadedProgram, LoadedProgramType, LoadedPrograms}, + runtime_config::RuntimeConfig, timings::{ExecuteTimingType, ExecuteTimings}, }, solana_sdk::{ @@ -163,7 +164,6 @@ use { solana_svm::{ account_loader::{TransactionCheckResult, TransactionLoadResult}, account_overrides::AccountOverrides, - runtime_config::RuntimeConfig, transaction_error_metrics::TransactionErrorMetrics, transaction_processor::{ TransactionBatchProcessor, TransactionLogMessages, TransactionProcessingCallback, diff --git a/runtime/src/bank/serde_snapshot.rs b/runtime/src/bank/serde_snapshot.rs index 8b78efbcf..f5b1653e8 100644 --- a/runtime/src/bank/serde_snapshot.rs +++ b/runtime/src/bank/serde_snapshot.rs @@ -31,6 +31,7 @@ mod tests { epoch_accounts_hash::EpochAccountsHash, stake_rewards::StakeReward, }, + solana_program_runtime::runtime_config::RuntimeConfig, solana_sdk::{ epoch_schedule::EpochSchedule, genesis_config::create_genesis_config, @@ -38,7 +39,6 @@ mod tests { pubkey::Pubkey, signature::{Keypair, Signer}, }, - solana_svm::runtime_config::RuntimeConfig, std::{ io::{Cursor, Read, Write}, num::NonZeroUsize, diff --git a/runtime/src/serde_snapshot.rs b/runtime/src/serde_snapshot.rs index 4b066976d..8e678044e 100644 --- a/runtime/src/serde_snapshot.rs +++ b/runtime/src/serde_snapshot.rs @@ -27,6 +27,7 @@ use { epoch_accounts_hash::EpochAccountsHash, }, solana_measure::measure::Measure, + solana_program_runtime::runtime_config::RuntimeConfig, solana_sdk::{ clock::{Epoch, Slot, UnixTimestamp}, deserialize_utils::default_on_eof, @@ -39,7 +40,6 @@ use { pubkey::Pubkey, rent_collector::RentCollector, }, - solana_svm::runtime_config::RuntimeConfig, std::{ collections::{HashMap, HashSet}, io::{self, BufReader, BufWriter, Read, Write}, diff --git a/runtime/src/snapshot_bank_utils.rs b/runtime/src/snapshot_bank_utils.rs index 721021142..ab3a76fc8 100644 --- a/runtime/src/snapshot_bank_utils.rs +++ b/runtime/src/snapshot_bank_utils.rs @@ -37,6 +37,7 @@ use { utils::delete_contents_of_path, }, solana_measure::{measure, measure::Measure}, + solana_program_runtime::runtime_config::RuntimeConfig, solana_sdk::{ clock::Slot, feature_set, @@ -45,7 +46,6 @@ use { pubkey::Pubkey, slot_history::{Check, SlotHistory}, }, - solana_svm::runtime_config::RuntimeConfig, std::{ collections::HashSet, fs, diff --git a/svm/src/lib.rs b/svm/src/lib.rs index 5505e34be..d0f679a15 100644 --- a/svm/src/lib.rs +++ b/svm/src/lib.rs @@ -4,7 +4,6 @@ pub mod account_loader; pub mod account_overrides; pub mod account_rent_state; -pub mod runtime_config; pub mod transaction_account_state_info; pub mod transaction_error_metrics; pub mod transaction_processor; diff --git a/svm/src/runtime_config.rs b/svm/src/runtime_config.rs deleted file mode 100644 index 2439dd85c..000000000 --- a/svm/src/runtime_config.rs +++ /dev/null @@ -1,9 +0,0 @@ -use solana_program_runtime::compute_budget::ComputeBudget; - -/// Encapsulates flags that can be used to tweak the runtime behavior. -#[derive(AbiExample, Debug, Default, Clone)] -pub struct RuntimeConfig { - pub compute_budget: Option, - pub log_messages_bytes_limit: Option, - pub transaction_account_lock_limit: Option, -} diff --git a/svm/src/transaction_processor.rs b/svm/src/transaction_processor.rs index fa4178506..e44b426df 100644 --- a/svm/src/transaction_processor.rs +++ b/svm/src/transaction_processor.rs @@ -4,7 +4,6 @@ use { load_accounts, LoadedTransaction, TransactionCheckResult, TransactionLoadResult, }, account_overrides::AccountOverrides, - runtime_config::RuntimeConfig, transaction_account_state_info::TransactionAccountStateInfo, transaction_error_metrics::TransactionErrorMetrics, transaction_results::{ @@ -23,6 +22,7 @@ use { }, log_collector::LogCollector, message_processor::MessageProcessor, + runtime_config::RuntimeConfig, sysvar_cache::SysvarCache, timings::{ExecuteDetailsTimings, ExecuteTimingType, ExecuteTimings}, }, diff --git a/test-validator/Cargo.toml b/test-validator/Cargo.toml index 2bc8deb5f..60f299d01 100644 --- a/test-validator/Cargo.toml +++ b/test-validator/Cargo.toml @@ -32,7 +32,6 @@ solana-rpc-client = { workspace = true } solana-runtime = { workspace = true } solana-sdk = { workspace = true } solana-streamer = { workspace = true } -solana-svm = { workspace = true } solana-tpu-client = { workspace = true } tokio = { workspace = true, features = ["full"] } diff --git a/test-validator/src/lib.rs b/test-validator/src/lib.rs index c658b5330..f551cb978 100644 --- a/test-validator/src/lib.rs +++ b/test-validator/src/lib.rs @@ -29,7 +29,7 @@ use { create_new_tmp_ledger, }, solana_net_utils::PortRange, - solana_program_runtime::compute_budget::ComputeBudget, + solana_program_runtime::{compute_budget::ComputeBudget, runtime_config::RuntimeConfig}, solana_rpc::{rpc::JsonRpcConfig, rpc_pubsub_service::PubSubConfig}, solana_rpc_client::{nonblocking, rpc_client::RpcClient}, solana_runtime::{ @@ -54,7 +54,6 @@ use { signature::{read_keypair_file, write_keypair_file, Keypair, Signer}, }, solana_streamer::socket::SocketAddrSpace, - solana_svm::runtime_config::RuntimeConfig, solana_tpu_client::tpu_client::{ DEFAULT_TPU_CONNECTION_POOL_SIZE, DEFAULT_TPU_ENABLE_UDP, DEFAULT_TPU_USE_QUIC, }, diff --git a/validator/Cargo.toml b/validator/Cargo.toml index 844a2bca9..74742c90f 100644 --- a/validator/Cargo.toml +++ b/validator/Cargo.toml @@ -49,6 +49,7 @@ solana-metrics = { workspace = true } solana-net-utils = { workspace = true } solana-perf = { workspace = true } solana-poh = { workspace = true } +solana-program-runtime = { workspace = true } solana-rpc = { workspace = true } solana-rpc-client = { workspace = true } solana-rpc-client-api = { workspace = true } @@ -57,7 +58,6 @@ solana-sdk = { workspace = true } solana-send-transaction-service = { workspace = true } solana-storage-bigtable = { workspace = true } solana-streamer = { workspace = true } -solana-svm = { workspace = true } solana-test-validator = { workspace = true } solana-tpu-client = { workspace = true } solana-unified-scheduler-pool = { workspace = true } diff --git a/validator/src/main.rs b/validator/src/main.rs index 9741a2aec..b00eabfef 100644 --- a/validator/src/main.rs +++ b/validator/src/main.rs @@ -47,6 +47,7 @@ use { }, solana_perf::recycler::enable_recycler_warming, solana_poh::poh_service, + solana_program_runtime::runtime_config::RuntimeConfig, solana_rpc::{ rpc::{JsonRpcConfig, RpcBigtableConfig}, rpc_pubsub_service::PubSubConfig, @@ -67,7 +68,6 @@ use { }, solana_send_transaction_service::send_transaction_service, solana_streamer::socket::SocketAddrSpace, - solana_svm::runtime_config::RuntimeConfig, solana_tpu_client::tpu_client::DEFAULT_TPU_ENABLE_UDP, std::{ collections::{HashSet, VecDeque},