Class: Libp2pPeer

November 20, 2020 · View on GitHub

ethereumjs-client"net/peer/libp2ppeer"Libp2pPeer

Class: Libp2pPeer

Libp2p peer

memberof module:net/peer

example

import { Libp2pPeer } from './lib/net/peer' import { Chain } from './lib/blockchain' import { EthProtocol } from './lib/net/protocol'

const chain = new Chain() const protocols = [ new EthProtocol({ chain })] const id = 'QmWYhkpLFDhQBwHCMSWzEebbJ5JzXWBKLJxjEuiL8wGzUu' const multiaddrs = [ '/ip4/192.0.2.1/tcp/12345' ]

new Libp2pPeer({ id, multiaddrs, protocols }) .on('error', (err) => console.log('Error:', err)) .on('connected', () => console.log('Connected')) .on('disconnected', (reason) => console.log('Disconnected:', reason)) .connect()

Hierarchy

Peer

Libp2pPeer

Index

Constructors

Properties

Accessors

Methods

Constructors

constructor

+ new Libp2pPeer(options: Libp2pPeerOptions): Libp2pPeer

Overrides Peer.constructor

Defined in lib/net/peer/libp2ppeer.ts:36

Create new libp2p peer

Parameters:

NameType
optionsLibp2pPeerOptions

Returns: Libp2pPeer

Properties

address

address: string

Inherited from Peer.address

Defined in lib/net/peer/peer.ts:36


bound

bound: Map‹string, BoundProtocol

Inherited from Peer.bound

Defined in lib/net/peer/peer.ts:39


config

config: Config

Inherited from Peer.config

Defined in lib/net/peer/peer.ts:34


eth

eth: BoundProtocol | undefined

Inherited from Peer.eth

Defined in lib/net/peer/peer.ts:46


id

id: string

Inherited from Peer.id

Defined in lib/net/peer/peer.ts:35


inbound

inbound: boolean

Inherited from Peer.inbound

Defined in lib/net/peer/peer.ts:37


les

les: BoundProtocol | undefined

Inherited from Peer.les

Defined in lib/net/peer/peer.ts:45


server

server: Server | undefined

Inherited from Peer.server

Defined in lib/net/peer/peer.ts:38

Accessors

idle

get idle(): boolean

Inherited from Peer.idle

Defined in lib/net/peer/peer.ts:71

Get idle state of peer

type {boolean}

Returns: boolean

set idle(value: boolean): void

Inherited from Peer.idle

Defined in lib/net/peer/peer.ts:79

Set idle state of peer

type {boolean}

Parameters:

NameType
valueboolean

Returns: void

Methods

Private accept

accept(protocol: any, connection: any, server: any): Promise‹void›

Defined in lib/net/peer/libp2ppeer.ts:76

Accept new peer connection from a libp2p server

Parameters:

NameType
protocolany
connectionany
serverany

Returns: Promise‹void›


addListener

addListener(event: string | symbol, listener: function): this

Inherited from Sender.addListener

Defined in node_modules/@types/node/events.d.ts:62

Parameters:

event: string | symbol

listener: function

▸ (...args: any[]): void

Parameters:

NameType
...argsany[]

Returns: this


Protected bindProtocol

bindProtocol(protocol: Protocol, sender: Sender): Promise‹void›

Inherited from Peer.bindProtocol

Defined in lib/net/peer/peer.ts:107

Adds a protocol to this peer given a sender instance. Protocol methods will be accessible via a field with the same name as protocol. New methods will be added corresponding to each message defined by the protocol, in addition to send() and request() methods that takes a message name and message arguments. send() only sends a message without waiting for a response, whereas request() also sends the message but will return a promise that resolves with the response payload.

example

await peer.bindProtocol(ethProtocol, sender) // Example: Directly call message name as a method on the bound protocol const headers1 = await peer.eth.getBlockHeaders(1, 100, 0, 0) // Example: Call request() method with message name as first parameter const headers2 = await peer.eth.request('getBlockHeaders', 1, 100, 0, 0) // Example: Call send() method with message name as first parameter and // wait for response message as an event peer.eth.send('getBlockHeaders', 1, 100, 0, 0) peer.eth.on('message', ({ data }) => console.log(Received ${data.length} headers))

Parameters:

NameTypeDescription
protocolProtocolprotocol instance
senderSenderSender instance provided by subclass

Returns: Promise‹void›


Private bindProtocols

bindProtocols(node: any, peerInfo: any, server: any): Promise‹void›

