//! Anti-entropy synchronization worker.
//!
//! Periodically compares Merkle roots with peers and fetches missing assertions.
//! This provides eventual consistency even when gossip messages are lost.
//!
//! # Algorithm
//!
//! 1. Exchange Merkle roots with peer (O(1) comparison)
//! 2. If roots match → trees are identical, done
//! 3. If roots differ → compute diff to find missing hashes
//! 4. Fetch missing assertions by hash
//! 5. Merge via CrdtAssertionStore
//! 6. Update local Merkle tree

mod sync_ops;
mod types;
mod worker;

pub use types::SyncResult;
pub use worker::AntiEntropyWorker;
