Options
All
  • Public
  • Public/Protected
  • All
Menu
property

{Connection} connection

property

{MuxedStream} stream

property

{string} protocol

property

{boolean} [enabled = false]

property

{number} [queriesPerPeriod = 1]

property

{number} [interval = 300e3]

property

{number} [timeout = 10e3]

property

{boolean} [enabled = false]

property

{number} [kBucketSize = 20]

property

{RandomWalkOptions} [randomWalk]

property

{boolean} [clientMode]

property

{import('libp2p-interfaces/src/types').DhtSelectors} [selectors]

property

{import('libp2p-interfaces/src/types').DhtValidators} [validators]

property

{Datastore} [datastore]

property

{boolean} persistence

property

{boolean} enabled

property

{boolean} enabled

property

{boolean} [enabled = true]

property

{import('./circuit').RelayAdvertiseOptions} [advertise]

property

{import('./circuit').HopOptions} [hop]

property

{import('./circuit').AutoRelayOptions} [autoRelay]

property

{DhtOptions} [dht] dht module options

property

{import('./nat-manager').NatManagerOptions} [nat]

property

{Record<string, Object|boolean>} [peerDiscovery]

property

{PubsubLocalOptions & PubsubOptions} [pubsub] pubsub module options

property

{RelayOptions} [relay]

property

{Record<string, Object>} [transport] transport options indexed by transport key

property

{TransportFactory[]} transport

property

{MuxerFactory[]} streamMuxer

property

{Crypto[]} connEncryption

property

{PeerDiscoveryModule[]} [peerDiscovery]

property

{PeerRoutingModule[]} [peerRouting]

property

{ContentRoutingModule[]} [contentRouting]

property

{Object} [dht]

property

{{new(...args: any[]): Pubsub}} [pubsub]

property

{Protector} [connProtector]

property

{Libp2pModules} modules libp2p modules to use

property

{import('./address-manager').AddressManagerOptions} [addresses]

property

{import('./connection-manager').ConnectionManagerOptions} [connectionManager]

property

{Datastore} [datastore]

property

{import('./dialer').DialerOptions} [dialer]

property

{import('./identify/index').HostProperties} [host] libp2p host

property

{KeychainOptions & import('./keychain/index').KeychainOptions} [keychain]

property

{MetricsOptions & import('./metrics').MetricsOptions} [metrics]

property

{import('./peer-routing').PeerRoutingOptions} [peerRouting]

property

{PeerStoreOptions & import('./peer-store/persistent').PersistentPeerStoreOptions} [peerStore]

property

{import('./transport-manager').TransportManagerOptions} [transportManager]

property

{Libp2pConfig} [config]

property

{PeerId} peerId

property

{PeerId} [peerId]

fires

Libp2p#error Emitted when an error occurs

fires

Libp2p#peer:discovery Emitted when a peer is discovered

Hierarchy

  • EventEmitter
    • Libp2p

Index

Constructors

constructor

Properties

_config

_config: { dht: { enabled: boolean; kBucketSize: number; randomWalk: { enabled: boolean; interval: number; queriesPerPeriod: number; timeout: number } }; nat: { enabled: boolean; externalIp: null; gateway: null; keepAlive: boolean; pmp: { enabled: boolean }; ttl: number }; peerDiscovery: { autoDial: boolean }; pubsub: { enabled: boolean }; relay: { advertise: { bootDelay: number; enabled: boolean; ttl: number }; autoRelay: { enabled: boolean; maxListeners: number }; enabled: boolean; hop: { active: boolean; enabled: boolean } }; transport: {} } & Libp2pConfig

_dht

_dht: any

_discovery

_discovery: Map<any, any>

_isStarted

_isStarted: undefined | boolean

_modules

_modules: Libp2pModules

_options

_options: { addresses: { announce: never[]; announceFilter: (multiaddrs: Multiaddr[]) => Multiaddr[]; listen: never[]; noAnnounce: never[] }; config: { dht: { enabled: boolean; kBucketSize: number; randomWalk: { enabled: boolean; interval: number; queriesPerPeriod: number; timeout: number } }; nat: { enabled: boolean; externalIp: null; gateway: null; keepAlive: boolean; pmp: { enabled: boolean }; ttl: number }; peerDiscovery: { autoDial: boolean }; pubsub: { enabled: boolean }; relay: { advertise: { bootDelay: number; enabled: boolean; ttl: number }; autoRelay: { enabled: boolean; maxListeners: number }; enabled: boolean; hop: { active: boolean; enabled: boolean } }; transport: {} }; connectionManager: { minConnections: number }; dialer: { addressSorter: (addresses: Address[]) => Address[]; dialTimeout: number; maxDialsPerPeer: number; maxParallelDials: number; resolvers: { dnsaddr: any } }; host: { agentVersion: string }; metrics: { enabled: boolean }; peerRouting: { refreshManager: { bootDelay: number; enabled: boolean; interval: number } }; peerStore: { persistence: boolean; threshold: number }; transportManager: { faultTolerance: number } } & Libp2pOptions & constructorOptions

