Recognize the Caplin consensus client (#5304)
* Caplin has joined the party * Fix typo
This commit is contained in:
parent
a89ff100af
commit
64e563f5e9
@ -33,6 +33,8 @@ pub enum ClientKind {
|
|||||||
Prysm,
|
Prysm,
|
||||||
/// A lodestar node.
|
/// A lodestar node.
|
||||||
Lodestar,
|
Lodestar,
|
||||||
|
/// A Caplin node.
|
||||||
|
Caplin,
|
||||||
/// An unknown client.
|
/// An unknown client.
|
||||||
Unknown,
|
Unknown,
|
||||||
}
|
}
|
||||||
@ -88,6 +90,7 @@ impl std::fmt::Display for Client {
|
|||||||
self.version, self.os_version
|
self.version, self.os_version
|
||||||
),
|
),
|
||||||
ClientKind::Lodestar => write!(f, "Lodestar: version: {}", self.version),
|
ClientKind::Lodestar => write!(f, "Lodestar: version: {}", self.version),
|
||||||
|
ClientKind::Caplin => write!(f, "Caplin"),
|
||||||
ClientKind::Unknown => {
|
ClientKind::Unknown => {
|
||||||
if let Some(agent_string) = &self.agent_string {
|
if let Some(agent_string) = &self.agent_string {
|
||||||
write!(f, "Unknown: {}", agent_string)
|
write!(f, "Unknown: {}", agent_string)
|
||||||
@ -109,11 +112,11 @@ impl std::fmt::Display for ClientKind {
|
|||||||
// kind and it's associated version and the OS kind.
|
// kind and it's associated version and the OS kind.
|
||||||
fn client_from_agent_version(agent_version: &str) -> (ClientKind, String, String) {
|
fn client_from_agent_version(agent_version: &str) -> (ClientKind, String, String) {
|
||||||
let mut agent_split = agent_version.split('/');
|
let mut agent_split = agent_version.split('/');
|
||||||
|
let mut version = String::from("unknown");
|
||||||
|
let mut os_version = String::from("unknown");
|
||||||
match agent_split.next() {
|
match agent_split.next() {
|
||||||
Some("Lighthouse") => {
|
Some("Lighthouse") => {
|
||||||
let kind = ClientKind::Lighthouse;
|
let kind = ClientKind::Lighthouse;
|
||||||
let mut version = String::from("unknown");
|
|
||||||
let mut os_version = version.clone();
|
|
||||||
if let Some(agent_version) = agent_split.next() {
|
if let Some(agent_version) = agent_split.next() {
|
||||||
version = agent_version.into();
|
version = agent_version.into();
|
||||||
if let Some(agent_os_version) = agent_split.next() {
|
if let Some(agent_os_version) = agent_split.next() {
|
||||||
@ -124,8 +127,6 @@ fn client_from_agent_version(agent_version: &str) -> (ClientKind, String, String
|
|||||||
}
|
}
|
||||||
Some("teku") => {
|
Some("teku") => {
|
||||||
let kind = ClientKind::Teku;
|
let kind = ClientKind::Teku;
|
||||||
let mut version = String::from("unknown");
|
|
||||||
let mut os_version = version.clone();
|
|
||||||
if agent_split.next().is_some() {
|
if agent_split.next().is_some() {
|
||||||
if let Some(agent_version) = agent_split.next() {
|
if let Some(agent_version) = agent_split.next() {
|
||||||
version = agent_version.into();
|
version = agent_version.into();
|
||||||
@ -138,13 +139,10 @@ fn client_from_agent_version(agent_version: &str) -> (ClientKind, String, String
|
|||||||
}
|
}
|
||||||
Some("github.com") => {
|
Some("github.com") => {
|
||||||
let kind = ClientKind::Prysm;
|
let kind = ClientKind::Prysm;
|
||||||
let unknown = String::from("unknown");
|
(kind, version, os_version)
|
||||||
(kind, unknown.clone(), unknown)
|
|
||||||
}
|
}
|
||||||
Some("Prysm") => {
|
Some("Prysm") => {
|
||||||
let kind = ClientKind::Prysm;
|
let kind = ClientKind::Prysm;
|
||||||
let mut version = String::from("unknown");
|
|
||||||
let mut os_version = version.clone();
|
|
||||||
if agent_split.next().is_some() {
|
if agent_split.next().is_some() {
|
||||||
if let Some(agent_version) = agent_split.next() {
|
if let Some(agent_version) = agent_split.next() {
|
||||||
version = agent_version.into();
|
version = agent_version.into();
|
||||||
@ -157,8 +155,6 @@ fn client_from_agent_version(agent_version: &str) -> (ClientKind, String, String
|
|||||||
}
|
}
|
||||||
Some("nimbus") => {
|
Some("nimbus") => {
|
||||||
let kind = ClientKind::Nimbus;
|
let kind = ClientKind::Nimbus;
|
||||||
let mut version = String::from("unknown");
|
|
||||||
let mut os_version = version.clone();
|
|
||||||
if agent_split.next().is_some() {
|
if agent_split.next().is_some() {
|
||||||
if let Some(agent_version) = agent_split.next() {
|
if let Some(agent_version) = agent_split.next() {
|
||||||
version = agent_version.into();
|
version = agent_version.into();
|
||||||
@ -171,8 +167,6 @@ fn client_from_agent_version(agent_version: &str) -> (ClientKind, String, String
|
|||||||
}
|
}
|
||||||
Some("nim-libp2p") => {
|
Some("nim-libp2p") => {
|
||||||
let kind = ClientKind::Nimbus;
|
let kind = ClientKind::Nimbus;
|
||||||
let mut version = String::from("unknown");
|
|
||||||
let mut os_version = version.clone();
|
|
||||||
if let Some(agent_version) = agent_split.next() {
|
if let Some(agent_version) = agent_split.next() {
|
||||||
version = agent_version.into();
|
version = agent_version.into();
|
||||||
if let Some(agent_os_version) = agent_split.next() {
|
if let Some(agent_os_version) = agent_split.next() {
|
||||||
@ -183,8 +177,6 @@ fn client_from_agent_version(agent_version: &str) -> (ClientKind, String, String
|
|||||||
}
|
}
|
||||||
Some("js-libp2p") | Some("lodestar") => {
|
Some("js-libp2p") | Some("lodestar") => {
|
||||||
let kind = ClientKind::Lodestar;
|
let kind = ClientKind::Lodestar;
|
||||||
let mut version = String::from("unknown");
|
|
||||||
let mut os_version = version.clone();
|
|
||||||
if let Some(agent_version) = agent_split.next() {
|
if let Some(agent_version) = agent_split.next() {
|
||||||
version = agent_version.into();
|
version = agent_version.into();
|
||||||
if let Some(agent_os_version) = agent_split.next() {
|
if let Some(agent_os_version) = agent_split.next() {
|
||||||
@ -193,6 +185,14 @@ fn client_from_agent_version(agent_version: &str) -> (ClientKind, String, String
|
|||||||
}
|
}
|
||||||
(kind, version, os_version)
|
(kind, version, os_version)
|
||||||
}
|
}
|
||||||
|
Some("erigon") => {
|
||||||
|
let client_kind = if let Some("caplin") = agent_split.next() {
|
||||||
|
ClientKind::Caplin
|
||||||
|
} else {
|
||||||
|
ClientKind::Unknown
|
||||||
|
};
|
||||||
|
(client_kind, version, os_version)
|
||||||
|
}
|
||||||
_ => {
|
_ => {
|
||||||
let unknown = String::from("unknown");
|
let unknown = String::from("unknown");
|
||||||
(ClientKind::Unknown, unknown.clone(), unknown)
|
(ClientKind::Unknown, unknown.clone(), unknown)
|
||||||
|
Loading…
Reference in New Issue
Block a user