• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

libp2p/js-libp2p-connection-manager: [DEPRECATED]: now part of the https://githu ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

libp2p/js-libp2p-connection-manager

开源软件地址:

https://github.com/libp2p/js-libp2p-connection-manager

开源编程语言:

JavaScript 100.0%

开源软件介绍:

⛔️ DEPRECATED: libp2p-connection-manager is now included in js-libp2p

libp2p-connection-manager

Discourse posts Dependency Status js-standard-style

JavaScript connection manager for libp2p

Lead Maintainer

Vasco Santos.

Table of Contents

Install

npm

> npm install libp2p-connection-manager

Use in Node.js or in the browser with browserify, webpack or any other bundler

const ConnManager = require('libp2p-connection-manager')

API

A connection manager manages the peers you're connected to. The application provides one or more limits that will trigger the disconnection of peers. These limits can be any of the following:

  • number of connected peers
  • maximum bandwidth (sent / received or both)
  • maximum event loop delay

The connection manager will disconnect peers (starting from the less important peers) until all the measures are withing the stated limits.

A connection manager first disconnects the peers with the least value. By default all peers have the same importance (1), but the application can define otherwise. Once a peer disconnects the connection manager discards the peer importance. (If necessary, the application should redefine the peer state if the peer is again connected).

Create a ConnectionManager

const libp2p = // …
const options = {}
const connManager = new ConnManager(libp2p, options)

Options is an optional object with the following key-value pairs:

  • maxPeers: number identifying the maximum number of peers the current peer is willing to be connected to before is starts disconnecting. Defaults to Infinity
  • maxPeersPerProtocol: Object with key-value pairs, where a key is the protocol tag (case-insensitive) and the value is a number, representing the maximum number of peers allowing to connect for each protocol. Defaults to {}.
  • minPeers: number identifying the number of peers below which this node will not activate preemptive disconnections. Defaults to 0.
  • maxData: sets the maximum data — in bytes per second - (sent and received) this node is willing to endure before it starts disconnecting peers. Defaults to Infinity.
  • maxSentData: sets the maximum sent data — in bytes per second - this node is willing to endure before it starts disconnecting peers. Defaults to Infinity.
  • maxReceivedData: sets the maximum received data — in bytes per second - this node is willing to endure before it starts disconnecting peers. Defaults to Infinity.
  • maxEventLoopDelay: sets the maximum event loop delay (measured in miliseconds) this node is willing to endure before it starts disconnecting peers. Defaults to Infinity.
  • pollInterval: sets the poll interval (in miliseconds) for assessing the current state and determining if this peer needs to force a disconnect. Defaults to 2000 (2 seconds).
  • movingAverageInterval: the interval used to calculate moving averages (in miliseconds). Defaults to 60000 (1 minute).
  • defaultPeerValue: number between 0 and 1. Defaults to 1.

connManager.start()

Starts the connection manager.

connManager.stop()

Stops the connection manager.

connManager.setPeerValue(peerId, value)

Sets the peer value for a given peer id. This is used to sort peers (in reverse order of value) to determine which to disconnect from first.

Arguments:

  • peerId: B58-encoded string or peer-id instance.
  • value: a number between 0 and 1, which represents a scale of how valuable this given peer id is to the application.

connManager.peers()

Returns the peers this connection manager is connected to.

Returns an array of PeerInfo.

connManager.emit('limit:exceeded', limitName, measured)

Emitted when a limit is exceeded. Limit names can be:

  • maxPeers
  • minPeers
  • maxData
  • maxSentData
  • maxReceivedData
  • maxEventLoopDelay
  • a protocol tag string (lower-cased)

connManager.emit('disconnect:preemptive', peerId)

Emitted when a peer is about to be preemptively disconnected.

connManager.emit('disconnected', peerId)

Emitted when a peer is disconnected (preemptively or note). If this peer reconnects, you will need to reset it's value, since the connection manager does not remember it.

connManager.emit('connected', peerId: String)

Emitted when a peer connects. This is a good event to set the peer value, so you can get some control over who gets banned once a maximum number of peers is reached.

Contribute

Feel free to join in. All welcome. Open an issue!

This repository falls under the IPFS Code of Conduct.

License

MIT




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap