This switches the various subsystems over to use a new pattern that consolidates the waitgroup logic in a single location. This pattern is easier to reason about and less error prone since it's trivial to see at a glance that the calls to Done are happening as intended versus having to chase them down all over the code. |
||
|---|---|---|
| .. | ||
| connmanager_test.go | ||
| connmanager.go | ||
| doc.go | ||
| dynamicbanscore_test.go | ||
| dynamicbanscore.go | ||
| error_test.go | ||
| error.go | ||
| go.mod | ||
| go.sum | ||
| log.go | ||
| README.md | ||
| seed.go | ||
| tor.go | ||
connmgr
Package connmgr implements a generic Decred network connection manager.
Overview
This package handles all the general connection concerns such as maintaining a set number of outbound connections, sourcing peers, banning, limiting max connections, tor lookup, etc.
The package provides a generic connection manager which is able to accept connection requests from a source or a set of given addresses, dial them and notify the caller on connections. The main intended use is to initialize a pool of active connections and maintain them to remain connected to the P2P network.
In addition the connection manager provides the following utilities:
- Notifications on connections or disconnections
- Handle failures and retry new addresses from the source
- Connect only to specified addresses
- Permanent connections with increasing backoff retry timers
- Disconnect or Remove an established connection
Installation and Updating
This package is part of the github.com/decred/dcrd/connmgr/v3 module. Use the
standard go tooling for working with modules to incorporate it.
License
Package connmgr is licensed under the copyfree ISC License.