lbcd/connmgr
David de Kloet c5751b75a9 wire: Treat NetAddress more like immutable
Replace assignments to individual fields of wire.NetAddress with
creating the entire object at once, as one would do if the type was
immutable.

In some places this replaces the creation of a NetAddress with a
high-precision timestamp with a call to a 'constructor' that converts
the timestamp to single second precision. For consistency, the tests
have also been changed to use single-precision timestamps.

Lastly, the number of allocations in readNetAddress have been reduced by
reading the services directly into the NetAddress instead of first into
a temporary variable.
2016-12-06 20:48:02 +01:00
..
connmanager.go connmgr: switch to using net.Addr interface throughout for addresses 2016-11-10 11:22:36 -08:00
connmanager_test.go connmgr: switch to using net.Addr interface throughout for addresses 2016-11-10 11:22:36 -08:00
doc.go connmgr: Refactor connection management into pkg 2016-10-22 01:11:57 -05:00
dynamicbanscore.go connmgr: unexport the DynamicBanScore mutex. 2016-11-01 14:53:15 -05:00
dynamicbanscore_test.go connmgr: Refactor connection management into pkg 2016-10-22 01:11:57 -05:00
log.go connmgr: Refactor connection management into pkg 2016-10-22 01:11:57 -05:00
README.md connmgr: Refactor connection management into pkg 2016-10-22 01:11:57 -05:00
seed.go wire: Treat NetAddress more like immutable 2016-12-06 20:48:02 +01:00
tor.go connmgr: Refactor connection management into pkg 2016-10-22 01:11:57 -05:00

connmgr

[Build Status] (https://travis-ci.org/btcsuite/btcd) ![ISC License] (http://img.shields.io/badge/license-ISC-blue.svg) [GoDoc] (http://godoc.org/github.com/btcsuite/btcd/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.