Ecosyste.ms: Packages

An open API service providing package, version and dependency metadata of many open source software ecosystems and registries.

Top 1.6% on proxy.golang.org
Top 0.9% dependent packages on proxy.golang.org
Top 0.9% dependent repos on proxy.golang.org
Top 1.7% forks on proxy.golang.org
Top 2.2% docker downloads on proxy.golang.org

proxy.golang.org : github.com/decred/dcrd/addrmgr/v2

Package addrmgr implements concurrency safe Decred address manager. In order maintain the peer-to-peer Decred network, there needs to be a source of addresses to connect to as nodes come and go. The Decred protocol provides the getaddr and addr messages to allow peers to communicate known addresses with each other. However, there needs to a mechanism to store those results and select peers from them. It is also important to note that remote peers can't be trusted to send valid peers nor attempt to provide you with only peers they control with malicious intent. With that in mind, this package provides a concurrency safe address manager for caching and selecting peers in a non-deterministic manner. The general idea is the caller adds addresses to the address manager and notifies it when addresses are connected, known good, and attempted. The caller also requests addresses as it needs them. The address manager internally segregates the addresses into groups and non-deterministically selects groups in a cryptographically random manner. This reduce the chances multiple addresses from the same nets are selected which generally helps provide greater peer diversity, and perhaps more importantly, drastically reduces the chances an attacker is able to coerce your peer into only connecting to nodes they control. The address manager also understands routability and Tor addresses and tries hard to only return routable addresses. In addition, it uses the information provided by the caller about connected, known good, and attempted addresses to periodically purge peers which no longer appear to be good peers as well as bias the selection toward known good peers. The general idea is to make a best effort at only providing usable addresses.

Registry - Source - Documentation - JSON
purl: pkg:golang/github.com/decred/dcrd/addrmgr/v2
Keywords: blockchain, cryptocurrency, dcrd, decred, decred-daemon, decred-nodes, go, golang, p2p, peer-to-peer
License: ISC
Latest release: 12 months ago
First release: over 2 years ago
Namespace: github.com/decred/dcrd/addrmgr
Dependent packages: 34
Dependent repositories: 38
Stars: 687 on GitHub
Forks: 281 on GitHub
Docker dependents: 2
Docker downloads: 217
See more repository details: repos.ecosyste.ms
Last synced: about 17 hours ago

    Loading...
    Readme
    Loading...