refactor View to include finalized_number (#2128)

* refactor View to include finalized_number

* guide: update the NetworkBridge on BlockFinalized

* av-store: fix the tests

* actually fix tests

* grumbles

* ignore macro doctest

* use Hash::repeat_bytes more consistently

* broadcast empty leaves updates as well

* fix issuing view updates on empty leaves updates
This commit is contained in:
Andronik Ordian
2020-12-17 18:50:58 +01:00
committed by GitHub
parent 1aa2554000
commit 3f5156e866
24 changed files with 249 additions and 196 deletions
@@ -714,7 +714,7 @@ pub(crate) async fn run(
}
},
Signal(ActiveLeaves(_update)) => {}
Signal(BlockFinalized(_)) => {}
Signal(BlockFinalized(..)) => {}
Signal(Conclude) => return Ok(()),
}
}
@@ -742,6 +742,7 @@ mod tests {
use polkadot_subsystem::{ActiveLeavesUpdate, messages::{RuntimeApiMessage, RuntimeApiRequest}};
use polkadot_node_subsystem_util::TimeoutExt;
use polkadot_subsystem_testhelpers as test_helpers;
use polkadot_node_network_protocol::view;
#[derive(Default)]
struct TestCandidateBuilder {
@@ -896,7 +897,7 @@ mod tests {
overseer_send(
virtual_overseer,
CollatorProtocolMessage::NetworkBridgeUpdateV1(
NetworkBridgeEvent::OurViewChange(View(hashes)),
NetworkBridgeEvent::OurViewChange(View { heads: hashes, finalized_number: 0 }),
),
).await;
}
@@ -1004,7 +1005,7 @@ mod tests {
overseer_send(
virtual_overseer,
CollatorProtocolMessage::NetworkBridgeUpdateV1(
NetworkBridgeEvent::OurViewChange(View(vec![test_state.relay_parent])),
NetworkBridgeEvent::OurViewChange(view![test_state.relay_parent]),
),
).await;
}
@@ -1144,7 +1145,7 @@ mod tests {
overseer_send(
virtual_overseer,
CollatorProtocolMessage::NetworkBridgeUpdateV1(
NetworkBridgeEvent::PeerViewChange(peer, View(Default::default())),
NetworkBridgeEvent::PeerViewChange(peer, view![]),
),
).await;
}
@@ -1213,7 +1214,7 @@ mod tests {
overseer_send(
virtual_overseer,
CollatorProtocolMessage::NetworkBridgeUpdateV1(
NetworkBridgeEvent::PeerViewChange(peer.clone(), View(hashes)),
NetworkBridgeEvent::PeerViewChange(peer.clone(), View { heads: hashes, finalized_number: 0 }),
),
).await;
}
@@ -1323,7 +1324,7 @@ mod tests {
CollatorProtocolMessage::NetworkBridgeUpdateV1(
NetworkBridgeEvent::PeerViewChange(
peer.clone(),
View(vec![test_state.relay_parent]),
view![test_state.relay_parent],
)
)
).await;
@@ -714,7 +714,7 @@ where
match msg {
Communication { msg } => process_msg(&mut ctx, msg, &mut state).await,
Signal(BlockFinalized(_)) => {}
Signal(BlockFinalized(..)) => {}
Signal(ActiveLeaves(_)) => {}
Signal(Conclude) => { break }
}
@@ -760,6 +760,7 @@ mod tests {
use polkadot_primitives::v1::{BlockData, CollatorPair};
use polkadot_subsystem_testhelpers as test_helpers;
use polkadot_node_network_protocol::view;
#[derive(Clone)]
struct TestState {
@@ -872,7 +873,7 @@ mod tests {
overseer_send(
&mut virtual_overseer,
CollatorProtocolMessage::NetworkBridgeUpdateV1(
NetworkBridgeEvent::OurViewChange(View(vec![test_state.relay_parent]))
NetworkBridgeEvent::OurViewChange(view![test_state.relay_parent])
)
).await;
@@ -930,7 +931,7 @@ mod tests {
overseer_send(
&mut virtual_overseer,
CollatorProtocolMessage::NetworkBridgeUpdateV1(
NetworkBridgeEvent::OurViewChange(View(vec![test_state.relay_parent]))
NetworkBridgeEvent::OurViewChange(view![test_state.relay_parent])
)
).await;
@@ -1021,7 +1022,7 @@ mod tests {
overseer_send(
&mut virtual_overseer,
CollatorProtocolMessage::NetworkBridgeUpdateV1(
NetworkBridgeEvent::OurViewChange(View(vec![Hash::repeat_byte(0x42)]))
NetworkBridgeEvent::OurViewChange(view![Hash::repeat_byte(0x42)])
)
).await;
@@ -1049,7 +1050,7 @@ mod tests {
overseer_send(
&mut virtual_overseer,
CollatorProtocolMessage::NetworkBridgeUpdateV1(
NetworkBridgeEvent::OurViewChange(View(vec![test_state.relay_parent]))
NetworkBridgeEvent::OurViewChange(view![test_state.relay_parent])
)
).await;
@@ -1133,7 +1134,7 @@ mod tests {
overseer_send(
&mut virtual_overseer,
CollatorProtocolMessage::NetworkBridgeUpdateV1(
NetworkBridgeEvent::OurViewChange(View(vec![test_state.relay_parent]))
NetworkBridgeEvent::OurViewChange(view![test_state.relay_parent])
)
).await;