diff --git a/libp2p/peer/peerstore.py b/libp2p/peer/peerstore.py index 454b0d1b..1f5ea36a 100644 --- a/libp2p/peer/peerstore.py +++ b/libp2p/peer/peerstore.py @@ -253,20 +253,11 @@ class PeerStore(IPeerStore): if existing and existing.seq > record.seq: return False # reject older record - # Merge new addresses with existing ones if peer exists - if peer_id in self.peer_data_map: - try: - existing_addrs = set(self.addrs(peer_id)) - except PeerStoreError: - existing_addrs = set() - else: - existing_addrs = set() - new_addrs = set(record.addrs) - merged_addrs = list(existing_addrs.union(new_addrs)) self.peer_record_map[peer_id] = PeerRecordState(envelope, record.seq) - self.add_addrs(peer_id, merged_addrs, ttl) + self.peer_data_map[peer_id].clear_addrs() + self.add_addrs(peer_id, list(new_addrs), ttl) return True diff --git a/tests/core/peer/test_addrbook.py b/tests/core/peer/test_addrbook.py index 5cb857c2..ea736654 100644 --- a/tests/core/peer/test_addrbook.py +++ b/tests/core/peer/test_addrbook.py @@ -134,6 +134,6 @@ def test_ceritified_addr_book(): assert latest.record().seq == 23 # Merged addresses = old addres + new_addrs - expected_addrs = set(addrs).union(set(new_addrs)) + expected_addrs = set(new_addrs) actual_addrs = set(store.addrs(peer_id)) assert actual_addrs == expected_addrs