Skip to content

Commit d357a3f

Browse files
committed
ffi
1 parent c718386 commit d357a3f

3 files changed

Lines changed: 13 additions & 4 deletions

File tree

dash-spv-ffi/src/callbacks.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -406,7 +406,7 @@ impl FFISyncEventCallbacks {
406406
}
407407
}
408408
SyncEvent::SyncComplete {
409-
header_tip,
409+
header_tip, ..
410410
} => {
411411
if let Some(cb) = self.on_sync_complete {
412412
cb(*header_tip, self.user_data);

dash-spv/src/sync/events.rs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,11 +144,17 @@ pub enum SyncEvent {
144144

145145
/// Sync has reached the chain tip (all managers idle).
146146
///
147+
/// Emitted on every not-synced to synced transition. Cycle 0 is the
148+
/// initial sync; subsequent cycles are incremental syncs triggered by
149+
/// new blocks arriving from the network.
150+
///
147151
/// Emitted by: Coordinator
148152
/// Consumed by: External listeners
149153
SyncComplete {
150154
/// Final header tip height
151155
header_tip: u32,
156+
/// Sync cycle (0 = initial, 1+ = incremental)
157+
cycle: u32,
152158
},
153159
}
154160

@@ -235,8 +241,9 @@ impl SyncEvent {
235241
}
236242
SyncEvent::SyncComplete {
237243
header_tip,
244+
cycle,
238245
} => {
239-
format!("SyncComplete(tip={})", header_tip)
246+
format!("SyncComplete(tip={}, cycle={})", header_tip, cycle)
240247
}
241248
}
242249
}

dash-spv/src/sync/sync_coordinator.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,7 @@ async fn run_progress_task(
337337
let mut merged = select_all(streams);
338338
let mut progress = SyncProgress::default();
339339
let mut was_synced = false;
340+
let mut sync_cycle: u32 = 0;
340341

341342
loop {
342343
tokio::select! {
@@ -349,10 +350,11 @@ async fn run_progress_task(
349350
let is_synced = progress.is_synced();
350351
if is_synced && !was_synced {
351352
let duration = sync_start_time.elapsed();
352-
tracing::info!("Sync complete in {:.2}s", duration.as_secs_f64());
353+
tracing::info!("Sync complete in {:.2}s (cycle {})", duration.as_secs_f64(), sync_cycle);
353354

354355
let header_tip = progress.headers().ok().map(|h| h.current_height()).unwrap_or(0);
355-
let _ = sync_event_sender.send(SyncEvent::SyncComplete { header_tip });
356+
let _ = sync_event_sender.send(SyncEvent::SyncComplete { header_tip, cycle: sync_cycle });
357+
sync_cycle += 1;
356358
}
357359
was_synced = is_synced;
358360
}

0 commit comments

Comments
 (0)