Skip to content
This repository was archived by the owner on Nov 15, 2023. It is now read-only.

Commit

Permalink
Print an error if a collator connects to a node without real-overseer (
Browse files Browse the repository at this point in the history
…#2563)

* Print an error if a collator connects to a node without real-overseer

* Update node/service/src/lib.rs

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
  • Loading branch information
tomaka and bkchr authored Mar 5, 2021
1 parent 2191393 commit 193b2ff
Showing 1 changed file with 36 additions and 0 deletions.
36 changes: 36 additions & 0 deletions node/service/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -613,6 +613,20 @@ pub fn new_full<RuntimeApi, Executor>(
#[cfg(feature = "real-overseer")]
config.network.extra_sets.extend(polkadot_network_bridge::peer_sets_info());

// Add a dummy collation set with the intent of printing an error if one tries to connect a
// collator to a node that isn't compiled with `--features real-overseer`.
#[cfg(not(feature = "real-overseer"))]
config.network.extra_sets.push(sc_network::config::NonDefaultSetConfig {
notifications_protocol: "/polkadot/collation/1".into(),
max_notification_size: 16,
set_config: sc_network::config::SetConfig {
in_peers: 25,
out_peers: 0,
reserved_nodes: Vec::new(),
non_reserved_mode: sc_network::config::NonReservedPeerMode::Accept,
},
});

// TODO: At the moment, the collator protocol uses notifications protocols to download
// collations. Because of DoS-protection measures, notifications protocols have a very limited
// bandwidth capacity, resulting in the collation download taking a long time.
Expand Down Expand Up @@ -652,6 +666,28 @@ pub fn new_full<RuntimeApi, Executor>(
block_announce_validator_builder: None,
})?;

// See above. We have added a dummy collation set with the intent of printing an error if one
// tries to connect a collator to a node that isn't compiled with `--features real-overseer`.
#[cfg(not(feature = "real-overseer"))]
task_manager.spawn_handle().spawn("dummy-collation-handler", {
let mut network_events = network.event_stream("dummy-collation-handler");
async move {
use futures::prelude::*;
while let Some(ev) = network_events.next().await {
if let sc_network::Event::NotificationStreamOpened { protocol, .. } = ev {
if protocol == "/polkadot/collation/1" {
tracing::warn!(
"Incoming collator on a node with parachains disabled. This warning \
is harmless and is here to warn developers that they might have
accidentally compiled their node without the `real-overseer` feature
enabled."
);
}
}
}
}
});

if config.offchain_worker.enabled {
let _ = service::build_offchain_workers(
&config, backend.clone(), task_manager.spawn_handle(), client.clone(), network.clone(),
Expand Down

0 comments on commit 193b2ff

Please sign in to comment.