From 1992262688c96647d98ba98ff1f3b04e9f4b26ab Mon Sep 17 00:00:00 2001 From: Daniel N <2color@users.noreply.github.com> Date: Mon, 25 Nov 2024 11:38:33 +0100 Subject: [PATCH 1/4] chore: make mem addr book public --- p2p/host/peerstore/pstoremem/addr_book.go | 54 +++++++++++------------ p2p/host/peerstore/pstoremem/peerstore.go | 8 ++-- 2 files changed, 31 insertions(+), 31 deletions(-) diff --git a/p2p/host/peerstore/pstoremem/addr_book.go b/p2p/host/peerstore/pstoremem/addr_book.go index b528eb6989..6c20fd9347 100644 --- a/p2p/host/peerstore/pstoremem/addr_book.go +++ b/p2p/host/peerstore/pstoremem/addr_book.go @@ -183,8 +183,8 @@ const ( defaultMaxUnconnectedAddrs = 1_000_000 ) -// memoryAddrBook manages addresses. -type memoryAddrBook struct { +// MemoryAddrBook manages addresses. +type MemoryAddrBook struct { mu sync.RWMutex addrs peerAddrs signedPeerRecords map[peer.ID]*peerRecordState @@ -198,13 +198,13 @@ type memoryAddrBook struct { clock clock } -var _ peerstore.AddrBook = (*memoryAddrBook)(nil) -var _ peerstore.CertifiedAddrBook = (*memoryAddrBook)(nil) +var _ peerstore.AddrBook = (*MemoryAddrBook)(nil) +var _ peerstore.CertifiedAddrBook = (*MemoryAddrBook)(nil) -func NewAddrBook() *memoryAddrBook { +func NewAddrBook() *MemoryAddrBook { ctx, cancel := context.WithCancel(context.Background()) - ab := &memoryAddrBook{ + ab := &MemoryAddrBook{ addrs: newPeerAddrs(), signedPeerRecords: make(map[peer.ID]*peerRecordState), subManager: NewAddrSubManager(), @@ -218,10 +218,10 @@ func NewAddrBook() *memoryAddrBook { return ab } -type AddrBookOption func(book *memoryAddrBook) error +type AddrBookOption func(book *MemoryAddrBook) error func WithClock(clock clock) AddrBookOption { - return func(book *memoryAddrBook) error { + return func(book *MemoryAddrBook) error { book.clock = clock return nil } @@ -231,21 +231,21 @@ func WithClock(clock clock) AddrBookOption { // The maximum number of connected addresses is bounded by the connection // limits in the Connection Manager and Resource Manager. func WithMaxAddresses(n int) AddrBookOption { - return func(b *memoryAddrBook) error { + return func(b *MemoryAddrBook) error { b.maxUnconnectedAddrs = n return nil } } func WithMaxSignedPeerRecords(n int) AddrBookOption { - return func(b *memoryAddrBook) error { + return func(b *MemoryAddrBook) error { b.maxSignedPeerRecords = n return nil } } // background periodically schedules a gc -func (mab *memoryAddrBook) background(ctx context.Context) { +func (mab *MemoryAddrBook) background(ctx context.Context) { defer mab.refCount.Done() ticker := time.NewTicker(1 * time.Minute) defer ticker.Stop() @@ -260,14 +260,14 @@ func (mab *memoryAddrBook) background(ctx context.Context) { } } -func (mab *memoryAddrBook) Close() error { +func (mab *MemoryAddrBook) Close() error { mab.cancel() mab.refCount.Wait() return nil } // gc garbage collects the in-memory address book. -func (mab *memoryAddrBook) gc() { +func (mab *MemoryAddrBook) gc() { now := mab.clock.Now() mab.mu.Lock() defer mab.mu.Unlock() @@ -281,7 +281,7 @@ func (mab *memoryAddrBook) gc() { } } -func (mab *memoryAddrBook) PeersWithAddrs() peer.IDSlice { +func (mab *MemoryAddrBook) PeersWithAddrs() peer.IDSlice { mab.mu.RLock() defer mab.mu.RUnlock() peers := make(peer.IDSlice, 0, len(mab.addrs.Addrs)) @@ -292,19 +292,19 @@ func (mab *memoryAddrBook) PeersWithAddrs() peer.IDSlice { } // AddAddr calls AddAddrs(p, []ma.Multiaddr{addr}, ttl) -func (mab *memoryAddrBook) AddAddr(p peer.ID, addr ma.Multiaddr, ttl time.Duration) { +func (mab *MemoryAddrBook) AddAddr(p peer.ID, addr ma.Multiaddr, ttl time.Duration) { mab.AddAddrs(p, []ma.Multiaddr{addr}, ttl) } // AddAddrs adds `addrs` for peer `p`, which will expire after the given `ttl`. // This function never reduces the TTL or expiration of an address. -func (mab *memoryAddrBook) AddAddrs(p peer.ID, addrs []ma.Multiaddr, ttl time.Duration) { +func (mab *MemoryAddrBook) AddAddrs(p peer.ID, addrs []ma.Multiaddr, ttl time.Duration) { mab.addAddrs(p, addrs, ttl) } // ConsumePeerRecord adds addresses from a signed peer.PeerRecord, which will expire after the given TTL. // See https://godoc.org/github.com/libp2p/go-libp2p/core/peerstore#CertifiedAddrBook for more details. -func (mab *memoryAddrBook) ConsumePeerRecord(recordEnvelope *record.Envelope, ttl time.Duration) (bool, error) { +func (mab *MemoryAddrBook) ConsumePeerRecord(recordEnvelope *record.Envelope, ttl time.Duration) (bool, error) { r, err := recordEnvelope.Record() if err != nil { return false, err @@ -337,20 +337,20 @@ func (mab *memoryAddrBook) ConsumePeerRecord(recordEnvelope *record.Envelope, tt return true, nil } -func (mab *memoryAddrBook) maybeDeleteSignedPeerRecordUnlocked(p peer.ID) { +func (mab *MemoryAddrBook) maybeDeleteSignedPeerRecordUnlocked(p peer.ID) { if len(mab.addrs.Addrs[p]) == 0 { delete(mab.signedPeerRecords, p) } } -func (mab *memoryAddrBook) addAddrs(p peer.ID, addrs []ma.Multiaddr, ttl time.Duration) { +func (mab *MemoryAddrBook) addAddrs(p peer.ID, addrs []ma.Multiaddr, ttl time.Duration) { mab.mu.Lock() defer mab.mu.Unlock() mab.addAddrsUnlocked(p, addrs, ttl) } -func (mab *memoryAddrBook) addAddrsUnlocked(p peer.ID, addrs []ma.Multiaddr, ttl time.Duration) { +func (mab *MemoryAddrBook) addAddrsUnlocked(p peer.ID, addrs []ma.Multiaddr, ttl time.Duration) { defer mab.maybeDeleteSignedPeerRecordUnlocked(p) // if ttl is zero, exit. nothing to do. @@ -401,13 +401,13 @@ func (mab *memoryAddrBook) addAddrsUnlocked(p peer.ID, addrs []ma.Multiaddr, ttl } // SetAddr calls mgr.SetAddrs(p, addr, ttl) -func (mab *memoryAddrBook) SetAddr(p peer.ID, addr ma.Multiaddr, ttl time.Duration) { +func (mab *MemoryAddrBook) SetAddr(p peer.ID, addr ma.Multiaddr, ttl time.Duration) { mab.SetAddrs(p, []ma.Multiaddr{addr}, ttl) } // SetAddrs sets the ttl on addresses. This clears any TTL there previously. // This is used when we receive the best estimate of the validity of an address. -func (mab *memoryAddrBook) SetAddrs(p peer.ID, addrs []ma.Multiaddr, ttl time.Duration) { +func (mab *MemoryAddrBook) SetAddrs(p peer.ID, addrs []ma.Multiaddr, ttl time.Duration) { mab.mu.Lock() defer mab.mu.Unlock() @@ -457,7 +457,7 @@ func (mab *memoryAddrBook) SetAddrs(p peer.ID, addrs []ma.Multiaddr, ttl time.Du // UpdateAddrs updates the addresses associated with the given peer that have // the given oldTTL to have the given newTTL. -func (mab *memoryAddrBook) UpdateAddrs(p peer.ID, oldTTL time.Duration, newTTL time.Duration) { +func (mab *MemoryAddrBook) UpdateAddrs(p peer.ID, oldTTL time.Duration, newTTL time.Duration) { mab.mu.Lock() defer mab.mu.Unlock() @@ -485,7 +485,7 @@ func (mab *memoryAddrBook) UpdateAddrs(p peer.ID, oldTTL time.Duration, newTTL t } // Addrs returns all known (and valid) addresses for a given peer -func (mab *memoryAddrBook) Addrs(p peer.ID) []ma.Multiaddr { +func (mab *MemoryAddrBook) Addrs(p peer.ID) []ma.Multiaddr { mab.mu.RLock() defer mab.mu.RUnlock() if _, ok := mab.addrs.Addrs[p]; !ok { @@ -510,7 +510,7 @@ func validAddrs(now time.Time, amap map[string]*expiringAddr) []ma.Multiaddr { // GetPeerRecord returns a Envelope containing a PeerRecord for the // given peer id, if one exists. // Returns nil if no signed PeerRecord exists for the peer. -func (mab *memoryAddrBook) GetPeerRecord(p peer.ID) *record.Envelope { +func (mab *MemoryAddrBook) GetPeerRecord(p peer.ID) *record.Envelope { mab.mu.RLock() defer mab.mu.RUnlock() @@ -530,7 +530,7 @@ func (mab *memoryAddrBook) GetPeerRecord(p peer.ID) *record.Envelope { } // ClearAddrs removes all previously stored addresses -func (mab *memoryAddrBook) ClearAddrs(p peer.ID) { +func (mab *MemoryAddrBook) ClearAddrs(p peer.ID) { mab.mu.Lock() defer mab.mu.Unlock() @@ -543,7 +543,7 @@ func (mab *memoryAddrBook) ClearAddrs(p peer.ID) { // AddrStream returns a channel on which all new addresses discovered for a // given peer ID will be published. -func (mab *memoryAddrBook) AddrStream(ctx context.Context, p peer.ID) <-chan ma.Multiaddr { +func (mab *MemoryAddrBook) AddrStream(ctx context.Context, p peer.ID) <-chan ma.Multiaddr { var initial []ma.Multiaddr mab.mu.RLock() diff --git a/p2p/host/peerstore/pstoremem/peerstore.go b/p2p/host/peerstore/pstoremem/peerstore.go index d5a41cc56a..90b512c09f 100644 --- a/p2p/host/peerstore/pstoremem/peerstore.go +++ b/p2p/host/peerstore/pstoremem/peerstore.go @@ -12,8 +12,8 @@ import ( type pstoremem struct { peerstore.Metrics + *MemoryAddrBook *memoryKeyBook - *memoryAddrBook *memoryProtoBook *memoryPeerMetadata } @@ -51,7 +51,7 @@ func NewPeerstore(opts ...Option) (ps *pstoremem, err error) { return &pstoremem{ Metrics: pstore.NewMetrics(), memoryKeyBook: NewKeyBook(), - memoryAddrBook: ab, + MemoryAddrBook: ab, memoryProtoBook: pb, memoryPeerMetadata: NewPeerMetadata(), }, nil @@ -67,7 +67,7 @@ func (ps *pstoremem) Close() (err error) { } } weakClose("keybook", ps.memoryKeyBook) - weakClose("addressbook", ps.memoryAddrBook) + weakClose("addressbook", ps.MemoryAddrBook) weakClose("protobook", ps.memoryProtoBook) weakClose("peermetadata", ps.memoryPeerMetadata) @@ -96,7 +96,7 @@ func (ps *pstoremem) Peers() peer.IDSlice { func (ps *pstoremem) PeerInfo(p peer.ID) peer.AddrInfo { return peer.AddrInfo{ ID: p, - Addrs: ps.memoryAddrBook.Addrs(p), + Addrs: ps.MemoryAddrBook.Addrs(p), } } From 23f4fc71ac4ef38fc50b73ad39036865061a2d71 Mon Sep 17 00:00:00 2001 From: Daniel N <2color@users.noreply.github.com> Date: Mon, 25 Nov 2024 11:55:15 +0100 Subject: [PATCH 2/4] fix: use correct default in factory --- p2p/host/peerstore/pstoremem/addr_book.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/p2p/host/peerstore/pstoremem/addr_book.go b/p2p/host/peerstore/pstoremem/addr_book.go index 6c20fd9347..69b7119b27 100644 --- a/p2p/host/peerstore/pstoremem/addr_book.go +++ b/p2p/host/peerstore/pstoremem/addr_book.go @@ -211,7 +211,7 @@ func NewAddrBook() *MemoryAddrBook { cancel: cancel, clock: realclock{}, maxUnconnectedAddrs: defaultMaxUnconnectedAddrs, - maxSignedPeerRecords: defaultMaxUnconnectedAddrs, + maxSignedPeerRecords: defaultMaxSignedPeerRecords, } ab.refCount.Add(1) go ab.background(ctx) From b74e10715b1386dff67882b748fcb9e8a8292595 Mon Sep 17 00:00:00 2001 From: Daniel N <2color@users.noreply.github.com> Date: Mon, 25 Nov 2024 12:22:34 +0100 Subject: [PATCH 3/4] feat: allow passing options to addr book factory --- p2p/host/peerstore/pstoremem/addr_book.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/p2p/host/peerstore/pstoremem/addr_book.go b/p2p/host/peerstore/pstoremem/addr_book.go index 69b7119b27..d770205b93 100644 --- a/p2p/host/peerstore/pstoremem/addr_book.go +++ b/p2p/host/peerstore/pstoremem/addr_book.go @@ -201,7 +201,7 @@ type MemoryAddrBook struct { var _ peerstore.AddrBook = (*MemoryAddrBook)(nil) var _ peerstore.CertifiedAddrBook = (*MemoryAddrBook)(nil) -func NewAddrBook() *MemoryAddrBook { +func NewAddrBook(opts ...AddrBookOption) *MemoryAddrBook { ctx, cancel := context.WithCancel(context.Background()) ab := &MemoryAddrBook{ @@ -213,6 +213,10 @@ func NewAddrBook() *MemoryAddrBook { maxUnconnectedAddrs: defaultMaxUnconnectedAddrs, maxSignedPeerRecords: defaultMaxSignedPeerRecords, } + for _, opt := range opts { + opt(ab) + } + ab.refCount.Add(1) go ab.background(ctx) return ab From 6bc70bf4a9cf8cfe38d158e47d11fceed175d921 Mon Sep 17 00:00:00 2001 From: Daniel N <2color@users.noreply.github.com> Date: Mon, 25 Nov 2024 12:30:20 +0100 Subject: [PATCH 4/4] Revert "chore: make mem addr book public" This reverts commit 1992262688c96647d98ba98ff1f3b04e9f4b26ab. --- p2p/host/peerstore/pstoremem/addr_book.go | 54 +++++++++++------------ p2p/host/peerstore/pstoremem/peerstore.go | 8 ++-- 2 files changed, 31 insertions(+), 31 deletions(-) diff --git a/p2p/host/peerstore/pstoremem/addr_book.go b/p2p/host/peerstore/pstoremem/addr_book.go index d770205b93..2520f6ef22 100644 --- a/p2p/host/peerstore/pstoremem/addr_book.go +++ b/p2p/host/peerstore/pstoremem/addr_book.go @@ -183,8 +183,8 @@ const ( defaultMaxUnconnectedAddrs = 1_000_000 ) -// MemoryAddrBook manages addresses. -type MemoryAddrBook struct { +// memoryAddrBook manages addresses. +type memoryAddrBook struct { mu sync.RWMutex addrs peerAddrs signedPeerRecords map[peer.ID]*peerRecordState @@ -198,13 +198,13 @@ type MemoryAddrBook struct { clock clock } -var _ peerstore.AddrBook = (*MemoryAddrBook)(nil) -var _ peerstore.CertifiedAddrBook = (*MemoryAddrBook)(nil) +var _ peerstore.AddrBook = (*memoryAddrBook)(nil) +var _ peerstore.CertifiedAddrBook = (*memoryAddrBook)(nil) -func NewAddrBook(opts ...AddrBookOption) *MemoryAddrBook { +func NewAddrBook(opts ...AddrBookOption) *memoryAddrBook { ctx, cancel := context.WithCancel(context.Background()) - ab := &MemoryAddrBook{ + ab := &memoryAddrBook{ addrs: newPeerAddrs(), signedPeerRecords: make(map[peer.ID]*peerRecordState), subManager: NewAddrSubManager(), @@ -222,10 +222,10 @@ func NewAddrBook(opts ...AddrBookOption) *MemoryAddrBook { return ab } -type AddrBookOption func(book *MemoryAddrBook) error +type AddrBookOption func(book *memoryAddrBook) error func WithClock(clock clock) AddrBookOption { - return func(book *MemoryAddrBook) error { + return func(book *memoryAddrBook) error { book.clock = clock return nil } @@ -235,21 +235,21 @@ func WithClock(clock clock) AddrBookOption { // The maximum number of connected addresses is bounded by the connection // limits in the Connection Manager and Resource Manager. func WithMaxAddresses(n int) AddrBookOption { - return func(b *MemoryAddrBook) error { + return func(b *memoryAddrBook) error { b.maxUnconnectedAddrs = n return nil } } func WithMaxSignedPeerRecords(n int) AddrBookOption { - return func(b *MemoryAddrBook) error { + return func(b *memoryAddrBook) error { b.maxSignedPeerRecords = n return nil } } // background periodically schedules a gc -func (mab *MemoryAddrBook) background(ctx context.Context) { +func (mab *memoryAddrBook) background(ctx context.Context) { defer mab.refCount.Done() ticker := time.NewTicker(1 * time.Minute) defer ticker.Stop() @@ -264,14 +264,14 @@ func (mab *MemoryAddrBook) background(ctx context.Context) { } } -func (mab *MemoryAddrBook) Close() error { +func (mab *memoryAddrBook) Close() error { mab.cancel() mab.refCount.Wait() return nil } // gc garbage collects the in-memory address book. -func (mab *MemoryAddrBook) gc() { +func (mab *memoryAddrBook) gc() { now := mab.clock.Now() mab.mu.Lock() defer mab.mu.Unlock() @@ -285,7 +285,7 @@ func (mab *MemoryAddrBook) gc() { } } -func (mab *MemoryAddrBook) PeersWithAddrs() peer.IDSlice { +func (mab *memoryAddrBook) PeersWithAddrs() peer.IDSlice { mab.mu.RLock() defer mab.mu.RUnlock() peers := make(peer.IDSlice, 0, len(mab.addrs.Addrs)) @@ -296,19 +296,19 @@ func (mab *MemoryAddrBook) PeersWithAddrs() peer.IDSlice { } // AddAddr calls AddAddrs(p, []ma.Multiaddr{addr}, ttl) -func (mab *MemoryAddrBook) AddAddr(p peer.ID, addr ma.Multiaddr, ttl time.Duration) { +func (mab *memoryAddrBook) AddAddr(p peer.ID, addr ma.Multiaddr, ttl time.Duration) { mab.AddAddrs(p, []ma.Multiaddr{addr}, ttl) } // AddAddrs adds `addrs` for peer `p`, which will expire after the given `ttl`. // This function never reduces the TTL or expiration of an address. -func (mab *MemoryAddrBook) AddAddrs(p peer.ID, addrs []ma.Multiaddr, ttl time.Duration) { +func (mab *memoryAddrBook) AddAddrs(p peer.ID, addrs []ma.Multiaddr, ttl time.Duration) { mab.addAddrs(p, addrs, ttl) } // ConsumePeerRecord adds addresses from a signed peer.PeerRecord, which will expire after the given TTL. // See https://godoc.org/github.com/libp2p/go-libp2p/core/peerstore#CertifiedAddrBook for more details. -func (mab *MemoryAddrBook) ConsumePeerRecord(recordEnvelope *record.Envelope, ttl time.Duration) (bool, error) { +func (mab *memoryAddrBook) ConsumePeerRecord(recordEnvelope *record.Envelope, ttl time.Duration) (bool, error) { r, err := recordEnvelope.Record() if err != nil { return false, err @@ -341,20 +341,20 @@ func (mab *MemoryAddrBook) ConsumePeerRecord(recordEnvelope *record.Envelope, tt return true, nil } -func (mab *MemoryAddrBook) maybeDeleteSignedPeerRecordUnlocked(p peer.ID) { +func (mab *memoryAddrBook) maybeDeleteSignedPeerRecordUnlocked(p peer.ID) { if len(mab.addrs.Addrs[p]) == 0 { delete(mab.signedPeerRecords, p) } } -func (mab *MemoryAddrBook) addAddrs(p peer.ID, addrs []ma.Multiaddr, ttl time.Duration) { +func (mab *memoryAddrBook) addAddrs(p peer.ID, addrs []ma.Multiaddr, ttl time.Duration) { mab.mu.Lock() defer mab.mu.Unlock() mab.addAddrsUnlocked(p, addrs, ttl) } -func (mab *MemoryAddrBook) addAddrsUnlocked(p peer.ID, addrs []ma.Multiaddr, ttl time.Duration) { +func (mab *memoryAddrBook) addAddrsUnlocked(p peer.ID, addrs []ma.Multiaddr, ttl time.Duration) { defer mab.maybeDeleteSignedPeerRecordUnlocked(p) // if ttl is zero, exit. nothing to do. @@ -405,13 +405,13 @@ func (mab *MemoryAddrBook) addAddrsUnlocked(p peer.ID, addrs []ma.Multiaddr, ttl } // SetAddr calls mgr.SetAddrs(p, addr, ttl) -func (mab *MemoryAddrBook) SetAddr(p peer.ID, addr ma.Multiaddr, ttl time.Duration) { +func (mab *memoryAddrBook) SetAddr(p peer.ID, addr ma.Multiaddr, ttl time.Duration) { mab.SetAddrs(p, []ma.Multiaddr{addr}, ttl) } // SetAddrs sets the ttl on addresses. This clears any TTL there previously. // This is used when we receive the best estimate of the validity of an address. -func (mab *MemoryAddrBook) SetAddrs(p peer.ID, addrs []ma.Multiaddr, ttl time.Duration) { +func (mab *memoryAddrBook) SetAddrs(p peer.ID, addrs []ma.Multiaddr, ttl time.Duration) { mab.mu.Lock() defer mab.mu.Unlock() @@ -461,7 +461,7 @@ func (mab *MemoryAddrBook) SetAddrs(p peer.ID, addrs []ma.Multiaddr, ttl time.Du // UpdateAddrs updates the addresses associated with the given peer that have // the given oldTTL to have the given newTTL. -func (mab *MemoryAddrBook) UpdateAddrs(p peer.ID, oldTTL time.Duration, newTTL time.Duration) { +func (mab *memoryAddrBook) UpdateAddrs(p peer.ID, oldTTL time.Duration, newTTL time.Duration) { mab.mu.Lock() defer mab.mu.Unlock() @@ -489,7 +489,7 @@ func (mab *MemoryAddrBook) UpdateAddrs(p peer.ID, oldTTL time.Duration, newTTL t } // Addrs returns all known (and valid) addresses for a given peer -func (mab *MemoryAddrBook) Addrs(p peer.ID) []ma.Multiaddr { +func (mab *memoryAddrBook) Addrs(p peer.ID) []ma.Multiaddr { mab.mu.RLock() defer mab.mu.RUnlock() if _, ok := mab.addrs.Addrs[p]; !ok { @@ -514,7 +514,7 @@ func validAddrs(now time.Time, amap map[string]*expiringAddr) []ma.Multiaddr { // GetPeerRecord returns a Envelope containing a PeerRecord for the // given peer id, if one exists. // Returns nil if no signed PeerRecord exists for the peer. -func (mab *MemoryAddrBook) GetPeerRecord(p peer.ID) *record.Envelope { +func (mab *memoryAddrBook) GetPeerRecord(p peer.ID) *record.Envelope { mab.mu.RLock() defer mab.mu.RUnlock() @@ -534,7 +534,7 @@ func (mab *MemoryAddrBook) GetPeerRecord(p peer.ID) *record.Envelope { } // ClearAddrs removes all previously stored addresses -func (mab *MemoryAddrBook) ClearAddrs(p peer.ID) { +func (mab *memoryAddrBook) ClearAddrs(p peer.ID) { mab.mu.Lock() defer mab.mu.Unlock() @@ -547,7 +547,7 @@ func (mab *MemoryAddrBook) ClearAddrs(p peer.ID) { // AddrStream returns a channel on which all new addresses discovered for a // given peer ID will be published. -func (mab *MemoryAddrBook) AddrStream(ctx context.Context, p peer.ID) <-chan ma.Multiaddr { +func (mab *memoryAddrBook) AddrStream(ctx context.Context, p peer.ID) <-chan ma.Multiaddr { var initial []ma.Multiaddr mab.mu.RLock() diff --git a/p2p/host/peerstore/pstoremem/peerstore.go b/p2p/host/peerstore/pstoremem/peerstore.go index 90b512c09f..d5a41cc56a 100644 --- a/p2p/host/peerstore/pstoremem/peerstore.go +++ b/p2p/host/peerstore/pstoremem/peerstore.go @@ -12,8 +12,8 @@ import ( type pstoremem struct { peerstore.Metrics - *MemoryAddrBook *memoryKeyBook + *memoryAddrBook *memoryProtoBook *memoryPeerMetadata } @@ -51,7 +51,7 @@ func NewPeerstore(opts ...Option) (ps *pstoremem, err error) { return &pstoremem{ Metrics: pstore.NewMetrics(), memoryKeyBook: NewKeyBook(), - MemoryAddrBook: ab, + memoryAddrBook: ab, memoryProtoBook: pb, memoryPeerMetadata: NewPeerMetadata(), }, nil @@ -67,7 +67,7 @@ func (ps *pstoremem) Close() (err error) { } } weakClose("keybook", ps.memoryKeyBook) - weakClose("addressbook", ps.MemoryAddrBook) + weakClose("addressbook", ps.memoryAddrBook) weakClose("protobook", ps.memoryProtoBook) weakClose("peermetadata", ps.memoryPeerMetadata) @@ -96,7 +96,7 @@ func (ps *pstoremem) Peers() peer.IDSlice { func (ps *pstoremem) PeerInfo(p peer.ID) peer.AddrInfo { return peer.AddrInfo{ ID: p, - Addrs: ps.MemoryAddrBook.Addrs(p), + Addrs: ps.memoryAddrBook.Addrs(p), } }