mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-26 21:37:56 +00:00
client/authority-discovery: Allow to be run by sentry node (#5568)
* client/authority-discovery: Allow to be run by sentry node When run as a sentry node, the authority discovery module does not publish any addresses to the dht, but still discovers validators and sentry nodes of validators. * client/authority-discovery/src/lib: Wrap lines at 100 characters * client/authority-discovery: Remove TODO and unused import * client/authority-discovery: Pass role to new unit tests * client/authority-discovery: Apply suggestions Co-Authored-By: André Silva <123550+andresilva@users.noreply.github.com> * bin/node/cli/src/service: Use expressions instead of statements Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
This commit is contained in:
@@ -146,7 +146,7 @@ macro_rules! new_full {
|
||||
|
||||
($with_startup_data)(&block_import, &babe_link);
|
||||
|
||||
if let sc_service::config::Role::Authority { sentry_nodes } = &role {
|
||||
if let sc_service::config::Role::Authority { .. } = &role {
|
||||
let proposer = sc_basic_authorship::ProposerFactory::new(
|
||||
service.client(),
|
||||
service.transaction_pool()
|
||||
@@ -174,6 +174,23 @@ macro_rules! new_full {
|
||||
|
||||
let babe = sc_consensus_babe::start_babe(babe_config)?;
|
||||
service.spawn_essential_task("babe-proposer", babe);
|
||||
}
|
||||
|
||||
// Spawn authority discovery module.
|
||||
if matches!(role, sc_service::config::Role::Authority{..} | sc_service::config::Role::Sentry {..}) {
|
||||
let (sentries, authority_discovery_role) = match role {
|
||||
sc_service::config::Role::Authority { ref sentry_nodes } => (
|
||||
sentry_nodes.clone(),
|
||||
sc_authority_discovery::Role::Authority (
|
||||
service.keystore(),
|
||||
),
|
||||
),
|
||||
sc_service::config::Role::Sentry {..} => (
|
||||
vec![],
|
||||
sc_authority_discovery::Role::Sentry,
|
||||
),
|
||||
_ => unreachable!("Due to outer matches! constraint; qed.")
|
||||
};
|
||||
|
||||
let network = service.network();
|
||||
let dht_event_stream = network.event_stream("authority-discovery").filter_map(|e| async move { match e {
|
||||
@@ -183,9 +200,9 @@ macro_rules! new_full {
|
||||
let authority_discovery = sc_authority_discovery::AuthorityDiscovery::new(
|
||||
service.client(),
|
||||
network,
|
||||
sentry_nodes.clone(),
|
||||
service.keystore(),
|
||||
sentries,
|
||||
dht_event_stream,
|
||||
authority_discovery_role,
|
||||
service.prometheus_registry(),
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user