getClusterNodes RPC API now includes the node software version (#9990)
This commit is contained in:
parent
3b9dc50541
commit
84b6120983
|
@ -108,6 +108,8 @@ pub struct RpcContactInfo {
|
||||||
pub tpu: Option<SocketAddr>,
|
pub tpu: Option<SocketAddr>,
|
||||||
/// JSON RPC port
|
/// JSON RPC port
|
||||||
pub rpc: Option<SocketAddr>,
|
pub rpc: Option<SocketAddr>,
|
||||||
|
/// Software version
|
||||||
|
pub version: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Map of leader base58 identity pubkeys to the slot indices relative to the first epoch slot
|
/// Map of leader base58 identity pubkeys to the slot indices relative to the first epoch slot
|
||||||
|
|
|
@ -1063,6 +1063,9 @@ impl RpcSol for RpcSolImpl {
|
||||||
gossip: Some(contact_info.gossip),
|
gossip: Some(contact_info.gossip),
|
||||||
tpu: valid_address_or_none(&contact_info.tpu),
|
tpu: valid_address_or_none(&contact_info.tpu),
|
||||||
rpc: valid_address_or_none(&contact_info.rpc),
|
rpc: valid_address_or_none(&contact_info.rpc),
|
||||||
|
version: cluster_info
|
||||||
|
.get_node_version(&contact_info.id)
|
||||||
|
.map(|v| v.to_string()),
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
None // Exclude spy nodes
|
None // Exclude spy nodes
|
||||||
|
@ -1828,7 +1831,7 @@ pub mod tests {
|
||||||
.expect("actual response deserialization");
|
.expect("actual response deserialization");
|
||||||
|
|
||||||
let expected = format!(
|
let expected = format!(
|
||||||
r#"{{"jsonrpc":"2.0","result":[{{"pubkey": "{}", "gossip": "127.0.0.1:1235", "tpu": "127.0.0.1:1234", "rpc": "127.0.0.1:{}"}}],"id":1}}"#,
|
r#"{{"jsonrpc":"2.0","result":[{{"pubkey": "{}", "gossip": "127.0.0.1:1235", "tpu": "127.0.0.1:1234", "rpc": "127.0.0.1:{}", "version": null}}],"id":1}}"#,
|
||||||
leader_pubkey,
|
leader_pubkey,
|
||||||
rpc_port::DEFAULT_RPC_PORT
|
rpc_port::DEFAULT_RPC_PORT
|
||||||
);
|
);
|
||||||
|
|
|
@ -259,7 +259,8 @@ The result field will be an array of JSON objects, each with the following sub f
|
||||||
* `pubkey: <string>` - Node public key, as base-58 encoded string
|
* `pubkey: <string>` - Node public key, as base-58 encoded string
|
||||||
* `gossip: <string>` - Gossip network address for the node
|
* `gossip: <string>` - Gossip network address for the node
|
||||||
* `tpu: <string>` - TPU network address for the node
|
* `tpu: <string>` - TPU network address for the node
|
||||||
* `rpc: <string>` - JSON RPC network address for the node, or `null` if the JSON RPC service is not enabled
|
* `rpc: <string>|null` - JSON RPC network address for the node, or `null` if the JSON RPC service is not enabled
|
||||||
|
* `version: <string>|null` - The software version of the node, or `null` if the version information is not available
|
||||||
|
|
||||||
#### Example:
|
#### Example:
|
||||||
|
|
||||||
|
@ -268,7 +269,7 @@ The result field will be an array of JSON objects, each with the following sub f
|
||||||
curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0", "id":1, "method":"getClusterNodes"}' http://localhost:8899
|
curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0", "id":1, "method":"getClusterNodes"}' http://localhost:8899
|
||||||
|
|
||||||
// Result
|
// Result
|
||||||
{"jsonrpc":"2.0","result":[{"gossip":"10.239.6.48:8001","pubkey":"9QzsJf7LPLj8GkXbYT3LFDKqsj2hHG7TA3xinJHu8epQ","rpc":"10.239.6.48:8899","tpu":"10.239.6.48:8856"}],"id":1}
|
{"jsonrpc":"2.0","result":[{"gossip":"10.239.6.48:8001","pubkey":"9QzsJf7LPLj8GkXbYT3LFDKqsj2hHG7TA3xinJHu8epQ","rpc":"10.239.6.48:8899","tpu":"10.239.6.48:8856"},"version":"1.0.0 c375ce1f"],"id":1}
|
||||||
```
|
```
|
||||||
|
|
||||||
### getConfirmedBlock
|
### getConfirmedBlock
|
||||||
|
|
Loading…
Reference in New Issue