mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-15 13:51:11 +00:00
Collator protocol should choose side (#1872)
* Collator protocol should choose side * Update node/service/src/lib.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
This commit is contained in:
@@ -295,6 +295,7 @@ fn real_overseer<Spawner, RuntimeClient>(
|
|||||||
authority_discovery: AuthorityDiscoveryService,
|
authority_discovery: AuthorityDiscoveryService,
|
||||||
registry: Option<&Registry>,
|
registry: Option<&Registry>,
|
||||||
spawner: Spawner,
|
spawner: Spawner,
|
||||||
|
is_collator: IsCollator,
|
||||||
) -> Result<(Overseer<Spawner>, OverseerHandler), Error>
|
) -> Result<(Overseer<Spawner>, OverseerHandler), Error>
|
||||||
where
|
where
|
||||||
RuntimeClient: 'static + ProvideRuntimeApi<Block> + HeaderBackend<Block>,
|
RuntimeClient: 'static + ProvideRuntimeApi<Block> + HeaderBackend<Block>,
|
||||||
@@ -357,9 +358,15 @@ where
|
|||||||
collation_generation: CollationGenerationSubsystem::new(
|
collation_generation: CollationGenerationSubsystem::new(
|
||||||
Metrics::register(registry)?,
|
Metrics::register(registry)?,
|
||||||
),
|
),
|
||||||
collator_protocol: CollatorProtocolSubsystem::new(
|
collator_protocol: {
|
||||||
ProtocolSide::Validator(Metrics::register(registry)?),
|
let side = match is_collator {
|
||||||
),
|
IsCollator::Yes(id) => ProtocolSide::Collator(id, Metrics::register(registry)?),
|
||||||
|
IsCollator::No => ProtocolSide::Validator(Metrics::register(registry)?),
|
||||||
|
};
|
||||||
|
CollatorProtocolSubsystem::new(
|
||||||
|
side,
|
||||||
|
)
|
||||||
|
},
|
||||||
network_bridge: NetworkBridgeSubsystem::new(
|
network_bridge: NetworkBridgeSubsystem::new(
|
||||||
network_service,
|
network_service,
|
||||||
authority_discovery,
|
authority_discovery,
|
||||||
@@ -418,10 +425,10 @@ impl<C> NewFull<C> {
|
|||||||
|
|
||||||
/// Is this node a collator?
|
/// Is this node a collator?
|
||||||
#[cfg(feature = "full-node")]
|
#[cfg(feature = "full-node")]
|
||||||
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
|
#[derive(Debug, PartialEq, Eq, Clone)]
|
||||||
pub enum IsCollator {
|
pub enum IsCollator {
|
||||||
/// This node is a collator.
|
/// This node is a collator.
|
||||||
Yes,
|
Yes(CollatorId),
|
||||||
/// This node is not a collator.
|
/// This node is not a collator.
|
||||||
No,
|
No,
|
||||||
}
|
}
|
||||||
@@ -430,7 +437,7 @@ pub enum IsCollator {
|
|||||||
impl IsCollator {
|
impl IsCollator {
|
||||||
/// Is this a collator?
|
/// Is this a collator?
|
||||||
fn is_collator(&self) -> bool {
|
fn is_collator(&self) -> bool {
|
||||||
*self == Self::Yes
|
matches!(self, Self::Yes(_))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -573,6 +580,7 @@ pub fn new_full<RuntimeApi, Executor>(
|
|||||||
authority_discovery_service,
|
authority_discovery_service,
|
||||||
prometheus_registry.as_ref(),
|
prometheus_registry.as_ref(),
|
||||||
spawner,
|
spawner,
|
||||||
|
is_collator,
|
||||||
)?;
|
)?;
|
||||||
let overseer_handler_clone = overseer_handler.clone();
|
let overseer_handler_clone = overseer_handler.clone();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user