btcd/connmgr
Olaoluwa Osuntokun ef0e43ba06 multi: refactor v2 -> v1 downgrade logic
In this commit, we refactor the v2 -> v1 downgrade logic to: simplify
the code in the server for reconnection, use a functional option to
avoid breaking the connmgr API, and we also encapsulate the downgrade
state in a new struct so it can be re-used elsewhere.
2025-05-26 13:46:25 -07:00
..
connmanager.go multi: refactor v2 -> v1 downgrade logic 2025-05-26 13:46:25 -07:00
connmanager_test.go multi: refactor v2 -> v1 downgrade logic 2025-05-26 13:46:25 -07:00
doc.go multi: Run gofmt on the entire repository 2023-06-21 22:31:09 +09:00
dynamicbanscore.go BUG:dynamicbanscore deadlock 2020-03-09 13:41:13 -04:00
dynamicbanscore_test.go BUG:dynamicbanscore deadlock 2020-03-09 13:41:13 -04:00
log.go connmgr: Refactor connection management into pkg 2016-10-22 01:11:57 -05:00
README.md docs: update shields 2021-03-05 07:45:19 -05:00
seed.go fix typos (#2100) 2024-03-25 09:44:25 -04:00
tor.go Revert "reduce redundant memory allocatio - resolves btcsuite/btcd#1699" 2022-02-04 15:35:59 -05:00

connmgr

Build Status ISC License GoDoc

Package connmgr implements a generic Bitcoin network connection manager.

Overview

Connection Manager 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

$ go get -u github.com/btcsuite/btcd/connmgr

License

Package connmgr is licensed under the copyfree ISC License.