Package Exports
- peer-info
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (peer-info) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
peer-info JavaScript implementation
A PeerInfo object contains information about a PeerID and its multiaddrs. This module is used by IPFS and libp2p.
Example
const PeerInfo = require('peer-info')
const multiaddr = require('multiaddr')
const peer = new PeerInfo()
// TCP port 5001
peer.multiaddr.add(multiaddr('/ip4/1.2.3.4/tcp/5001'))
// UDP port 8001
peer.multiaddr.add(multiaddr('/ip4/1.2.3.4/udp/8001'))
// mic/speaker soundwaves using frequencies 697 and 1209
peer.multiaddr.add(multiaddr('/sonic/bfsk/697/1209'))
API
const PeerInfo = require('peer-info')
const peer = new PeerInfo()
Creates a new PeerInfo instance and also generates a new underlying PeerID for it.
const peer = new PeerInfo(peerId)
Creates a new PeerInfo instance from an existing PeerID.
peer.multiaddrs
A list of multiaddresses instances that peer
can be reached at.
peer.multiaddr.add(addr)
Adds a new multiaddress that peer
can be reached at. addr
is an instance of
a multiaddr.
peer.multiaddr.addSafe(addr)
The addSafe
call, in comparison to add
, will only add the multiaddr to
multiaddrs
if the same multiaddr tries to be added twice.
This is a simple mechanism to prevent multiaddrs
from becoming bloated with
unusable addresses, which happens when we exchange observed multiaddrs with
peers which will not provide a useful multiaddr to be shared to the rest of the
network (e.g. a multiaddr referring to a peer inside a LAN being shared to the
outside world).
peer.multiaddr.rm(addr)
Removes a multiaddress instance addr
from peer
.
peer.multiaddr.replace(existing, fresh)
Removes the array of multiaddresses existing
from peer
, and adds the array
of multiaddresses fresh
.
Installation
npm
> npm i peer-info
Node.JS, Browserify, Webpack
var PeerInfo = require('peer-info')
Browser: <script>
Tag
Loading this module through a script tag will make the PeerInfo
obj available in the global namespace.
<script src="https://npmcdn.com/peer-info/dist/index.min.js"></script>
<!-- OR -->
<script src="https://npmcdn.com/peer-info/dist/index.js"></script>
License
MIT