Quick subscribe (#232)

* feat: Send chain head ahead of node list

* feat: Partition node list into batches of 32
This commit is contained in:
Maciej Hirsz
2020-02-20 14:38:58 +01:00
committed by GitHub
parent ff29540d56
commit 38ccc02eaa
+9 -1
View File
@@ -392,7 +392,15 @@ impl Handler<Subscribe> for Chain {
));
self.serializer.push(feed::BestFinalized(self.finalized.height, self.finalized.hash));
for (nid, node) in self.nodes.iter() {
for (idx, (nid, node)) in self.nodes.iter().enumerate() {
// Send subscribtion confirmation and chain head before doing all the nodes,
// and continue sending batches of 32 nodes a time over the wire subsequently
if idx % 32 == 0 {
if let Some(serialized) = self.serializer.finalize() {
feed.do_send(serialized);
}
}
self.serializer.push(feed::AddedNode(nid, node));
self.serializer.push(feed::FinalizedBlock(nid, node.finalized().height, node.finalized().hash));
if node.stale() {