Remove disconnected peers

This commit is contained in:
Julien Malard-Adam 2025-02-21 09:40:56 +01:00 committed by GitHub
parent 3d41ab5d99
commit 8ff138de46
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -231,6 +231,10 @@ const Sync = async ({ ipfs, log, events, onSynced, start, timeout }) => {
}
}
const handlePeerDisconnected = async event => {
peers.delete(event.detail.toString())
}
/**
* Add a log entry to the Sync Protocol to be sent to peers.
* @function add
@ -258,6 +262,7 @@ const Sync = async ({ ipfs, log, events, onSynced, start, timeout }) => {
pubsub.removeEventListener('message', handleUpdateMessage)
await libp2p.unhandle(headsSyncAddress)
await pubsub.unsubscribe(address)
libp2p.removeEventListener('peer:disconnect', handlePeerDisconnected);
peers.clear()
}
}
@ -276,6 +281,8 @@ const Sync = async ({ ipfs, log, events, onSynced, start, timeout }) => {
pubsub.addEventListener('message', handleUpdateMessage)
// Subscribe to the pubsub channel for this database through which updates are sent
await pubsub.subscribe(address)
// Remove disconnected peers from `peers`, as otherwise they will not resync heads on reconnection
libp2p.addEventListener('peer:disconnect', handlePeerDisconnected);
started = true
}
}