@libp2p/kad-dht 14.1.2 → 14.1.3-339b7df88
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/README.md +1 -1
- package/dist/index.min.js +6 -3
- package/dist/src/content-fetching/index.d.ts +1 -0
- package/dist/src/content-fetching/index.d.ts.map +1 -1
- package/dist/src/content-fetching/index.js +1 -1
- package/dist/src/content-fetching/index.js.map +1 -1
- package/dist/src/kad-dht.d.ts.map +1 -1
- package/dist/src/kad-dht.js +4 -2
- package/dist/src/kad-dht.js.map +1 -1
- package/dist/src/peer-routing/index.d.ts +9 -5
- package/dist/src/peer-routing/index.d.ts.map +1 -1
- package/dist/src/peer-routing/index.js +25 -7
- package/dist/src/peer-routing/index.js.map +1 -1
- package/dist/src/providers.d.ts.map +1 -1
- package/dist/src/providers.js +5 -3
- package/dist/src/providers.js.map +1 -1
- package/dist/src/reprovider.js +1 -1
- package/dist/src/reprovider.js.map +1 -1
- package/dist/src/rpc/handlers/add-provider.d.ts +5 -1
- package/dist/src/rpc/handlers/add-provider.d.ts.map +1 -1
- package/dist/src/rpc/handlers/add-provider.js +14 -5
- package/dist/src/rpc/handlers/add-provider.js.map +1 -1
- package/dist/src/rpc/handlers/get-providers.d.ts +3 -2
- package/dist/src/rpc/handlers/get-providers.d.ts.map +1 -1
- package/dist/src/rpc/handlers/get-providers.js +16 -28
- package/dist/src/rpc/handlers/get-providers.js.map +1 -1
- package/dist/src/rpc/handlers/get-value.d.ts +1 -0
- package/dist/src/rpc/handlers/get-value.d.ts.map +1 -1
- package/dist/src/rpc/handlers/get-value.js +1 -1
- package/dist/src/rpc/handlers/get-value.js.map +1 -1
- package/dist/src/rpc/handlers/put-value.d.ts +1 -0
- package/dist/src/rpc/handlers/put-value.d.ts.map +1 -1
- package/dist/src/rpc/handlers/put-value.js +1 -1
- package/dist/src/rpc/handlers/put-value.js.map +1 -1
- package/dist/src/rpc/index.d.ts +1 -0
- package/dist/src/rpc/index.d.ts.map +1 -1
- package/dist/src/rpc/index.js.map +1 -1
- package/package.json +33 -33
- package/src/content-fetching/index.ts +2 -1
- package/src/kad-dht.ts +4 -2
- package/src/peer-routing/index.ts +38 -10
- package/src/providers.ts +5 -3
- package/src/reprovider.ts +1 -1
- package/src/rpc/handlers/add-provider.ts +18 -7
- package/src/rpc/handlers/get-providers.ts +18 -32
- package/src/rpc/handlers/get-value.ts +2 -1
- package/src/rpc/handlers/put-value.ts +2 -1
- package/src/rpc/index.ts +1 -0
- package/LICENSE +0 -4
- package/dist/typedoc-urls.json +0 -59
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { InvalidMessageError } from '@libp2p/interface'
|
|
2
|
+
import all from 'it-all'
|
|
3
|
+
import map from 'it-map'
|
|
2
4
|
import { CID } from 'multiformats/cid'
|
|
3
5
|
import { MessageType } from '../../message/dht.js'
|
|
4
6
|
import type { PeerInfoMapper } from '../../index.js'
|
|
@@ -17,11 +19,13 @@ export interface GetProvidersHandlerInit {
|
|
|
17
19
|
}
|
|
18
20
|
|
|
19
21
|
export interface GetProvidersHandlerComponents {
|
|
22
|
+
peerId: PeerId
|
|
20
23
|
peerStore: PeerStore
|
|
21
24
|
logger: ComponentLogger
|
|
22
25
|
}
|
|
23
26
|
|
|
24
27
|
export class GetProvidersHandler implements DHTMessageHandler {
|
|
28
|
+
private readonly peerId: PeerId
|
|
25
29
|
private readonly peerRouting: PeerRouting
|
|
26
30
|
private readonly providers: Providers
|
|
27
31
|
private readonly peerStore: PeerStore
|
|
@@ -32,6 +36,7 @@ export class GetProvidersHandler implements DHTMessageHandler {
|
|
|
32
36
|
const { peerRouting, providers, logPrefix } = init
|
|
33
37
|
|
|
34
38
|
this.log = components.logger.forComponent(`${logPrefix}:rpc:handlers:get-providers`)
|
|
39
|
+
this.peerId = components.peerId
|
|
35
40
|
this.peerStore = components.peerStore
|
|
36
41
|
this.peerRouting = peerRouting
|
|
37
42
|
this.providers = providers
|
|
@@ -52,27 +57,33 @@ export class GetProvidersHandler implements DHTMessageHandler {
|
|
|
52
57
|
|
|
53
58
|
this.log('%p asking for providers for %s', peerId, cid)
|
|
54
59
|
|
|
55
|
-
const [
|
|
56
|
-
this.providers.getProviders(cid),
|
|
57
|
-
|
|
60
|
+
const [providerPeers, closerPeers] = await Promise.all([
|
|
61
|
+
all(map(await this.providers.getProviders(cid), async (peerId) => {
|
|
62
|
+
const peer = await this.peerStore.get(peerId)
|
|
63
|
+
const info: PeerInfo = {
|
|
64
|
+
id: peer.id,
|
|
65
|
+
multiaddrs: peer.addresses.map(({ multiaddr }) => multiaddr)
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return info
|
|
69
|
+
})),
|
|
70
|
+
this.peerRouting.getCloserPeersOffline(msg.key, this.peerId)
|
|
58
71
|
])
|
|
59
72
|
|
|
60
|
-
const providerPeers = await this._getPeers(peers)
|
|
61
|
-
const closerPeers = await this._getPeers(closer.map(({ id }) => id))
|
|
62
73
|
const response: Message = {
|
|
63
74
|
type: MessageType.GET_PROVIDERS,
|
|
64
75
|
key: msg.key,
|
|
65
76
|
clusterLevel: msg.clusterLevel,
|
|
66
77
|
closer: closerPeers
|
|
67
78
|
.map(this.peerInfoMapper)
|
|
68
|
-
.filter(({ multiaddrs }) => multiaddrs.length)
|
|
79
|
+
.filter(({ id, multiaddrs }) => multiaddrs.length > 0)
|
|
69
80
|
.map(peerInfo => ({
|
|
70
81
|
id: peerInfo.id.toMultihash().bytes,
|
|
71
82
|
multiaddrs: peerInfo.multiaddrs.map(ma => ma.bytes)
|
|
72
83
|
})),
|
|
73
84
|
providers: providerPeers
|
|
74
85
|
.map(this.peerInfoMapper)
|
|
75
|
-
.filter(({ multiaddrs }) => multiaddrs.length)
|
|
86
|
+
.filter(({ id, multiaddrs }) => multiaddrs.length > 0)
|
|
76
87
|
.map(peerInfo => ({
|
|
77
88
|
id: peerInfo.id.toMultihash().bytes,
|
|
78
89
|
multiaddrs: peerInfo.multiaddrs.map(ma => ma.bytes)
|
|
@@ -87,29 +98,4 @@ export class GetProvidersHandler implements DHTMessageHandler {
|
|
|
87
98
|
async _getAddresses (peerId: PeerId): Promise<Multiaddr[]> {
|
|
88
99
|
return []
|
|
89
100
|
}
|
|
90
|
-
|
|
91
|
-
async _getPeers (peerIds: PeerId[]): Promise<PeerInfo[]> {
|
|
92
|
-
const output: PeerInfo[] = []
|
|
93
|
-
|
|
94
|
-
for (const peerId of peerIds) {
|
|
95
|
-
try {
|
|
96
|
-
const peer = await this.peerStore.get(peerId)
|
|
97
|
-
|
|
98
|
-
const peerAfterFilter = this.peerInfoMapper({
|
|
99
|
-
id: peerId,
|
|
100
|
-
multiaddrs: peer.addresses.map(({ multiaddr }) => multiaddr)
|
|
101
|
-
})
|
|
102
|
-
|
|
103
|
-
if (peerAfterFilter.multiaddrs.length > 0) {
|
|
104
|
-
output.push(peerAfterFilter)
|
|
105
|
-
}
|
|
106
|
-
} catch (err: any) {
|
|
107
|
-
if (err.name !== 'NotFoundError') {
|
|
108
|
-
throw err
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
return output
|
|
114
|
-
}
|
|
115
101
|
}
|
|
@@ -15,6 +15,7 @@ import type { Datastore } from 'interface-datastore'
|
|
|
15
15
|
export interface GetValueHandlerInit {
|
|
16
16
|
peerRouting: PeerRouting
|
|
17
17
|
logPrefix: string
|
|
18
|
+
datastorePrefix: string
|
|
18
19
|
}
|
|
19
20
|
|
|
20
21
|
export interface GetValueHandlerComponents {
|
|
@@ -32,7 +33,7 @@ export class GetValueHandler implements DHTMessageHandler {
|
|
|
32
33
|
|
|
33
34
|
constructor (components: GetValueHandlerComponents, init: GetValueHandlerInit) {
|
|
34
35
|
this.log = components.logger.forComponent(`${init.logPrefix}:rpc:handlers:get-value`)
|
|
35
|
-
this.datastorePrefix =
|
|
36
|
+
this.datastorePrefix = `${init.datastorePrefix}/record`
|
|
36
37
|
this.peerStore = components.peerStore
|
|
37
38
|
this.datastore = components.datastore
|
|
38
39
|
this.peerRouting = init.peerRouting
|
|
@@ -11,6 +11,7 @@ import type { Datastore } from 'interface-datastore'
|
|
|
11
11
|
export interface PutValueHandlerInit {
|
|
12
12
|
validators: Validators
|
|
13
13
|
logPrefix: string
|
|
14
|
+
datastorePrefix: string
|
|
14
15
|
}
|
|
15
16
|
|
|
16
17
|
export interface PutValueHandlerComponents {
|
|
@@ -29,7 +30,7 @@ export class PutValueHandler implements DHTMessageHandler {
|
|
|
29
30
|
|
|
30
31
|
this.components = components
|
|
31
32
|
this.log = components.logger.forComponent(`${init.logPrefix}:rpc:handlers:put-value`)
|
|
32
|
-
this.datastorePrefix =
|
|
33
|
+
this.datastorePrefix = `${init.datastorePrefix}/record`
|
|
33
34
|
this.validators = validators
|
|
34
35
|
}
|
|
35
36
|
|
package/src/rpc/index.ts
CHANGED
package/LICENSE
DELETED
package/dist/typedoc-urls.json
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"codec": "https://libp2p.github.io/js-libp2p/functions/_libp2p_kad_dht.MessageType.codec.html",
|
|
3
|
-
"EventTypes": "https://libp2p.github.io/js-libp2p/enums/_libp2p_kad_dht.EventTypes.html",
|
|
4
|
-
".:EventTypes": "https://libp2p.github.io/js-libp2p/enums/_libp2p_kad_dht.EventTypes.html",
|
|
5
|
-
"MessageType": "https://libp2p.github.io/js-libp2p/enums/_libp2p_kad_dht.MessageType-1.html",
|
|
6
|
-
"AddPeerEvent": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.AddPeerEvent.html",
|
|
7
|
-
".:AddPeerEvent": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.AddPeerEvent.html",
|
|
8
|
-
"DHTRecord": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.DHTRecord.html",
|
|
9
|
-
".:DHTRecord": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.DHTRecord.html",
|
|
10
|
-
"DialPeerEvent": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.DialPeerEvent.html",
|
|
11
|
-
".:DialPeerEvent": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.DialPeerEvent.html",
|
|
12
|
-
"FinalPeerEvent": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.FinalPeerEvent.html",
|
|
13
|
-
".:FinalPeerEvent": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.FinalPeerEvent.html",
|
|
14
|
-
"KadDHT": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.KadDHT.html",
|
|
15
|
-
".:KadDHT": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.KadDHT.html",
|
|
16
|
-
"KadDHTComponents": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.KadDHTComponents.html",
|
|
17
|
-
".:KadDHTComponents": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.KadDHTComponents.html",
|
|
18
|
-
"KadDHTInit": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.KadDHTInit.html",
|
|
19
|
-
".:KadDHTInit": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.KadDHTInit.html",
|
|
20
|
-
"PeerInfoMapper": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.PeerInfoMapper.html",
|
|
21
|
-
".:PeerInfoMapper": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.PeerInfoMapper.html",
|
|
22
|
-
"PeerResponseEvent": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.PeerResponseEvent.html",
|
|
23
|
-
".:PeerResponseEvent": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.PeerResponseEvent.html",
|
|
24
|
-
"ProviderEvent": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.ProviderEvent.html",
|
|
25
|
-
".:ProviderEvent": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.ProviderEvent.html",
|
|
26
|
-
"ProvidersInit": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.ProvidersInit.html",
|
|
27
|
-
".:ProvidersInit": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.ProvidersInit.html",
|
|
28
|
-
"QueryErrorEvent": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.QueryErrorEvent.html",
|
|
29
|
-
".:QueryErrorEvent": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.QueryErrorEvent.html",
|
|
30
|
-
"ReProvideInit": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.ReProvideInit.html",
|
|
31
|
-
".:ReProvideInit": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.ReProvideInit.html",
|
|
32
|
-
"RoutingTable": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.RoutingTable.html",
|
|
33
|
-
".:RoutingTable": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.RoutingTable.html",
|
|
34
|
-
"SelectFn": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.SelectFn.html",
|
|
35
|
-
".:SelectFn": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.SelectFn.html",
|
|
36
|
-
"SendQueryEvent": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.SendQueryEvent.html",
|
|
37
|
-
".:SendQueryEvent": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.SendQueryEvent.html",
|
|
38
|
-
"SingleKadDHT": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.SingleKadDHT.html",
|
|
39
|
-
".:SingleKadDHT": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.SingleKadDHT.html",
|
|
40
|
-
"ValidateFn": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.ValidateFn.html",
|
|
41
|
-
".:ValidateFn": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.ValidateFn.html",
|
|
42
|
-
"ValueEvent": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.ValueEvent.html",
|
|
43
|
-
".:ValueEvent": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_kad_dht.ValueEvent.html",
|
|
44
|
-
"DHTProgressEvents": "https://libp2p.github.io/js-libp2p/types/_libp2p_kad_dht.DHTProgressEvents.html",
|
|
45
|
-
".:DHTProgressEvents": "https://libp2p.github.io/js-libp2p/types/_libp2p_kad_dht.DHTProgressEvents.html",
|
|
46
|
-
"MessageName": "https://libp2p.github.io/js-libp2p/types/_libp2p_kad_dht.MessageName.html",
|
|
47
|
-
".:MessageName": "https://libp2p.github.io/js-libp2p/types/_libp2p_kad_dht.MessageName.html",
|
|
48
|
-
"QueryEvent": "https://libp2p.github.io/js-libp2p/types/_libp2p_kad_dht.QueryEvent.html",
|
|
49
|
-
".:QueryEvent": "https://libp2p.github.io/js-libp2p/types/_libp2p_kad_dht.QueryEvent.html",
|
|
50
|
-
"Selectors": "https://libp2p.github.io/js-libp2p/types/_libp2p_kad_dht.Selectors.html",
|
|
51
|
-
".:Selectors": "https://libp2p.github.io/js-libp2p/types/_libp2p_kad_dht.Selectors.html",
|
|
52
|
-
"Validators": "https://libp2p.github.io/js-libp2p/types/_libp2p_kad_dht.Validators.html",
|
|
53
|
-
".:Validators": "https://libp2p.github.io/js-libp2p/types/_libp2p_kad_dht.Validators.html",
|
|
54
|
-
"kadDHT": "https://libp2p.github.io/js-libp2p/functions/_libp2p_kad_dht.kadDHT-1.html",
|
|
55
|
-
".:kadDHT": "https://libp2p.github.io/js-libp2p/functions/_libp2p_kad_dht.kadDHT-1.html",
|
|
56
|
-
"passthroughMapper": "https://libp2p.github.io/js-libp2p/functions/_libp2p_kad_dht.passthroughMapper.html",
|
|
57
|
-
"removePrivateAddressesMapper": "https://libp2p.github.io/js-libp2p/functions/_libp2p_kad_dht.removePrivateAddressesMapper.html",
|
|
58
|
-
"removePublicAddressesMapper": "https://libp2p.github.io/js-libp2p/functions/_libp2p_kad_dht.removePublicAddressesMapper.html"
|
|
59
|
-
}
|