libp2p
    Preparing search index...

    Module @libp2p/peer-collections

    We can't use PeerIds as collection keys because collection keys are compared using same-value-zero equality, so this is just a group of collections that stringifies PeerIds before storing them.

    PeerIds cache stringified versions of themselves so this should be a cheap operation.

    Tracked versions are also available which report their current size to the libp2p Metrics collector.

    import { peerList } from '@libp2p/peer-collections'
    import { peerIdFromPrivateKey } from '@libp2p/peer-id'
    import { generateKeyPair } from '@libp2p/crypto/keys'

    const peerId = peerIdFromPrivateKey(await generateKeyPair('Ed25519'))

    const list = peerList()
    list.push(peerId)
    import { trackedPeerList } from '@libp2p/peer-collections'
    import { peerIdFromPrivateKey } from '@libp2p/peer-id'
    import { generateKeyPair } from '@libp2p/crypto/keys'
    import { createLibp2p } from 'libp2p'

    const libp2p = await createLibp2p()
    const peerId = peerIdFromPrivateKey(await generateKeyPair('Ed25519'))

    const list = trackedPeerList({ name: 'my_metric_name', metrics: libp2p.metrics })
    list.push(peerId)
    import { peerMap } from '@libp2p/peer-collections'
    import { peerIdFromPrivateKey } from '@libp2p/peer-id'
    import { generateKeyPair } from '@libp2p/crypto/keys'

    const peerId = peerIdFromPrivateKey(await generateKeyPair('Ed25519'))

    const map = peerMap<string>()
    map.set(peerId, 'value')
    import { trackedPeerMap } from '@libp2p/peer-collections'
    import { createLibp2p } from 'libp2p'
    import { peerIdFromPrivateKey } from '@libp2p/peer-id'
    import { generateKeyPair } from '@libp2p/crypto/keys'

    const libp2p = await createLibp2p()
    const peerId = peerIdFromPrivateKey(await generateKeyPair('Ed25519'))

    const map = trackedPeerMap({ name: 'my_metric_name', metrics: libp2p.metrics })
    map.set(peerId, 'value')
    import { peerSet } from '@libp2p/peer-collections'
    import { peerIdFromPrivateKey } from '@libp2p/peer-id'
    import { generateKeyPair } from '@libp2p/crypto/keys'

    const peerId = peerIdFromPrivateKey(await generateKeyPair('Ed25519'))

    const set = peerSet()
    set.add(peerId)
    import { trackedPeerSet } from '@libp2p/peer-collections'
    import { createLibp2p } from 'libp2p'
    import { peerIdFromPrivateKey } from '@libp2p/peer-id'
    import { generateKeyPair } from '@libp2p/crypto/keys'

    const libp2p = await createLibp2p()
    const peerId = peerIdFromPrivateKey(await generateKeyPair('Ed25519'))

    const set = trackedPeerSet({ name: 'my_metric_name', metrics: libp2p.metrics })
    set.add(peerId)
    import { peerFilter } from '@libp2p/peer-collections'
    import { peerIdFromPrivateKey } from '@libp2p/peer-id'
    import { generateKeyPair } from '@libp2p/crypto/keys'

    const peerId = peerIdFromPrivateKey(await generateKeyPair('Ed25519'))

    const filter = peerFilter(1024)
    filter.has(peerId) // false
    filter.add(peerId)
    filter.has(peerId) // true

    @libp2p/peer-collections

    libp2p.io Discuss codecov CI

    Stores values against a peer id

    About

    We can't use PeerIds as collection keys because collection keys are compared using same-value-zero equality, so this is just a group of collections that stringifies PeerIds before storing them.

    PeerIds cache stringified versions of themselves so this should be a cheap operation.

    Tracked versions are also available which report their current size to the libp2p Metrics collector.

    import { peerList } from '@libp2p/peer-collections'
    import { peerIdFromPrivateKey } from '@libp2p/peer-id'
    import { generateKeyPair } from '@libp2p/crypto/keys'

    const peerId = peerIdFromPrivateKey(await generateKeyPair('Ed25519'))

    const list = peerList()
    list.push(peerId)
    import { trackedPeerList } from '@libp2p/peer-collections'
    import { peerIdFromPrivateKey } from '@libp2p/peer-id'
    import { generateKeyPair } from '@libp2p/crypto/keys'
    import { createLibp2p } from 'libp2p'

    const libp2p = await createLibp2p()
    const peerId = peerIdFromPrivateKey(await generateKeyPair('Ed25519'))

    const list = trackedPeerList({ name: 'my_metric_name', metrics: libp2p.metrics })
    list.push(peerId)
    import { peerMap } from '@libp2p/peer-collections'
    import { peerIdFromPrivateKey } from '@libp2p/peer-id'
    import { generateKeyPair } from '@libp2p/crypto/keys'

    const peerId = peerIdFromPrivateKey(await generateKeyPair('Ed25519'))

    const map = peerMap<string>()
    map.set(peerId, 'value')
    import { trackedPeerMap } from '@libp2p/peer-collections'
    import { createLibp2p } from 'libp2p'
    import { peerIdFromPrivateKey } from '@libp2p/peer-id'
    import { generateKeyPair } from '@libp2p/crypto/keys'

    const libp2p = await createLibp2p()
    const peerId = peerIdFromPrivateKey(await generateKeyPair('Ed25519'))

    const map = trackedPeerMap({ name: 'my_metric_name', metrics: libp2p.metrics })
    map.set(peerId, 'value')
    import { peerSet } from '@libp2p/peer-collections'
    import { peerIdFromPrivateKey } from '@libp2p/peer-id'
    import { generateKeyPair } from '@libp2p/crypto/keys'

    const peerId = peerIdFromPrivateKey(await generateKeyPair('Ed25519'))

    const set = peerSet()
    set.add(peerId)
    import { trackedPeerSet } from '@libp2p/peer-collections'
    import { createLibp2p } from 'libp2p'
    import { peerIdFromPrivateKey } from '@libp2p/peer-id'
    import { generateKeyPair } from '@libp2p/crypto/keys'

    const libp2p = await createLibp2p()
    const peerId = peerIdFromPrivateKey(await generateKeyPair('Ed25519'))

    const set = trackedPeerSet({ name: 'my_metric_name', metrics: libp2p.metrics })
    set.add(peerId)
    import { peerFilter } from '@libp2p/peer-collections'
    import { peerIdFromPrivateKey } from '@libp2p/peer-id'
    import { generateKeyPair } from '@libp2p/crypto/keys'

    const peerId = peerIdFromPrivateKey(await generateKeyPair('Ed25519'))

    const filter = peerFilter(1024)
    filter.has(peerId) // false
    filter.add(peerId)
    filter.has(peerId) // true

    Install

    $ npm i @libp2p/peer-collections
    

    Loading this module through a script tag will make its exports available as Libp2pPeerCollections in the global namespace.

    <script src="https://unpkg.com/@libp2p/peer-collections/dist/index.min.js"></script>
    

    API Docs

    License

    Licensed under either of

    Contribution

    Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

    Classes

    PeerFilter
    PeerList
    PeerMap
    PeerSet

    Interfaces

    TrackedPeerListInit
    TrackedPeerMapInit
    TrackedPeerSetInit

    Functions

    peerFilter
    peerList
    peerMap
    peerSet
    trackedPeerList
    trackedPeerMap
    trackedPeerSet