mirror of
https://github.com/btcsuite/btcd.git
synced 2026-08-13 12:32:51 +02:00
In this commit, we define TargetOutbound as the number of automatic connections and treat explicit Connect requests as additional peers. Permanent requests could previously consume connection IDs before Start sampled the shared counter. The resulting automatic count depended on goroutine scheduling, while the listener reserved the worst-case total. We now start the configured automatic count directly and cap it by the peer budget left after permanent peers. The composition test covers permanent requests on both sides of Start and pins the same automatic+permanent total for either ordering. |
||
|---|---|---|
| .. | ||
| connmanager.go | ||
| connmanager_test.go | ||
| doc.go | ||
| dynamicbanscore.go | ||
| dynamicbanscore_test.go | ||
| log.go | ||
| README.md | ||
| seed.go | ||
| tor.go | ||
connmgr
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.