_transport

_transport: any[]

addressManager

addressManager: AddressManager

addresses

addresses: { announce: never[]; announceFilter: (multiaddrs: Multiaddr[]) => Multiaddr[]; listen: never[]; noAnnounce: never[] } & AddressManagerOptions

connectionManager

connectionManager: ConnectionManager

contentRouting

contentRouting: ContentRouting

datastore

datastore: undefined | Datastore

dialer

dialer: Dialer

identifyService

identifyService: undefined | IdentifyService

keychain

keychain: undefined | Keychain

metrics

metrics: undefined | Metrics

natManager

natManager: NatManager

peerId

peerId: PeerId

peerRouting

peerRouting: PeerRouting

peerStore

peerStore: PeerStore

pubsub

pubsub: PubsubBaseProtocol

registrar

registrar: Registrar

relay

relay: undefined | Relay

transportManager

transportManager: TransportManager

upgrader

upgrader: Upgrader

Static Readonly captureRejectionSymbol

captureRejectionSymbol: typeof captureRejectionSymbol

Static captureRejections

captureRejections: boolean

Sets or gets the default captureRejection value for all emitters.

Static defaultMaxListeners

defaultMaxListeners: number

Static Readonly errorMonitor

errorMonitor: typeof errorMonitor

This symbol shall be used to install a listener for only monitoring 'error' events. Listeners installed using this symbol are called before the regular 'error' listeners are called.

Installing a listener using this symbol does not change the behavior once an 'error' event is emitted, therefore the process will still crash if no regular 'error' listener is installed.

Accessors

connections

  • get connections(): Map<string, Connection[]>
  • Gets a Map of the current connections. The keys are the stringified PeerId of the peer. The value is an array of Connections to that peer.

    Returns Map<string, Connection[]>

multiaddrs

  • get multiaddrs(): Multiaddr[]
  • Get a deduplicated list of peer advertising multiaddrs by concatenating the listen addresses used by transports with any configured announce addresses as well as observed addresses reported by peers.

    If Announce addrs are specified, configured listen addresses will be ignored though observed addresses will still be included.

    Returns Multiaddr[]

Methods

_dial

  • _dial(peer: string | Multiaddr | PeerId, options: undefined | object): Promise<Connection>
  • async

    Parameters

    • peer: string | Multiaddr | PeerId

      The peer to dial

    • options: undefined | object

    Returns Promise<Connection>

Private _maybeConnect

  • _maybeConnect(peerId: PeerId): Promise<void>
  • Will dial to the given peerId if the current number of connected peers is less than the configured ConnectionManager minConnections.

    Parameters

    • peerId: PeerId

    Returns Promise<void>

Private _onDidStart

  • _onDidStart(): Promise<void>
  • Called when libp2p has started and before it returns

    Returns Promise<void>

Private _onDiscoveryPeer

  • _onDiscoveryPeer(peer: { id: PeerId; multiaddrs: Multiaddr[]; protocols: string[] }): void
  • Called whenever peer discovery services emit peer events. Known peers may be emitted.

    Parameters

    • peer: { id: PeerId; multiaddrs: Multiaddr[]; protocols: string[] }
      • id: PeerId
      • multiaddrs: Multiaddr[]
      • protocols: string[]

    Returns void

_onStarting

  • _onStarting(): Promise<void>

Private _setupPeerDiscovery

  • _setupPeerDiscovery(): Promise<void>
  • Initializes and starts peer discovery services

    async

    Returns Promise<void>

addListener

  • addListener(event: string | symbol, listener: (...args: any[]) => void): Libp2p
  • Parameters

    • event: string | symbol
    • listener: (...args: any[]) => void
        • (...args: any[]): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns Libp2p

dial

  • dial(peer: string | Multiaddr | PeerId, options: undefined | { signal: undefined | AbortSignal }): Promise<Connection>
  • Dials to the provided peer. If successful, the known metadata of the peer will be added to the nodes peerStore

    Parameters

    • peer: string | Multiaddr | PeerId

      The peer to dial

    • options: undefined | { signal: undefined | AbortSignal }

    Returns Promise<Connection>

dialProtocol

  • dialProtocol(peer: string | Multiaddr | PeerId, protocols: string | string[], options: undefined | { signal: undefined | AbortSignal }): Promise<{ protocol: string; stream: MuxedStream }>
  • Dials to the provided peer and tries to handshake with the given protocols in order. If successful, the known metadata of the peer will be added to the nodes peerStore, and the MuxedStream will be returned together with the successful negotiated protocol.

    async

    Parameters

    • peer: string | Multiaddr | PeerId

      The peer to dial

    • protocols: string | string[]
    • options: undefined | { signal: undefined | AbortSignal }

    Returns Promise<{ protocol: string; stream: MuxedStream }>

