dcrd/connmgr
Dave Collins 4e3263c0d9
multi: Consolidate waitgroup logic.
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.
2023-10-28 01:48:52 -05:00
..
connmanager_test.go connmgr: Prepare v3.1.1. 2023-06-08 10:47:02 -05:00
connmanager.go multi: Consolidate waitgroup logic. 2023-10-28 01:48:52 -05:00
doc.go multi: Go 1.19 doc comment formatting. 2022-07-30 04:08:58 -05:00
dynamicbanscore_test.go connmgr: Fix dynamic ban score stringer deadlock. 2020-03-09 14:31:44 -05:00
dynamicbanscore.go connmgr: Fix dynamic ban score stringer deadlock. 2020-03-09 14:31:44 -05:00
error_test.go connmgr: Prepare v3.1.0. 2021-11-19 12:55:27 -06:00
error.go connmgr: Finish recent connmgr err type additions. 2020-05-22 13:22:28 -05:00
go.mod connmgr: Prepare v3.1.1. 2023-06-08 10:47:02 -05:00
go.sum connmgr: Prepare v3.1.1. 2023-06-08 10:47:02 -05:00
log.go connmgr: Remove deprecated DisableLog func. 2020-05-04 14:50:10 -05:00
README.md multi: Update README.md files for go modules. 2021-01-22 14:39:23 -06:00
seed.go connmgr: Enforce max http seeder response size. 2020-08-19 17:58:53 -05:00
tor.go connmgr: Finish recent connmgr err type additions. 2020-05-22 13:22:28 -05:00

connmgr

Build Status ISC License Doc

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.