Skip to content

Commit bb58d72

Browse files
authored
Merge pull request #93 from buffrr/cbf-progress
Use cbf status from compact node
2 parents a2b08e0 + d80c58a commit bb58d72

File tree

2 files changed

+7
-19
lines changed

2 files changed

+7
-19
lines changed

client/src/cbf.rs

+5-19
Original file line numberDiff line numberDiff line change
@@ -127,37 +127,23 @@ impl CompactFilterSync {
127127
return Ok(());
128128
}
129129
}
130-
// if wallet already past filter headers, we're done
131-
if let Some(filter_headers) = info.filter_headers {
132-
if self.initial_tip.height >= filter_headers {
133-
info!("wallet({}): tip {} >= filters {}, cbf done", wallet.name(), self.initial_tip.height, filter_headers);
134-
self.state = SyncState::Synced;
135-
return Ok(());
136-
}
137-
}
138130
if info.headers != info.blocks {
139131
info!("Source still syncing, retrying...");
140132
*progress = WalletProgressUpdate::new(WalletStatus::Syncing, None);
141133
self.wait = Some(Instant::now());
142134
return Ok(());
143135
}
144-
if info.filters != info.filter_headers {
136+
let filters_synced = info.filters_progress.unwrap_or(0.0) == 1.0;
137+
if !filters_synced {
145138
if !self.filters_queued {
146139
source.queue_filters()?;
147140
self.filters_queued = true;
148141
}
149142

150143
info!("Filters syncing, retrying...");
151-
*progress = WalletProgressUpdate::new(WalletStatus::CbfFilterSync, Some(
152-
calc_progress(
153-
info.checkpoint.map(|c| c.height).unwrap_or(0),
154-
info.filters.unwrap_or(0),
155-
std::cmp::max(
156-
info.prune_height.unwrap_or(0),
157-
info.filter_headers.unwrap_or(0)
158-
),
159-
)
160-
));
144+
*progress = WalletProgressUpdate::new(WalletStatus::CbfFilterSync,
145+
Some(info.filters_progress.unwrap_or(0.0))
146+
);
161147
self.wait = Some(Instant::now());
162148
return Ok(());
163149
}

client/src/client.rs

+2
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ pub struct BlockchainInfo {
6666
pub block_queue: Option<BlockQueueResult>,
6767
#[serde(skip_serializing_if = "Option::is_none")]
6868
pub checkpoint: Option<ChainAnchor>,
69+
#[serde(rename = "filtersprogress", skip_serializing_if = "Option::is_none")]
70+
pub filters_progress: Option<f32>,
6971
}
7072

7173

0 commit comments

Comments
 (0)