CRDT: Fix protecting of nodes before loading the peerstore
Addresses comments from review #792
This commit is contained in:
parent
99be078548
commit
2a2f8c0309
|
@ -102,12 +102,6 @@ func New(
|
||||||
readyCh: make(chan struct{}, 1),
|
readyCh: make(chan struct{}, 1),
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set up a fast-lookup trusted peers cache.
|
|
||||||
// Protect these peers in the ConnMgr
|
|
||||||
for _, p := range css.config.TrustedPeers {
|
|
||||||
css.Trust(ctx, p)
|
|
||||||
}
|
|
||||||
|
|
||||||
go css.setup()
|
go css.setup()
|
||||||
return css, nil
|
return css, nil
|
||||||
}
|
}
|
||||||
|
@ -119,6 +113,12 @@ func (css *Consensus) setup() {
|
||||||
case <-css.rpcReady:
|
case <-css.rpcReady:
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Set up a fast-lookup trusted peers cache.
|
||||||
|
// Protect these peers in the ConnMgr
|
||||||
|
for _, p := range css.config.TrustedPeers {
|
||||||
|
css.Trust(css.ctx, p)
|
||||||
|
}
|
||||||
|
|
||||||
// Hash the cluster name and produce the topic name from there
|
// Hash the cluster name and produce the topic name from there
|
||||||
// as a way to avoid pubsub topic collisions with other
|
// as a way to avoid pubsub topic collisions with other
|
||||||
// pubsub applications potentially when both potentially use
|
// pubsub applications potentially when both potentially use
|
||||||
|
|
|
@ -256,7 +256,7 @@ func (pm *Manager) SavePeerstoreForPeers(peers []peer.ID) {
|
||||||
|
|
||||||
// Bootstrap attempts to get as much as count connected peers by selecting
|
// Bootstrap attempts to get as much as count connected peers by selecting
|
||||||
// randomly from those in the libp2p host peerstore. It returns the number
|
// randomly from those in the libp2p host peerstore. It returns the number
|
||||||
// if peers it sucessfully connected to.
|
// of peers it successfully connected to.
|
||||||
func (pm *Manager) Bootstrap(count int) int {
|
func (pm *Manager) Bootstrap(count int) int {
|
||||||
knownPeers := pm.host.Peerstore().PeersWithAddrs()
|
knownPeers := pm.host.Peerstore().PeersWithAddrs()
|
||||||
toSort := &peerSort{
|
toSort := &peerSort{
|
||||||
|
@ -296,6 +296,11 @@ func (pm *Manager) SetPriority(pid peer.ID, prio int) error {
|
||||||
return pm.host.Peerstore().Put(pid, PriorityTag, prio)
|
return pm.host.Peerstore().Put(pid, PriorityTag, prio)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// peerSort is used to sort a slice of PinInfos given the PriorityTag in the
|
||||||
|
// peerstore, from the lowest tag value (0 is the highest priority) to the
|
||||||
|
// highest, Peers without a valid priority tag are considered as having a tag
|
||||||
|
// with value 0, so they will be among the first elements in the resulting
|
||||||
|
// slice.
|
||||||
type peerSort struct {
|
type peerSort struct {
|
||||||
pinfos []peerstore.PeerInfo
|
pinfos []peerstore.PeerInfo
|
||||||
pstore peerstore.Peerstore
|
pstore peerstore.Peerstore
|
||||||
|
|
Loading…
Reference in New Issue
Block a user