libp2p 0.36.2-fab4f13 → 0.37.0-d5386df
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/address-manager/index.d.ts +2 -1
- package/dist/src/address-manager/index.d.ts.map +1 -1
- package/dist/src/address-manager/index.js +1 -1
- package/dist/src/address-manager/index.js.map +1 -1
- package/dist/src/circuit/auto-relay.d.ts.map +1 -1
- package/dist/src/circuit/auto-relay.js +7 -6
- package/dist/src/circuit/auto-relay.js.map +1 -1
- package/dist/src/circuit/circuit/hop.d.ts +1 -1
- package/dist/src/circuit/circuit/hop.d.ts.map +1 -1
- package/dist/src/circuit/circuit/hop.js +4 -4
- package/dist/src/circuit/circuit/hop.js.map +1 -1
- package/dist/src/circuit/index.d.ts +1 -1
- package/dist/src/circuit/index.d.ts.map +1 -1
- package/dist/src/circuit/listener.d.ts +3 -3
- package/dist/src/circuit/listener.d.ts.map +1 -1
- package/dist/src/circuit/listener.js +10 -2
- package/dist/src/circuit/listener.js.map +1 -1
- package/dist/src/circuit/pb/index.d.ts +5 -4
- package/dist/src/circuit/pb/index.d.ts.map +1 -1
- package/dist/src/circuit/pb/index.js +28 -2
- package/dist/src/circuit/pb/index.js.map +1 -1
- package/dist/src/circuit/transport.d.ts.map +1 -1
- package/dist/src/circuit/transport.js +7 -5
- package/dist/src/circuit/transport.js.map +1 -1
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +5 -7
- package/dist/src/config.js.map +1 -1
- package/dist/src/connection-manager/auto-dialler.d.ts +1 -1
- package/dist/src/connection-manager/auto-dialler.d.ts.map +1 -1
- package/dist/src/connection-manager/auto-dialler.js +4 -4
- package/dist/src/connection-manager/auto-dialler.js.map +1 -1
- package/dist/src/{dialer → connection-manager/dialer}/auto-dialer.d.ts +2 -0
- package/dist/src/connection-manager/dialer/auto-dialer.d.ts.map +1 -0
- package/dist/src/connection-manager/dialer/auto-dialer.js +37 -0
- package/dist/src/connection-manager/dialer/auto-dialer.js.map +1 -0
- package/dist/src/{dialer → connection-manager/dialer}/dial-request.d.ts +2 -2
- package/dist/src/connection-manager/dialer/dial-request.d.ts.map +1 -0
- package/dist/src/{dialer → connection-manager/dialer}/dial-request.js +1 -1
- package/dist/src/connection-manager/dialer/dial-request.js.map +1 -0
- package/dist/src/{dialer → connection-manager/dialer}/index.d.ts +37 -8
- package/dist/src/connection-manager/dialer/index.d.ts.map +1 -0
- package/dist/src/{dialer → connection-manager/dialer}/index.js +10 -23
- package/dist/src/connection-manager/dialer/index.js.map +1 -0
- package/dist/src/connection-manager/index.d.ts +57 -26
- package/dist/src/connection-manager/index.d.ts.map +1 -1
- package/dist/src/connection-manager/index.js +80 -42
- package/dist/src/connection-manager/index.js.map +1 -1
- package/dist/src/connection-manager/latency-monitor.d.ts +1 -1
- package/dist/src/connection-manager/latency-monitor.d.ts.map +1 -1
- package/dist/src/connection-manager/latency-monitor.js +1 -1
- package/dist/src/connection-manager/latency-monitor.js.map +1 -1
- package/dist/src/connection-manager/visibility-change-emitter.d.ts +1 -1
- package/dist/src/connection-manager/visibility-change-emitter.d.ts.map +1 -1
- package/dist/src/connection-manager/visibility-change-emitter.js +1 -1
- package/dist/src/connection-manager/visibility-change-emitter.js.map +1 -1
- package/dist/src/content-routing/index.d.ts +2 -1
- package/dist/src/content-routing/index.d.ts.map +1 -1
- package/dist/src/content-routing/index.js.map +1 -1
- package/dist/src/dht/dummy-dht.d.ts +4 -1
- package/dist/src/dht/dummy-dht.d.ts.map +1 -1
- package/dist/src/dht/dummy-dht.js +8 -1
- package/dist/src/dht/dummy-dht.js.map +1 -1
- package/dist/src/fetch/index.d.ts +1 -1
- package/dist/src/fetch/index.d.ts.map +1 -1
- package/dist/src/fetch/index.js +1 -1
- package/dist/src/fetch/index.js.map +1 -1
- package/dist/src/fetch/pb/proto.d.ts +4 -3
- package/dist/src/fetch/pb/proto.d.ts.map +1 -1
- package/dist/src/fetch/pb/proto.js +7 -1
- package/dist/src/fetch/pb/proto.js.map +1 -1
- package/dist/src/identify/index.d.ts +1 -1
- package/dist/src/identify/index.d.ts.map +1 -1
- package/dist/src/identify/index.js +4 -4
- package/dist/src/identify/index.js.map +1 -1
- package/dist/src/identify/pb/message.d.ts +2 -1
- package/dist/src/identify/pb/message.d.ts.map +1 -1
- package/dist/src/identify/pb/message.js.map +1 -1
- package/dist/src/index.d.ts +7 -24
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/insecure/pb/proto.d.ts +4 -3
- package/dist/src/insecure/pb/proto.d.ts.map +1 -1
- package/dist/src/insecure/pb/proto.js +8 -1
- package/dist/src/insecure/pb/proto.js.map +1 -1
- package/dist/src/keychain/index.d.ts +0 -1
- package/dist/src/keychain/index.d.ts.map +1 -1
- package/dist/src/keychain/index.js +0 -1
- package/dist/src/keychain/index.js.map +1 -1
- package/dist/src/libp2p.d.ts +4 -2
- package/dist/src/libp2p.d.ts.map +1 -1
- package/dist/src/libp2p.js +57 -43
- package/dist/src/libp2p.js.map +1 -1
- package/dist/src/metrics/index.d.ts +1 -1
- package/dist/src/metrics/index.d.ts.map +1 -1
- package/dist/src/metrics/stats.d.ts +1 -1
- package/dist/src/metrics/stats.d.ts.map +1 -1
- package/dist/src/metrics/stats.js +1 -1
- package/dist/src/metrics/stats.js.map +1 -1
- package/dist/src/nat-manager.d.ts +6 -3
- package/dist/src/nat-manager.d.ts.map +1 -1
- package/dist/src/nat-manager.js +6 -3
- package/dist/src/nat-manager.js.map +1 -1
- package/dist/src/peer-record-updater.d.ts +1 -1
- package/dist/src/peer-record-updater.d.ts.map +1 -1
- package/dist/src/peer-routing.d.ts +2 -1
- package/dist/src/peer-routing.d.ts.map +1 -1
- package/dist/src/peer-routing.js.map +1 -1
- package/dist/src/ping/index.d.ts +1 -1
- package/dist/src/ping/index.d.ts.map +1 -1
- package/dist/src/ping/index.js +2 -1
- package/dist/src/ping/index.js.map +1 -1
- package/dist/src/pnet/index.d.ts +1 -0
- package/dist/src/pnet/index.d.ts.map +1 -1
- package/dist/src/pnet/index.js +1 -0
- package/dist/src/pnet/index.js.map +1 -1
- package/dist/src/pnet/key-generator.d.ts +1 -1
- package/dist/src/pnet/key-generator.d.ts.map +1 -1
- package/dist/src/pnet/key-generator.js +1 -1
- package/dist/src/pnet/key-generator.js.map +1 -1
- package/dist/src/pubsub/dummy-pubsub.d.ts +1 -1
- package/dist/src/pubsub/dummy-pubsub.d.ts.map +1 -1
- package/dist/src/pubsub/dummy-pubsub.js +1 -1
- package/dist/src/pubsub/dummy-pubsub.js.map +1 -1
- package/dist/src/registrar.d.ts +0 -1
- package/dist/src/registrar.d.ts.map +1 -1
- package/dist/src/registrar.js +2 -17
- package/dist/src/registrar.js.map +1 -1
- package/dist/src/transport-manager.d.ts +3 -1
- package/dist/src/transport-manager.d.ts.map +1 -1
- package/dist/src/transport-manager.js +1 -1
- package/dist/src/transport-manager.js.map +1 -1
- package/dist/src/upgrader.d.ts +1 -1
- package/dist/src/upgrader.d.ts.map +1 -1
- package/dist/src/upgrader.js +1 -1
- package/dist/src/upgrader.js.map +1 -1
- package/package.json +16 -25
- package/src/address-manager/index.ts +2 -1
- package/src/circuit/auto-relay.ts +8 -6
- package/src/circuit/circuit/hop.ts +5 -5
- package/src/circuit/index.ts +1 -1
- package/src/circuit/listener.ts +18 -5
- package/src/circuit/pb/index.ts +33 -4
- package/src/circuit/transport.ts +8 -5
- package/src/config.ts +5 -7
- package/src/connection-manager/auto-dialler.ts +5 -5
- package/src/{dialer → connection-manager/dialer}/auto-dialer.ts +23 -4
- package/src/{dialer → connection-manager/dialer}/dial-request.ts +4 -4
- package/src/{dialer → connection-manager/dialer}/index.ts +48 -37
- package/src/connection-manager/index.ts +146 -60
- package/src/connection-manager/latency-monitor.ts +1 -1
- package/src/connection-manager/visibility-change-emitter.ts +1 -1
- package/src/content-routing/index.ts +2 -1
- package/src/dht/dummy-dht.ts +10 -1
- package/src/fetch/index.ts +2 -2
- package/src/fetch/pb/proto.ts +10 -3
- package/src/identify/index.ts +5 -5
- package/src/identify/pb/message.ts +2 -1
- package/src/index.ts +7 -28
- package/src/insecure/pb/proto.ts +11 -4
- package/src/keychain/index.ts +0 -1
- package/src/libp2p.ts +68 -49
- package/src/metrics/index.ts +1 -1
- package/src/metrics/stats.ts +1 -1
- package/src/nat-manager.ts +8 -4
- package/src/peer-record-updater.ts +1 -1
- package/src/peer-routing.ts +2 -1
- package/src/ping/index.ts +3 -2
- package/src/pnet/index.ts +2 -0
- package/src/pnet/key-generator.ts +1 -1
- package/src/pubsub/dummy-pubsub.ts +1 -1
- package/src/registrar.ts +3 -19
- package/src/transport-manager.ts +3 -1
- package/src/upgrader.ts +1 -1
- package/dist/src/dialer/auto-dialer.d.ts.map +0 -1
- package/dist/src/dialer/auto-dialer.js +0 -24
- package/dist/src/dialer/auto-dialer.js.map +0 -1
- package/dist/src/dialer/dial-request.d.ts.map +0 -1
- package/dist/src/dialer/dial-request.js.map +0 -1
- package/dist/src/dialer/index.d.ts.map +0 -1
- package/dist/src/dialer/index.js.map +0 -1
package/src/libp2p.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { logger } from '@libp2p/logger'
|
|
2
|
-
import { AbortOptions
|
|
2
|
+
import type { AbortOptions } from '@libp2p/interfaces'
|
|
3
|
+
import { EventEmitter, CustomEvent } from '@libp2p/interfaces/events'
|
|
4
|
+
import { Startable, isStartable } from '@libp2p/interfaces/startable'
|
|
3
5
|
import type { Multiaddr } from '@multiformats/multiaddr'
|
|
4
6
|
import { MemoryDatastore } from 'datastore-core/memory'
|
|
5
7
|
import { DefaultPeerRouting } from './peer-routing.js'
|
|
@@ -11,7 +13,6 @@ import { DefaultConnectionManager } from './connection-manager/index.js'
|
|
|
11
13
|
import { AutoDialler } from './connection-manager/auto-dialler.js'
|
|
12
14
|
import { Circuit } from './circuit/transport.js'
|
|
13
15
|
import { Relay } from './circuit/index.js'
|
|
14
|
-
import { DefaultDialer } from './dialer/index.js'
|
|
15
16
|
import { KeyChain } from './keychain/index.js'
|
|
16
17
|
import { DefaultMetrics } from './metrics/index.js'
|
|
17
18
|
import { DefaultTransportManager } from './transport-manager.js'
|
|
@@ -25,14 +26,15 @@ import { PeerRecordUpdater } from './peer-record-updater.js'
|
|
|
25
26
|
import { DHTPeerRouting } from './dht/dht-peer-routing.js'
|
|
26
27
|
import { PersistentPeerStore } from '@libp2p/peer-store'
|
|
27
28
|
import { DHTContentRouting } from './dht/dht-content-routing.js'
|
|
28
|
-
import { AutoDialer } from './dialer/auto-dialer.js'
|
|
29
|
+
import { AutoDialer } from './connection-manager/dialer/auto-dialer.js'
|
|
29
30
|
import { Initializable, Components, isInitializable } from '@libp2p/interfaces/components'
|
|
30
31
|
import type { PeerId } from '@libp2p/interfaces/peer-id'
|
|
31
32
|
import type { Connection } from '@libp2p/interfaces/connection'
|
|
32
33
|
import type { PeerRouting } from '@libp2p/interfaces/peer-routing'
|
|
33
34
|
import type { ContentRouting } from '@libp2p/interfaces/content-routing'
|
|
34
35
|
import type { PubSub } from '@libp2p/interfaces/pubsub'
|
|
35
|
-
import type {
|
|
36
|
+
import type { Registrar, StreamHandler } from '@libp2p/interfaces/registrar'
|
|
37
|
+
import type { ConnectionManager } from '@libp2p/interfaces/connection-manager'
|
|
36
38
|
import type { PeerInfo } from '@libp2p/interfaces/peer-info'
|
|
37
39
|
import type { Libp2p, Libp2pEvents, Libp2pInit, Libp2pOptions } from './index.js'
|
|
38
40
|
import { validateConfig } from './config.js'
|
|
@@ -46,6 +48,7 @@ import { unmarshalPublicKey } from '@libp2p/crypto/keys'
|
|
|
46
48
|
import type { Metrics } from '@libp2p/interfaces/metrics'
|
|
47
49
|
import { DummyDHT } from './dht/dummy-dht.js'
|
|
48
50
|
import { DummyPubSub } from './pubsub/dummy-pubsub.js'
|
|
51
|
+
import { PeerSet } from '@libp2p/peer-collections'
|
|
49
52
|
|
|
50
53
|
const log = logger('libp2p')
|
|
51
54
|
|
|
@@ -72,34 +75,40 @@ export class Libp2pNode extends EventEmitter<Libp2pEvents> implements Libp2p {
|
|
|
72
75
|
constructor (init: Libp2pInit) {
|
|
73
76
|
super()
|
|
74
77
|
|
|
75
|
-
this.services = []
|
|
76
78
|
this.initializables = []
|
|
77
79
|
this.started = false
|
|
78
80
|
this.peerId = init.peerId
|
|
79
81
|
this.components = new Components({
|
|
80
82
|
peerId: init.peerId,
|
|
81
|
-
datastore: init.datastore ?? new MemoryDatastore()
|
|
83
|
+
datastore: init.datastore ?? new MemoryDatastore(),
|
|
84
|
+
connectionGater: {
|
|
85
|
+
denyDialPeer: async () => await Promise.resolve(false),
|
|
86
|
+
denyDialMultiaddr: async () => await Promise.resolve(false),
|
|
87
|
+
denyInboundConnection: async () => await Promise.resolve(false),
|
|
88
|
+
denyOutboundConnection: async () => await Promise.resolve(false),
|
|
89
|
+
denyInboundEncryptedConnection: async () => await Promise.resolve(false),
|
|
90
|
+
denyOutboundEncryptedConnection: async () => await Promise.resolve(false),
|
|
91
|
+
denyInboundUpgradedConnection: async () => await Promise.resolve(false),
|
|
92
|
+
denyOutboundUpgradedConnection: async () => await Promise.resolve(false),
|
|
93
|
+
filterMultiaddrForPeer: async () => await Promise.resolve(true),
|
|
94
|
+
...init.connectionGater
|
|
95
|
+
}
|
|
82
96
|
})
|
|
97
|
+
this.components.setPeerStore(new PersistentPeerStore({
|
|
98
|
+
addressFilter: this.components.getConnectionGater().filterMultiaddrForPeer,
|
|
99
|
+
...init.peerStore
|
|
100
|
+
}))
|
|
101
|
+
|
|
102
|
+
this.services = [
|
|
103
|
+
this.components
|
|
104
|
+
]
|
|
83
105
|
|
|
84
106
|
// Create Metrics
|
|
85
107
|
if (init.metrics.enabled) {
|
|
86
|
-
this.metrics = this.components.setMetrics(
|
|
108
|
+
this.metrics = this.components.setMetrics(new DefaultMetrics(init.metrics))
|
|
87
109
|
}
|
|
88
110
|
|
|
89
|
-
this.components.
|
|
90
|
-
denyDialPeer: async () => await Promise.resolve(false),
|
|
91
|
-
denyDialMultiaddr: async () => await Promise.resolve(false),
|
|
92
|
-
denyInboundConnection: async () => await Promise.resolve(false),
|
|
93
|
-
denyOutboundConnection: async () => await Promise.resolve(false),
|
|
94
|
-
denyInboundEncryptedConnection: async () => await Promise.resolve(false),
|
|
95
|
-
denyOutboundEncryptedConnection: async () => await Promise.resolve(false),
|
|
96
|
-
denyInboundUpgradedConnection: async () => await Promise.resolve(false),
|
|
97
|
-
denyOutboundUpgradedConnection: async () => await Promise.resolve(false),
|
|
98
|
-
filterMultiaddrForPeer: async () => await Promise.resolve(true),
|
|
99
|
-
...init.connectionGater
|
|
100
|
-
}))
|
|
101
|
-
|
|
102
|
-
this.peerStore = this.components.setPeerStore(this.configureComponent(new PersistentPeerStore(this.components, init.peerStore)))
|
|
111
|
+
this.peerStore = this.components.getPeerStore()
|
|
103
112
|
|
|
104
113
|
this.peerStore.addEventListener('peer', evt => {
|
|
105
114
|
const { detail: peerData } = evt
|
|
@@ -109,32 +118,30 @@ export class Libp2pNode extends EventEmitter<Libp2pEvents> implements Libp2p {
|
|
|
109
118
|
|
|
110
119
|
// Set up connection protector if configured
|
|
111
120
|
if (init.connectionProtector != null) {
|
|
112
|
-
this.components.setConnectionProtector(
|
|
121
|
+
this.components.setConnectionProtector(init.connectionProtector)
|
|
113
122
|
}
|
|
114
123
|
|
|
115
124
|
// Set up the Upgrader
|
|
116
|
-
this.components.setUpgrader(
|
|
125
|
+
this.components.setUpgrader(new DefaultUpgrader(this.components, {
|
|
117
126
|
connectionEncryption: (init.connectionEncryption ?? []).map(component => this.configureComponent(component)),
|
|
118
127
|
muxers: (init.streamMuxers ?? []).map(component => this.configureComponent(component))
|
|
119
|
-
}))
|
|
128
|
+
}))
|
|
120
129
|
|
|
121
130
|
// Create the Connection Manager
|
|
122
|
-
this.connectionManager = this.components.setConnectionManager(
|
|
131
|
+
this.connectionManager = this.components.setConnectionManager(new DefaultConnectionManager(init.connectionManager))
|
|
123
132
|
|
|
124
133
|
// Create the Registrar
|
|
125
|
-
this.registrar = this.components.setRegistrar(
|
|
134
|
+
this.registrar = this.components.setRegistrar(new DefaultRegistrar(this.components))
|
|
126
135
|
|
|
127
136
|
// Setup the transport manager
|
|
128
|
-
this.components.setTransportManager(
|
|
137
|
+
this.components.setTransportManager(new DefaultTransportManager(this.components, init.transportManager))
|
|
129
138
|
|
|
130
139
|
// Addresses {listen, announce, noAnnounce}
|
|
131
|
-
this.components.setAddressManager(
|
|
140
|
+
this.components.setAddressManager(new DefaultAddressManager(this.components, init.addresses))
|
|
132
141
|
|
|
133
142
|
// update our peer record when addresses change
|
|
134
143
|
this.configureComponent(new PeerRecordUpdater(this.components))
|
|
135
144
|
|
|
136
|
-
this.components.setDialer(this.configureComponent(new DefaultDialer(this.components, init.dialer)))
|
|
137
|
-
|
|
138
145
|
this.configureComponent(new AutoDialler(this.components, {
|
|
139
146
|
enabled: init.connectionManager.autoDial,
|
|
140
147
|
minConnections: init.connectionManager.minConnections,
|
|
@@ -169,14 +176,14 @@ export class Libp2pNode extends EventEmitter<Libp2pEvents> implements Libp2p {
|
|
|
169
176
|
|
|
170
177
|
// dht provided components (peerRouting, contentRouting, dht)
|
|
171
178
|
if (init.dht != null) {
|
|
172
|
-
this.dht = this.components.setDHT(
|
|
179
|
+
this.dht = this.components.setDHT(init.dht)
|
|
173
180
|
} else {
|
|
174
181
|
this.dht = new DummyDHT()
|
|
175
182
|
}
|
|
176
183
|
|
|
177
184
|
// Create pubsub if provided
|
|
178
185
|
if (init.pubsub != null) {
|
|
179
|
-
this.pubsub = this.components.setPubSub(
|
|
186
|
+
this.pubsub = this.components.setPubSub(init.pubsub)
|
|
180
187
|
} else {
|
|
181
188
|
this.pubsub = new DummyPubSub()
|
|
182
189
|
}
|
|
@@ -216,7 +223,7 @@ export class Libp2pNode extends EventEmitter<Libp2pEvents> implements Libp2p {
|
|
|
216
223
|
this.components.getTransportManager().add(this.configureComponent(new Circuit()))
|
|
217
224
|
|
|
218
225
|
this.configureComponent(new Relay(this.components, {
|
|
219
|
-
addressSorter: init.
|
|
226
|
+
addressSorter: init.connectionManager.addressSorter,
|
|
220
227
|
...init.relay
|
|
221
228
|
}))
|
|
222
229
|
}
|
|
@@ -231,7 +238,8 @@ export class Libp2pNode extends EventEmitter<Libp2pEvents> implements Libp2p {
|
|
|
231
238
|
|
|
232
239
|
const autoDialer = this.configureComponent(new AutoDialer(this.components, {
|
|
233
240
|
enabled: init.connectionManager.autoDial !== false,
|
|
234
|
-
minConnections: init.connectionManager.minConnections
|
|
241
|
+
minConnections: init.connectionManager.minConnections,
|
|
242
|
+
dialTimeout: init.connectionManager.dialTimeout ?? 30000
|
|
235
243
|
}))
|
|
236
244
|
|
|
237
245
|
this.addEventListener('peer:discovery', evt => {
|
|
@@ -379,24 +387,41 @@ export class Libp2pNode extends EventEmitter<Libp2pEvents> implements Libp2p {
|
|
|
379
387
|
}
|
|
380
388
|
|
|
381
389
|
getConnections (peerId?: PeerId): Connection[] {
|
|
382
|
-
if (peerId == null) {
|
|
383
|
-
return this.components.getConnectionManager().getConnectionList()
|
|
384
|
-
}
|
|
385
|
-
|
|
386
390
|
return this.components.getConnectionManager().getConnections(peerId)
|
|
387
391
|
}
|
|
388
392
|
|
|
389
393
|
getPeers (): PeerId[] {
|
|
390
|
-
|
|
391
|
-
|
|
394
|
+
const peerSet = new PeerSet()
|
|
395
|
+
|
|
396
|
+
for (const conn of this.components.getConnectionManager().getConnections()) {
|
|
397
|
+
peerSet.add(conn.remotePeer)
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
return Array.from(peerSet)
|
|
392
401
|
}
|
|
393
402
|
|
|
394
403
|
async dial (peer: PeerId | Multiaddr, options: AbortOptions = {}): Promise<Connection> {
|
|
395
|
-
|
|
404
|
+
const { id, multiaddrs } = getPeer(peer)
|
|
405
|
+
|
|
406
|
+
await this.components.getPeerStore().addressBook.add(id, multiaddrs)
|
|
407
|
+
|
|
408
|
+
return await this.components.getConnectionManager().openConnection(id, options)
|
|
396
409
|
}
|
|
397
410
|
|
|
398
411
|
async dialProtocol (peer: PeerId | Multiaddr, protocols: string | string[], options: AbortOptions = {}) {
|
|
399
|
-
|
|
412
|
+
if (protocols == null) {
|
|
413
|
+
throw errCode(new Error('no protocols were provided to open a stream'), codes.ERR_INVALID_PROTOCOLS_FOR_STREAM)
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
protocols = Array.isArray(protocols) ? protocols : [protocols]
|
|
417
|
+
|
|
418
|
+
if (protocols.length === 0) {
|
|
419
|
+
throw errCode(new Error('no protocols were provided to open a stream'), codes.ERR_INVALID_PROTOCOLS_FOR_STREAM)
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
const connection = await this.dial(peer)
|
|
423
|
+
|
|
424
|
+
return await connection.newStream(protocols)
|
|
400
425
|
}
|
|
401
426
|
|
|
402
427
|
getMultiaddrs (): Multiaddr[] {
|
|
@@ -406,13 +431,7 @@ export class Libp2pNode extends EventEmitter<Libp2pEvents> implements Libp2p {
|
|
|
406
431
|
async hangUp (peer: PeerId | Multiaddr | string): Promise<void> {
|
|
407
432
|
const { id } = getPeer(peer)
|
|
408
433
|
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
await Promise.all(
|
|
412
|
-
connections.map(async connection => {
|
|
413
|
-
return await connection.close()
|
|
414
|
-
})
|
|
415
|
-
)
|
|
434
|
+
await this.components.getConnectionManager().closeConnections(id)
|
|
416
435
|
}
|
|
417
436
|
|
|
418
437
|
/**
|
package/src/metrics/index.ts
CHANGED
|
@@ -5,7 +5,7 @@ import { METRICS as defaultOptions } from '../constants.js'
|
|
|
5
5
|
import { DefaultStats, StatsInit } from './stats.js'
|
|
6
6
|
import type { ComponentMetricsUpdate, Metrics, Stats, TrackStreamOptions } from '@libp2p/interfaces/metrics'
|
|
7
7
|
import type { PeerId } from '@libp2p/interfaces/peer-id'
|
|
8
|
-
import type { Startable } from '@libp2p/interfaces'
|
|
8
|
+
import type { Startable } from '@libp2p/interfaces/startable'
|
|
9
9
|
import type { Duplex } from 'it-stream-types'
|
|
10
10
|
|
|
11
11
|
const initialCounters: ['dataReceived', 'dataSent'] = [
|
package/src/metrics/stats.ts
CHANGED
package/src/nat-manager.ts
CHANGED
|
@@ -7,7 +7,7 @@ import * as pkg from './version.js'
|
|
|
7
7
|
import errCode from 'err-code'
|
|
8
8
|
import { codes } from './errors.js'
|
|
9
9
|
import { isLoopback } from '@libp2p/utils/multiaddr/is-loopback'
|
|
10
|
-
import type { Startable } from '@libp2p/interfaces'
|
|
10
|
+
import type { Startable } from '@libp2p/interfaces/startable'
|
|
11
11
|
import type { Components } from '@libp2p/interfaces/components'
|
|
12
12
|
|
|
13
13
|
const log = logger('libp2p:nat')
|
|
@@ -94,10 +94,14 @@ export class NatManager implements Startable {
|
|
|
94
94
|
return this.started
|
|
95
95
|
}
|
|
96
96
|
|
|
97
|
+
start () {}
|
|
98
|
+
|
|
97
99
|
/**
|
|
98
|
-
*
|
|
100
|
+
* Attempt to use uPnP to configure port mapping using the current gateway.
|
|
101
|
+
*
|
|
102
|
+
* Run after start to ensure the transport manager has all addresses configured.
|
|
99
103
|
*/
|
|
100
|
-
|
|
104
|
+
afterStart () {
|
|
101
105
|
if (isBrowser || !this.enabled || this.started) {
|
|
102
106
|
return
|
|
103
107
|
}
|
|
@@ -105,7 +109,7 @@ export class NatManager implements Startable {
|
|
|
105
109
|
this.started = true
|
|
106
110
|
|
|
107
111
|
// done async to not slow down startup
|
|
108
|
-
this._start().catch((err) => {
|
|
112
|
+
void this._start().catch((err) => {
|
|
109
113
|
// hole punching errors are non-fatal
|
|
110
114
|
log.error(err)
|
|
111
115
|
})
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { RecordEnvelope, PeerRecord } from '@libp2p/peer-record'
|
|
2
2
|
import type { Components } from '@libp2p/interfaces/components'
|
|
3
|
-
import type { Startable } from '@libp2p/interfaces'
|
|
3
|
+
import type { Startable } from '@libp2p/interfaces/startable'
|
|
4
4
|
import { logger } from '@libp2p/logger'
|
|
5
5
|
import { protocols } from '@multiformats/multiaddr'
|
|
6
6
|
|
package/src/peer-routing.ts
CHANGED
|
@@ -21,7 +21,8 @@ import {
|
|
|
21
21
|
import { setMaxListeners } from 'events'
|
|
22
22
|
import type { PeerId } from '@libp2p/interfaces/peer-id'
|
|
23
23
|
import type { PeerRouting } from '@libp2p/interfaces/peer-routing'
|
|
24
|
-
import type { AbortOptions
|
|
24
|
+
import type { AbortOptions } from '@libp2p/interfaces'
|
|
25
|
+
import type { Startable } from '@libp2p/interfaces/startable'
|
|
25
26
|
import type { PeerInfo } from '@libp2p/interfaces/peer-info'
|
|
26
27
|
import type { Components } from '@libp2p/interfaces/components'
|
|
27
28
|
|
package/src/ping/index.ts
CHANGED
|
@@ -8,7 +8,7 @@ import { equals as uint8ArrayEquals } from 'uint8arrays/equals'
|
|
|
8
8
|
import { PROTOCOL_NAME, PING_LENGTH, PROTOCOL_VERSION } from './constants.js'
|
|
9
9
|
import type { IncomingStreamData } from '@libp2p/interfaces/registrar'
|
|
10
10
|
import type { PeerId } from '@libp2p/interfaces/peer-id'
|
|
11
|
-
import type { Startable } from '@libp2p/interfaces'
|
|
11
|
+
import type { Startable } from '@libp2p/interfaces/startable'
|
|
12
12
|
import type { Components } from '@libp2p/interfaces/components'
|
|
13
13
|
|
|
14
14
|
const log = logger('libp2p:ping')
|
|
@@ -63,7 +63,8 @@ export class PingService implements Startable {
|
|
|
63
63
|
async ping (peer: PeerId): Promise<number> {
|
|
64
64
|
log('dialing %s to %p', this.protocol, peer)
|
|
65
65
|
|
|
66
|
-
const
|
|
66
|
+
const connection = await this.components.getConnectionManager().openConnection(peer)
|
|
67
|
+
const { stream } = await connection.newStream([this.protocol])
|
|
67
68
|
const start = Date.now()
|
|
68
69
|
const data = randomBytes(PING_LENGTH)
|
|
69
70
|
|
package/src/pnet/index.ts
CHANGED
|
@@ -8,7 +8,7 @@ import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'
|
|
|
8
8
|
* @param {Uint8Array} bytes - An object to write the psk into
|
|
9
9
|
* @returns {void}
|
|
10
10
|
*/
|
|
11
|
-
export function
|
|
11
|
+
export function generateKey (bytes: Uint8Array) {
|
|
12
12
|
const psk = uint8ArrayToString(randomBytes(KEY_LENGTH), 'base16')
|
|
13
13
|
const key = uint8ArrayFromString('/key/swarm/psk/1.0.0/\n/base16/\n' + psk)
|
|
14
14
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EventEmitter } from '@libp2p/interfaces'
|
|
1
|
+
import { EventEmitter } from '@libp2p/interfaces/events'
|
|
2
2
|
import type { PeerId } from '@libp2p/interfaces/peer-id'
|
|
3
3
|
import type { PublishResult, PubSub, PubSubEvents, StrictNoSign, StrictSign } from '@libp2p/interfaces/pubsub'
|
|
4
4
|
import errCode from 'err-code'
|
package/src/registrar.ts
CHANGED
|
@@ -33,11 +33,11 @@ export class DefaultRegistrar implements Registrar {
|
|
|
33
33
|
this.components = components
|
|
34
34
|
|
|
35
35
|
this._onDisconnect = this._onDisconnect.bind(this)
|
|
36
|
-
this._onConnect = this._onConnect.bind(this)
|
|
37
36
|
this._onProtocolChange = this._onProtocolChange.bind(this)
|
|
38
37
|
|
|
39
38
|
this.components.getConnectionManager().addEventListener('peer:disconnect', this._onDisconnect)
|
|
40
|
-
|
|
39
|
+
|
|
40
|
+
// happens after identify
|
|
41
41
|
this.components.getPeerStore().addEventListener('change:protocols', this._onProtocolChange)
|
|
42
42
|
}
|
|
43
43
|
|
|
@@ -159,22 +159,6 @@ export class DefaultRegistrar implements Registrar {
|
|
|
159
159
|
})
|
|
160
160
|
}
|
|
161
161
|
|
|
162
|
-
_onConnect (evt: CustomEvent<Connection>) {
|
|
163
|
-
const connection = evt.detail
|
|
164
|
-
|
|
165
|
-
void this.components.getPeerStore().protoBook.get(connection.remotePeer)
|
|
166
|
-
.then(peerProtocols => {
|
|
167
|
-
for (const { topology, protocols } of this.topologies.values()) {
|
|
168
|
-
if (supportsProtocol(peerProtocols, protocols)) {
|
|
169
|
-
topology.onConnect(connection.remotePeer, connection)
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
})
|
|
173
|
-
.catch(err => {
|
|
174
|
-
log.error(err)
|
|
175
|
-
})
|
|
176
|
-
}
|
|
177
|
-
|
|
178
162
|
/**
|
|
179
163
|
* Check if a new peer support the multicodecs for this topology
|
|
180
164
|
*/
|
|
@@ -192,7 +176,7 @@ export class DefaultRegistrar implements Registrar {
|
|
|
192
176
|
|
|
193
177
|
for (const { topology, protocols } of this.topologies.values()) {
|
|
194
178
|
if (supportsProtocol(added, protocols)) {
|
|
195
|
-
const connection = this.components.getConnectionManager().
|
|
179
|
+
const connection = this.components.getConnectionManager().getConnections(peerId)[0]
|
|
196
180
|
|
|
197
181
|
if (connection == null) {
|
|
198
182
|
continue
|
package/src/transport-manager.ts
CHANGED
|
@@ -5,7 +5,9 @@ import errCode from 'err-code'
|
|
|
5
5
|
import type { Listener, Transport, TransportManager, TransportManagerEvents } from '@libp2p/interfaces/transport'
|
|
6
6
|
import type { Multiaddr } from '@multiformats/multiaddr'
|
|
7
7
|
import type { Connection } from '@libp2p/interfaces/connection'
|
|
8
|
-
import { AbortOptions
|
|
8
|
+
import type { AbortOptions } from '@libp2p/interfaces'
|
|
9
|
+
import { CustomEvent, EventEmitter } from '@libp2p/interfaces/events'
|
|
10
|
+
import type { Startable } from '@libp2p/interfaces/startable'
|
|
9
11
|
import type { Components } from '@libp2p/interfaces/components'
|
|
10
12
|
import { trackedMap } from '@libp2p/tracked-map'
|
|
11
13
|
|
package/src/upgrader.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { pipe } from 'it-pipe'
|
|
|
6
6
|
import mutableProxy from 'mutable-proxy'
|
|
7
7
|
import { codes } from './errors.js'
|
|
8
8
|
import { createConnection } from '@libp2p/connection'
|
|
9
|
-
import { CustomEvent, EventEmitter } from '@libp2p/interfaces'
|
|
9
|
+
import { CustomEvent, EventEmitter } from '@libp2p/interfaces/events'
|
|
10
10
|
import { peerIdFromString } from '@libp2p/peer-id'
|
|
11
11
|
import type { Connection, ProtocolStream, Stream } from '@libp2p/interfaces/connection'
|
|
12
12
|
import type { ConnectionEncrypter, SecuredConnection } from '@libp2p/interfaces/connection-encrypter'
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auto-dialer.d.ts","sourceRoot":"","sources":["../../../src/dialer/auto-dialer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAE5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAI/D,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;gBAE1B,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc;IAMlD,MAAM,CAAE,GAAG,EAAE,WAAW,CAAC,QAAQ,CAAC;CAiB1C"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { logger } from '@libp2p/logger';
|
|
2
|
-
const log = logger('libp2p:dialer:auto-dialer');
|
|
3
|
-
export class AutoDialer {
|
|
4
|
-
constructor(components, init) {
|
|
5
|
-
this.components = components;
|
|
6
|
-
this.enabled = init.enabled;
|
|
7
|
-
this.minConnections = init.minConnections;
|
|
8
|
-
}
|
|
9
|
-
handle(evt) {
|
|
10
|
-
const { detail: peer } = evt;
|
|
11
|
-
// If auto dialing is on and we have no connection to the peer, check if we should dial
|
|
12
|
-
if (this.enabled && this.components.getConnectionManager().getConnection(peer.id) == null) {
|
|
13
|
-
const minConnections = this.minConnections ?? 0;
|
|
14
|
-
if (minConnections > this.components.getConnectionManager().getConnectionList().length) {
|
|
15
|
-
log('auto-dialing discovered peer %p', peer.id);
|
|
16
|
-
void this.components.getDialer().dial(peer.id)
|
|
17
|
-
.catch(err => {
|
|
18
|
-
log.error('could not connect to discovered peer %p with %o', peer.id, err);
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=auto-dialer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auto-dialer.js","sourceRoot":"","sources":["../../../src/dialer/auto-dialer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAGvC,MAAM,GAAG,GAAG,MAAM,CAAC,2BAA2B,CAAC,CAAA;AAO/C,MAAM,OAAO,UAAU;IAKrB,YAAa,UAAsB,EAAE,IAAoB;QACvD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAA;IAC3C,CAAC;IAEM,MAAM,CAAE,GAA0B;QACvC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAA;QAE5B,uFAAuF;QACvF,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE;YACzF,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,CAAC,CAAA;YAE/C,IAAI,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,iBAAiB,EAAE,CAAC,MAAM,EAAE;gBACtF,GAAG,CAAC,iCAAiC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;gBAE/C,KAAK,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;qBAC3C,KAAK,CAAC,GAAG,CAAC,EAAE;oBACX,GAAG,CAAC,KAAK,CAAC,iDAAiD,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;gBAC5E,CAAC,CAAC,CAAA;aACL;SACF;IACH,CAAC;CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dial-request.d.ts","sourceRoot":"","sources":["../../../src/dialer/dial-request.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAI/C,MAAM,WAAW,UAAU;IACzB,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;CAC3D;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,SAAS,EAAE,CAAA;IAClB,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,aAAa,CAAA;CACtB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IAEvC;;;;;;OAMG;gBACU,OAAO,EAAE,kBAAkB;IAYlC,GAAG,CAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;CA+D5D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dial-request.js","sourceRoot":"","sources":["../../../src/dialer/dial-request.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dialer/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAK5D,OAAO,EAAc,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAU3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAGxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAUnE,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,SAAS,EAAE,CAAA;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,WAAW,CAAA;IACxB,UAAU,EAAE,iBAAiB,CAAA;IAC7B,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAA;IAC7B,MAAM,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAA;CAC7B;AAED,qBAAa,aAAc,YAAW,MAAM,EAAE,SAAS;IACrD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACjC,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACtC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;IACzD,OAAO,CAAC,OAAO,CAAS;gBAEX,UAAU,EAAE,UAAU,EAAE,IAAI,GAAE,UAAe;IAwB1D,SAAS;IAIH,KAAK;IAIX;;OAEG;IACG,IAAI;IAkBV;;;;OAIG;IACG,IAAI,CAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;IAuDhF,YAAY,CAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,GAAE,YAAiB;IAgBtG;;;;OAIG;IACG,4BAA4B,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAmBtE;;;;;OAKG;IACG,iBAAiB,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAuC3D;;OAEG;IACH,kBAAkB,CAAE,UAAU,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,WAAW;IA+CpF,SAAS,CAAE,GAAG,EAAE,MAAM;IAOtB,YAAY,CAAE,KAAK,EAAE,MAAM;IAU3B;;OAEG;IACG,QAAQ,CAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAwBpD;;OAEG;IACG,cAAc,CAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;CAU3D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dialer/index.ts"],"names":[],"mappings":"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"}
|