Diff
Efficient event synchronization using NIP-77 Negentropy protocol.
Core Classes
Difference
Handles negentropy synchronization with a single relay for a single filter.
Events:
DifferenceEvent.Message
- Emitted with{have, need}
arrays and relay URLDifferenceEvent.Error
- Emitted when sync failsDifferenceEvent.Close
- Emitted when sync completes
Methods:
close()
- Stop synchronization and cleanup
Functions
diff(options)
Check what events each relay has or needs compared to local events.
Returns: Array of {relay, have, need}
objects - have
are events the relay has that you don't, need
are events you have that the relay doesn't.
pull(options)
Fetch missing events after comparing with relays.
Returns: Array of retrieved events.
push(options)
Publish local events that relays are missing.
Example
typescript
// Check what events each relay has/needs
const results = await diff({
relays: ['wss://relay1.com', 'wss://relay2.com'],
filters: [{kinds: [1], authors: ['pubkey...']}],
events: localEvents
})
// Pull events that relays have but we don't
const newEvents = await pull({
relays: ['wss://relay1.com'],
filters: [{kinds: [1]}],
events: localEvents
})