solana-test-validator now supports the `--rpc-pubsub-enable-vote-subscription` flag

This commit is contained in:
Michael Vines 2022-01-26 22:03:14 -08:00
parent 331b953551
commit 75658e2a96
2 changed files with 20 additions and 2 deletions

View File

@ -14,7 +14,7 @@ use {
},
solana_ledger::{blockstore::create_new_ledger, create_new_tmp_ledger},
solana_net_utils::PortRange,
solana_rpc::rpc::JsonRpcConfig,
solana_rpc::{rpc::JsonRpcConfig, rpc_pubsub_service::PubSubConfig},
solana_runtime::{
genesis_utils::create_genesis_config_with_leader_ex,
hardened_unpack::MAX_GENESIS_ARCHIVE_UNPACKED_SIZE, snapshot_config::SnapshotConfig,
@ -91,6 +91,7 @@ pub struct TestValidatorGenesis {
tower_storage: Option<Arc<dyn TowerStorage>>,
pub rent: Rent,
rpc_config: JsonRpcConfig,
pubsub_config: PubSubConfig,
rpc_ports: Option<(u16, u16)>, // (JsonRpc, JsonRpcPubSub), None == random ports
warp_slot: Option<Slot>,
no_bpf_jit: bool,
@ -149,6 +150,11 @@ impl TestValidatorGenesis {
self
}
pub fn pubsub_config(&mut self, pubsub_config: PubSubConfig) -> &mut Self {
self.pubsub_config = pubsub_config;
self
}
pub fn rpc_port(&mut self, rpc_port: u16) -> &mut Self {
self.rpc_ports = Some((rpc_port, rpc_port + 1));
self
@ -606,6 +612,7 @@ impl TestValidator {
),
)),
rpc_config: config.rpc_config.clone(),
pubsub_config: config.pubsub_config.clone(),
accounts_hash_interval_slots: 100,
account_paths: vec![ledger_path.join("accounts")],
poh_verify: false, // Skip PoH verification of ledger on startup for speed

View File

@ -12,7 +12,7 @@ use {
solana_client::rpc_client::RpcClient,
solana_core::tower_storage::FileTowerStorage,
solana_faucet::faucet::{run_local_faucet_with_port, FAUCET_PORT},
solana_rpc::rpc::JsonRpcConfig,
solana_rpc::{rpc::JsonRpcConfig, rpc_pubsub_service::PubSubConfig},
solana_sdk::{
account::AccountSharedData,
clock::Slot,
@ -155,6 +155,12 @@ fn main() {
.validator(solana_validator::port_validator)
.help("Enable JSON RPC on this port, and the next port for the RPC websocket"),
)
.arg(
Arg::with_name("rpc_pubsub_enable_vote_subscription")
.long("rpc-pubsub-enable-vote-subscription")
.takes_value(false)
.help("Enable the unstable RPC PubSub `voteSubscribe` subscription"),
)
.arg(
Arg::with_name("bpf_program")
.long("bpf-program")
@ -404,6 +410,7 @@ fn main() {
});
let rpc_port = value_t_or_exit!(matches, "rpc_port", u16);
let enable_vote_subscription = matches.is_present("rpc_pubsub_enable_vote_subscription");
let faucet_port = value_t_or_exit!(matches, "faucet_port", u16);
let ticks_per_slot = value_t!(matches, "ticks_per_slot", u64).ok();
let slots_per_epoch = value_t!(matches, "slots_per_epoch", Slot).ok();
@ -612,6 +619,10 @@ fn main() {
faucet_addr,
..JsonRpcConfig::default()
})
.pubsub_config(PubSubConfig {
enable_vote_subscription,
..PubSubConfig::default()
})
.bpf_jit(!matches.is_present("no_bpf_jit"))
.rpc_port(rpc_port)
.add_programs_with_path(&programs_to_load)