Infrastructure improvements (#2897)

* Factor out runtime module into utils.

* Add maybe_authority information to `PeerConnected` event.

We already gather this information in authority discovery, so we might
as well share it with others.

This opens up an easy path to trigger validators differently from normal
nodes, e.g. for prioritization. This change has become more important
now, that we just connect to all validators and therefore just have a
long peer list without any information about those nodes.

* Test fix.
This commit is contained in:
Robert Klotzner authored and GitHub committed 2021-04-16 21:42:20 +02:00
1 parent 23db3479a0
commit dacde443f7
19 files changed
+175 -76

No files matched your search

@@ -1437,7 +1437,7 @@ async fn handle_network_update(
metrics: &Metrics,
) {
match update {
NetworkBridgeEvent::PeerConnected(peer, role) => {
NetworkBridgeEvent::PeerConnected(peer, role, _) => {
tracing::trace!(
target: LOG_TARGET,
?peer,
@@ -2667,13 +2667,13 @@ mod tests {
// notify of peers and view
handle.send(FromOverseer::Communication {
msg: StatementDistributionMessage::NetworkBridgeUpdateV1(
NetworkBridgeEvent::PeerConnected(peer_a.clone(), ObservedRole::Full)
NetworkBridgeEvent::PeerConnected(peer_a.clone(), ObservedRole::Full, None)
)
}).await;
handle.send(FromOverseer::Communication {
msg: StatementDistributionMessage::NetworkBridgeUpdateV1(
NetworkBridgeEvent::PeerConnected(peer_b.clone(), ObservedRole::Full)
NetworkBridgeEvent::PeerConnected(peer_b.clone(), ObservedRole::Full, None)
)
}).await;
@@ -2835,23 +2835,23 @@ mod tests {
// notify of peers and view
handle.send(FromOverseer::Communication {
msg: StatementDistributionMessage::NetworkBridgeUpdateV1(
NetworkBridgeEvent::PeerConnected(peer_a.clone(), ObservedRole::Full)
NetworkBridgeEvent::PeerConnected(peer_a.clone(), ObservedRole::Full, None)
)
}).await;
handle.send(FromOverseer::Communication {
msg: StatementDistributionMessage::NetworkBridgeUpdateV1(
NetworkBridgeEvent::PeerConnected(peer_b.clone(), ObservedRole::Full)
NetworkBridgeEvent::PeerConnected(peer_b.clone(), ObservedRole::Full, None)
)
}).await;
handle.send(FromOverseer::Communication {
msg: StatementDistributionMessage::NetworkBridgeUpdateV1(
NetworkBridgeEvent::PeerConnected(peer_c.clone(), ObservedRole::Full)
NetworkBridgeEvent::PeerConnected(peer_c.clone(), ObservedRole::Full, None)
)
}).await;
handle.send(FromOverseer::Communication {
msg: StatementDistributionMessage::NetworkBridgeUpdateV1(
NetworkBridgeEvent::PeerConnected(peer_bad.clone(), ObservedRole::Full)
NetworkBridgeEvent::PeerConnected(peer_bad.clone(), ObservedRole::Full, None)
)
}).await;