diff --git a/CHANGELOG.md b/CHANGELOG.md index 99d52beaa0b83e..dadc45594b80e1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ Release channels have their own copy of this changelog: * The default for `--use-snapshot-archives-at-startup` is now `when-newest` (#33883) * The default for `solana-ledger-tool`, however, remains `always` (#34228) * Added `central-scheduler` option for `--block-production-method` (#33890) + * `central-scheduler` as default option for `--block-production-method` (#34891) * Updated to Borsh v1 * Added allow_commission_decrease_at_any_time feature which will allow commission on a vote account to be decreased even in the second half of epochs when the commission_updates_only_allowed_in_first_half_of_epoch diff --git a/core/src/validator.rs b/core/src/validator.rs index 4e96a3c2b5b4ff..23045aa3557e74 100644 --- a/core/src/validator.rs +++ b/core/src/validator.rs @@ -168,8 +168,8 @@ impl BlockVerificationMethod { #[derive(Clone, EnumString, EnumVariantNames, Default, IntoStaticStr, Display)] #[strum(serialize_all = "kebab-case")] pub enum BlockProductionMethod { - #[default] ThreadLocalMultiIterator, + #[default] CentralScheduler, } diff --git a/local-cluster/tests/local_cluster.rs b/local-cluster/tests/local_cluster.rs index aa919e75f0366d..5a4ca6e4cb6cc1 100644 --- a/local-cluster/tests/local_cluster.rs +++ b/local-cluster/tests/local_cluster.rs @@ -16,7 +16,7 @@ use { }, optimistic_confirmation_verifier::OptimisticConfirmationVerifier, replay_stage::DUPLICATE_THRESHOLD, - validator::{BlockVerificationMethod, ValidatorConfig}, + validator::{BlockProductionMethod, BlockVerificationMethod, ValidatorConfig}, }, solana_download_utils::download_snapshot_archive, solana_entry::entry::create_ticks, @@ -349,11 +349,16 @@ fn test_forwarding() { solana_logger::setup_with_default(RUST_LOG_FILTER); // Set up a cluster where one node is never the leader, so all txs sent to this node // will be have to be forwarded in order to be confirmed + // Only ThreadLocalMultiIterator banking stage forwards transactions, + // so must use that block-production-method. let mut config = ClusterConfig { node_stakes: vec![DEFAULT_NODE_STAKE * 100, DEFAULT_NODE_STAKE], cluster_lamports: DEFAULT_CLUSTER_LAMPORTS + DEFAULT_NODE_STAKE * 100, validator_configs: make_identical_validator_configs( - &ValidatorConfig::default_for_test(), + &ValidatorConfig { + block_production_method: BlockProductionMethod::ThreadLocalMultiIterator, + ..ValidatorConfig::default_for_test() + }, 2, ), ..ClusterConfig::default() @@ -4257,7 +4262,10 @@ fn test_leader_failure_4() { solana_logger::setup_with_default(RUST_LOG_FILTER); error!("test_leader_failure_4"); let num_nodes = 4; - let validator_config = ValidatorConfig::default_for_test(); + let validator_config = ValidatorConfig { + block_production_method: BlockProductionMethod::ThreadLocalMultiIterator, + ..ValidatorConfig::default_for_test() + }; let mut config = ClusterConfig { cluster_lamports: DEFAULT_CLUSTER_LAMPORTS, node_stakes: vec![DEFAULT_NODE_STAKE; 4],