emit

  • emit(eventName: string, ...args: any[]): boolean
  • Overrides EventEmitter.emit to conditionally emit errors if there is a handler. If not, errors will be logged.

    Parameters

    • eventName: string
    • Rest ...args: any[]

    Returns boolean

eventNames

  • eventNames(): (string | symbol)[]
  • Returns (string | symbol)[]

getMaxListeners

  • getMaxListeners(): number
  • Returns number

handle

  • handle(protocols: string | string[], handler: (props: HandlerProps) => void): void

hangUp

  • hangUp(peer: string | Multiaddr | PeerId): Promise<void>
  • Disconnects all connections to the given peer

    Parameters

    • peer: string | Multiaddr | PeerId

      the peer to close connections to

    Returns Promise<void>

isStarted

  • isStarted(): undefined | boolean

listenerCount

  • listenerCount(type: string | symbol): number
  • Parameters

    • type: string | symbol

    Returns number

listeners

  • listeners(event: string | symbol): Function[]
  • Parameters

    • event: string | symbol

    Returns Function[]

loadKeychain

  • loadKeychain(): Promise<void>
  • Load keychain keys from the datastore. Imports the private key as 'self', if needed.

    async

    Returns Promise<void>

off

  • off(event: string | symbol, listener: (...args: any[]) => void): Libp2p
  • Parameters

    • event: string | symbol
    • listener: (...args: any[]) => void
        • (...args: any[]): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns Libp2p

on

  • on(event: string | symbol, listener: (...args: any[]) => void): Libp2p
  • Parameters

    • event: string | symbol
    • listener: (...args: any[]) => void
        • (...args: any[]): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns Libp2p

once

  • once(event: string | symbol, listener: (...args: any[]) => void): Libp2p
  • Parameters

    • event: string | symbol
    • listener: (...args: any[]) => void
        • (...args: any[]): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns Libp2p

ping

  • ping(peer: string | Multiaddr | PeerId): Promise<number>
  • Pings the given peer in order to obtain the operation latency.

    Parameters

    • peer: string | Multiaddr | PeerId

      The peer to ping

    Returns Promise<number>

prependListener

  • prependListener(event: string | symbol, listener: (...args: any[]) => void): Libp2p
  • Parameters

    • event: string | symbol
    • listener: (...args: any[]) => void
        • (...args: any[]): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns Libp2p

prependOnceListener

  • prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): Libp2p
  • Parameters

    • event: string | symbol
    • listener: (...args: any[]) => void
        • (...args: any[]): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns Libp2p

rawListeners

  • rawListeners(event: string | symbol): Function[]
  • Parameters

    • event: string | symbol

    Returns Function[]

removeAllListeners

  • removeAllListeners(event?: string | symbol): Libp2p
  • Parameters

    • Optional event: string | symbol

    Returns Libp2p

removeListener

  • removeListener(event: string | symbol, listener: (...args: any[]) => void): Libp2p
  • Parameters

    • event: string | symbol
    • listener: (...args: any[]) => void
        • (...args: any[]): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns Libp2p

setMaxListeners

  • setMaxListeners(n: number): Libp2p
  • Parameters

    • n: number

    Returns Libp2p

start

  • start(): Promise<void>
  • Starts the libp2p node and all its subsystems

    Returns Promise<void>

stop

  • stop(): Promise<void>
  • Stop the libp2p node by closing its listeners and open connections

    async

    Returns Promise<void>

unhandle

  • unhandle(protocols: string | string[]): void
  • Removes the handler for each protocol. The protocol will no longer be supported on streams.

    Parameters

    • protocols: string | string[]

    Returns void

Static create

  • Like new Libp2p(options) except it will create a PeerId instance if one is not provided in options.

    Parameters

    Returns Promise<Libp2p>

Static listenerCount

  • listenerCount(emitter: EventEmitter, event: string | symbol): number
  • deprecated

    since v4.0.0

    Parameters

    • emitter: EventEmitter
    • event: string | symbol

    Returns number

Static on

  • on(emitter: EventEmitter, event: string): AsyncIterableIterator<any>
  • Parameters

    • emitter: EventEmitter
    • event: string

    Returns AsyncIterableIterator<any>

Static once

  • once(emitter: NodeEventTarget, event: string | symbol): Promise<any[]>
  • once(emitter: DOMEventTarget, event: string): Promise<any[]>
  • Parameters

    • emitter: NodeEventTarget
    • event: string | symbol

    Returns Promise<any[]>

  • Parameters

    • emitter: DOMEventTarget
    • event: string

    Returns Promise<any[]>