From 8db1f53fe72d5adbebfabe6d6ffa806b5f787ee8 Mon Sep 17 00:00:00 2001 From: Pires <1752631+pires@users.noreply.github.com> Date: Mon, 9 Jan 2023 05:25:56 +0000 Subject: [PATCH] Add pubsub address to RpcContactInfo (#29165) * rpc: add pubsub address to RpcContactInfo * cli: add pubsub endpoint to gossip node info * dashboard: add pubsub endpoint * add missing pubsub info test_rpc_get_cluster_nodes --- cli-output/src/cli_output.rs | 3 +++ rpc-client-api/src/response.rs | 2 ++ rpc-client/src/mock_sender.rs | 1 + rpc/src/rpc.rs | 2 ++ validator/src/dashboard.rs | 3 +++ 5 files changed, 11 insertions(+) diff --git a/cli-output/src/cli_output.rs b/cli-output/src/cli_output.rs index 4e3cb2730..c14dbdac5 100644 --- a/cli-output/src/cli_output.rs +++ b/cli-output/src/cli_output.rs @@ -2594,6 +2594,8 @@ pub struct CliGossipNode { #[serde(skip_serializing_if = "Option::is_none")] pub rpc_host: Option, #[serde(skip_serializing_if = "Option::is_none")] + pub pubsub_host: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub version: Option, #[serde(skip_serializing_if = "Option::is_none")] pub feature_set: Option, @@ -2608,6 +2610,7 @@ impl CliGossipNode { gossip_port: info.gossip.map(|addr| addr.port()), tpu_port: info.tpu.map(|addr| addr.port()), rpc_host: info.rpc.map(|addr| addr.to_string()), + pubsub_host: info.pubsub.map(|addr| addr.to_string()), version: info.version, feature_set: info.feature_set, } diff --git a/rpc-client-api/src/response.rs b/rpc-client-api/src/response.rs index 044ccc2d6..9c983b88f 100644 --- a/rpc-client-api/src/response.rs +++ b/rpc-client-api/src/response.rs @@ -298,6 +298,8 @@ pub struct RpcContactInfo { pub tpu: Option, /// JSON RPC port pub rpc: Option, + /// WebSocket PubSub port + pub pubsub: Option, /// Software version pub version: Option, /// First 4 bytes of the FeatureSet identifier diff --git a/rpc-client/src/mock_sender.rs b/rpc-client/src/mock_sender.rs index 51fee5d09..73e8ee9a0 100644 --- a/rpc-client/src/mock_sender.rs +++ b/rpc-client/src/mock_sender.rs @@ -375,6 +375,7 @@ impl RpcSender for MockSender { gossip: Some(SocketAddr::from(([10, 239, 6, 48], 8899))), tpu: Some(SocketAddr::from(([10, 239, 6, 48], 8856))), rpc: Some(SocketAddr::from(([10, 239, 6, 48], 8899))), + pubsub: Some(SocketAddr::from(([10, 239, 6, 48], 8900))), version: Some("1.0.0 c375ce1f".to_string()), feature_set: None, shred_version: None, diff --git a/rpc/src/rpc.rs b/rpc/src/rpc.rs index 466ccdddb..e25097ab2 100644 --- a/rpc/src/rpc.rs +++ b/rpc/src/rpc.rs @@ -3478,6 +3478,7 @@ pub mod rpc_full { gossip: Some(contact_info.gossip), tpu: valid_address_or_none(&contact_info.tpu), rpc: valid_address_or_none(&contact_info.rpc), + pubsub: valid_address_or_none(&contact_info.rpc_pubsub), version, feature_set, shred_version: Some(my_shred_version), @@ -5105,6 +5106,7 @@ pub mod tests { "shredVersion": 0u16, "tpu": "127.0.0.1:1234", "rpc": format!("127.0.0.1:{}", rpc_port::DEFAULT_RPC_PORT), + "pubsub": format!("127.0.0.1:{}", rpc_port::DEFAULT_RPC_PUBSUB_PORT), "version": null, "featureSet": null, }]); diff --git a/validator/src/dashboard.rs b/validator/src/dashboard.rs index 56df307d2..e1e30ef6d 100644 --- a/validator/src/dashboard.rs +++ b/validator/src/dashboard.rs @@ -112,6 +112,9 @@ impl Dashboard { if let Some(rpc) = contact_info.rpc { println_name_value("JSON RPC URL:", &format!("http://{rpc}")); } + if let Some(pubsub) = contact_info.pubsub { + println_name_value("WebSocket PubSub URL:", &format!("ws://{}", pubsub)); + } } let progress_bar = new_spinner_progress_bar();