Defined in lib/net/peer/libp2ppeer.ts:90

Adds protocols to the peer given a libp2p node and peerInfo

Parameters:

NameTypeDefaultDescription
nodeany-libp2p node
peerInfoany-libp2p peerInfo
serveranynull-

Returns: Promise‹void›


connect

connect(): Promise‹void›

Defined in lib/net/peer/libp2ppeer.ts:58

Initiate peer connection

Returns: Promise‹void›


createPeerInfo

createPeerInfo(__namedParameters: object): Promise‹PeerInfo›

Defined in lib/net/peer/libp2ppeer.ts:110

Parameters:

__namedParameters: object

NameType
idundefined | string
multiaddrsstring[]

Returns: Promise‹PeerInfo›


emit

emit(event: string | symbol, ...args: any[]): boolean

Inherited from Sender.emit

Defined in node_modules/@types/node/events.d.ts:72

Parameters:

NameType
eventstring | symbol
...argsany[]

Returns: boolean


eventNames

eventNames(): Array‹string | symbol›

Inherited from Sender.eventNames

Defined in node_modules/@types/node/events.d.ts:77

Returns: Array‹string | symbol›


getMaxListeners

getMaxListeners(): number

Inherited from Sender.getMaxListeners

Defined in node_modules/@types/node/events.d.ts:69

Returns: number


listenerCount

listenerCount(event: string | symbol): number

Inherited from Sender.listenerCount

Defined in node_modules/@types/node/events.d.ts:73

Parameters:

NameType
eventstring | symbol

Returns: number


listeners

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

Inherited from Sender.listeners

Defined in node_modules/@types/node/events.d.ts:70

Parameters:

NameType
eventstring | symbol

Returns: Function[]


off

off(event: string | symbol, listener: function): this

Inherited from Sender.off

Defined in node_modules/@types/node/events.d.ts:66

Parameters:

event: string | symbol

listener: function

▸ (...args: any[]): void

Parameters:

NameType
...argsany[]

Returns: this


on

on(event: string | symbol, listener: function): this

Inherited from Sender.on

Defined in node_modules/@types/node/events.d.ts:63

Parameters:

event: string | symbol

listener: function

▸ (...args: any[]): void

Parameters:

NameType
...argsany[]

Returns: this


once

once(event: string | symbol, listener: function): this

Inherited from Sender.once

Defined in node_modules/@types/node/events.d.ts:64

Parameters:

event: string | symbol

listener: function

▸ (...args: any[]): void

Parameters:

NameType
...argsany[]

Returns: this


prependListener

prependListener(event: string | symbol, listener: function): this

Inherited from Sender.prependListener

Defined in node_modules/@types/node/events.d.ts:75

Parameters:

event: string | symbol

listener: function

▸ (...args: any[]): void

Parameters:

NameType
...argsany[]

Returns: this


prependOnceListener

prependOnceListener(event: string | symbol, listener: function): this

Inherited from Sender.prependOnceListener

Defined in node_modules/@types/node/events.d.ts:76

Parameters:

event: string | symbol

listener: function

▸ (...args: any[]): void

Parameters:

NameType
...argsany[]

Returns: this


rawListeners

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

Inherited from Sender.rawListeners

Defined in node_modules/@types/node/events.d.ts:71

Parameters:

NameType
eventstring | symbol

Returns: Function[]


removeAllListeners

removeAllListeners(event?: string | symbol): this

Inherited from Sender.removeAllListeners

Defined in node_modules/@types/node/events.d.ts:67

Parameters:

NameType
event?string | symbol

Returns: this


removeListener

removeListener(event: string | symbol, listener: function): this

Inherited from Sender.removeListener

Defined in node_modules/@types/node/events.d.ts:65

Parameters:

event: string | symbol

listener: function

▸ (...args: any[]): void

Parameters:

NameType
...argsany[]

Returns: this


setMaxListeners

setMaxListeners(n: number): this

Inherited from Sender.setMaxListeners

Defined in node_modules/@types/node/events.d.ts:68

Parameters:

NameType
nnumber

Returns: this


toString

toString(withFullId: boolean): string

Inherited from Peer.toString

Defined in lib/net/peer/peer.ts:126

Parameters:

NameTypeDefault
withFullIdbooleanfalse

Returns: string


understands

understands(protocolName: string): boolean

Inherited from Peer.understands

Defined in lib/net/peer/peer.ts:122

Return true if peer understand the specified protocol name

Parameters:

NameTypeDescription
protocolNamestring

Returns: boolean