Skip to content

Commit bab9bc7

Browse files
Juhyung Parkmergify[bot]
authored andcommitted
Import headers when importing blocks
This will call `new_headers` in `chain_notify`
1 parent d6c7d44 commit bab9bc7

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

core/src/client/client.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -786,13 +786,15 @@ impl ImportSealedBlock for Client {
786786
let start = Instant::now();
787787
let route = {
788788
// scope for self.import_lock
789-
let _import_lock = self.importer.import_lock.lock();
789+
let import_lock = self.importer.import_lock.lock();
790790

791791
let number = block.header().number();
792792
let block_data = block.rlp_bytes();
793-
let header = block.header().clone();
793+
let header = block.header();
794+
795+
self.importer.import_headers(vec![header], self, &import_lock);
794796

795-
let route = self.importer.commit_block(block, &header, &block_data, self);
797+
let route = self.importer.commit_block(block, header, &block_data, self);
796798
cinfo!(CLIENT, "Imported sealed block #{} ({})", number, h);
797799
route
798800
};

core/src/client/importer.rs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,11 +96,17 @@ impl Importer {
9696
let mut invalid_blocks = HashSet::new();
9797
let mut import_results = Vec::with_capacity(max_blocks_to_import);
9898

99-
let _import_lock = self.import_lock.lock();
99+
let import_lock = self.import_lock.lock();
100100
let blocks = self.block_queue.drain(max_blocks_to_import);
101101
if blocks.is_empty() {
102102
return 0
103103
}
104+
105+
{
106+
let headers: Vec<&Header> = blocks.iter().map(|block| &block.header).collect();
107+
self.import_headers(headers, client, &import_lock);
108+
}
109+
104110
let start = Instant::now();
105111

106112
for block in blocks {
@@ -370,7 +376,7 @@ impl Importer {
370376
self.import_headers(&headers, client, &lock)
371377
}
372378

373-
fn import_headers<'a>(
379+
pub fn import_headers<'a>(
374380
&'a self,
375381
headers: impl IntoIterator<Item = &'a Header>,
376382
client: &Client,

0 commit comments

Comments
 (0)