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
- accept
- addListener
- bindProtocol
- bindProtocols
- connect
- createPeerInfo
- emit
- eventNames
- getMaxListeners
- listenerCount
- listeners
- off
- on
- once
- prependListener
- prependOnceListener
- rawListeners
- removeAllListeners
- removeListener
- setMaxListeners
- toString
- understands
Constructors
constructor
+ new Libp2pPeer(options: Libp2pPeerOptions): Libp2pPeer
Overrides Peer.constructor
Defined in lib/net/peer/libp2ppeer.ts:36
Create new libp2p peer
Parameters:
| Name | Type |
|---|---|
options | Libp2pPeerOptions |
Returns: Libp2pPeer
Properties
address
• address: string
Defined in lib/net/peer/peer.ts:36
bound
• bound: Map‹string, BoundProtocol›
Defined in lib/net/peer/peer.ts:39
config
• config: Config
Defined in lib/net/peer/peer.ts:34
eth
• eth: BoundProtocol | undefined
Defined in lib/net/peer/peer.ts:46
id
• id: string
Defined in lib/net/peer/peer.ts:35
inbound
• inbound: boolean
Defined in lib/net/peer/peer.ts:37
les
• les: BoundProtocol | undefined
Defined in lib/net/peer/peer.ts:45
server
• server: Server | undefined
Defined in lib/net/peer/peer.ts:38
Accessors
idle
• get idle(): boolean
Defined in lib/net/peer/peer.ts:71
Get idle state of peer
type {boolean}
Returns: boolean
• set idle(value: boolean): void
Defined in lib/net/peer/peer.ts:79
Set idle state of peer
type {boolean}
Parameters:
| Name | Type |
|---|---|
value | boolean |
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:
| Name | Type |
|---|---|
protocol | any |
connection | any |
server | any |
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:
| Name | Type |
|---|---|
...args | any[] |
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:
| Name | Type | Description |
|---|---|---|
protocol | Protocol | protocol instance |
sender | Sender | Sender 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:
| Name | Type | Default | Description |
|---|---|---|---|
node | any | - | libp2p node |
peerInfo | any | - | libp2p peerInfo |
server | any | null | - |
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
| Name | Type |
|---|---|
id | undefined | string |
multiaddrs | string[] |
Returns: Promise‹PeerInfo›
emit
▸ emit(event: string | symbol, ...args: any[]): boolean
Defined in node_modules/@types/node/events.d.ts:72
Parameters:
| Name | Type |
|---|---|
event | string | symbol |
...args | any[] |
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:
| Name | Type |
|---|---|
event | string | symbol |
Returns: number
listeners
▸ listeners(event: string | symbol): Function[]
Inherited from Sender.listeners
Defined in node_modules/@types/node/events.d.ts:70
Parameters:
| Name | Type |
|---|---|
event | string | symbol |
Returns: Function[]
off
▸ off(event: string | symbol, listener: function): this
Defined in node_modules/@types/node/events.d.ts:66
Parameters:
▪ event: string | symbol
▪ listener: function
▸ (...args: any[]): void
Parameters:
| Name | Type |
|---|---|
...args | any[] |
Returns: this
on
▸ on(event: string | symbol, listener: function): this
Defined in node_modules/@types/node/events.d.ts:63
Parameters:
▪ event: string | symbol
▪ listener: function
▸ (...args: any[]): void
Parameters:
| Name | Type |
|---|---|
...args | any[] |
Returns: this
once
▸ once(event: string | symbol, listener: function): this
Defined in node_modules/@types/node/events.d.ts:64
Parameters:
▪ event: string | symbol
▪ listener: function
▸ (...args: any[]): void
Parameters:
| Name | Type |
|---|---|
...args | any[] |
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:
| Name | Type |
|---|---|
...args | any[] |
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:
| Name | Type |
|---|---|
...args | any[] |
Returns: this
rawListeners
▸ rawListeners(event: string | symbol): Function[]
Inherited from Sender.rawListeners
Defined in node_modules/@types/node/events.d.ts:71
Parameters:
| Name | Type |
|---|---|
event | string | symbol |
Returns: Function[]
removeAllListeners
▸ removeAllListeners(event?: string | symbol): this
Inherited from Sender.removeAllListeners
Defined in node_modules/@types/node/events.d.ts:67
Parameters:
| Name | Type |
|---|---|
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:
| Name | Type |
|---|---|
...args | any[] |
Returns: this
setMaxListeners
▸ setMaxListeners(n: number): this
Inherited from Sender.setMaxListeners
Defined in node_modules/@types/node/events.d.ts:68
Parameters:
| Name | Type |
|---|---|
n | number |
Returns: this
toString
▸ toString(withFullId: boolean): string
Defined in lib/net/peer/peer.ts:126
Parameters:
| Name | Type | Default |
|---|---|---|
withFullId | boolean | false |
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:
| Name | Type | Description |
|---|---|---|
protocolName | string |
Returns: boolean