@libp2p/kad-dht 11.0.8 → 12.0.0-28587d24f
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 +78 -0
- package/dist/index.min.js +20 -20
- package/dist/src/constants.d.ts +2 -4
- package/dist/src/constants.d.ts.map +1 -1
- package/dist/src/constants.js +7 -9
- package/dist/src/constants.js.map +1 -1
- package/dist/src/content-fetching/index.d.ts +7 -7
- package/dist/src/content-fetching/index.d.ts.map +1 -1
- package/dist/src/content-fetching/index.js +13 -7
- package/dist/src/content-fetching/index.js.map +1 -1
- package/dist/src/content-routing/index.d.ts +5 -4
- package/dist/src/content-routing/index.d.ts.map +1 -1
- package/dist/src/content-routing/index.js +23 -13
- package/dist/src/content-routing/index.js.map +1 -1
- package/dist/src/index.d.ts +142 -28
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +87 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/kad-dht.d.ts +20 -21
- package/dist/src/kad-dht.d.ts.map +1 -1
- package/dist/src/kad-dht.js +181 -35
- package/dist/src/kad-dht.js.map +1 -1
- package/dist/src/message/dht.d.ts +35 -35
- package/dist/src/message/dht.d.ts.map +1 -1
- package/dist/src/message/dht.js +150 -130
- package/dist/src/message/dht.js.map +1 -1
- package/dist/src/message/utils.d.ts +5 -0
- package/dist/src/message/utils.d.ts.map +1 -0
- package/dist/src/message/utils.js +20 -0
- package/dist/src/message/utils.js.map +1 -0
- package/dist/src/network.d.ts +8 -8
- package/dist/src/network.d.ts.map +1 -1
- package/dist/src/network.js +30 -18
- package/dist/src/network.js.map +1 -1
- package/dist/src/peer-routing/index.d.ts +6 -6
- package/dist/src/peer-routing/index.d.ts.map +1 -1
- package/dist/src/peer-routing/index.js +48 -35
- package/dist/src/peer-routing/index.js.map +1 -1
- package/dist/src/providers.d.ts +7 -0
- package/dist/src/providers.d.ts.map +1 -1
- package/dist/src/providers.js.map +1 -1
- package/dist/src/query/events.d.ts +13 -12
- package/dist/src/query/events.d.ts.map +1 -1
- package/dist/src/query/events.js +2 -2
- package/dist/src/query/events.js.map +1 -1
- package/dist/src/query/manager.d.ts +8 -5
- package/dist/src/query/manager.d.ts.map +1 -1
- package/dist/src/query/manager.js +6 -6
- package/dist/src/query/manager.js.map +1 -1
- package/dist/src/query/query-path.d.ts +3 -3
- package/dist/src/query/query-path.d.ts.map +1 -1
- package/dist/src/query-self.d.ts +1 -1
- package/dist/src/query-self.d.ts.map +1 -1
- package/dist/src/query-self.js +2 -2
- package/dist/src/query-self.js.map +1 -1
- package/dist/src/routing-table/index.d.ts +5 -6
- package/dist/src/routing-table/index.d.ts.map +1 -1
- package/dist/src/routing-table/index.js +72 -58
- package/dist/src/routing-table/index.js.map +1 -1
- package/dist/src/routing-table/refresh.d.ts +1 -1
- package/dist/src/routing-table/refresh.d.ts.map +1 -1
- package/dist/src/routing-table/refresh.js +2 -2
- package/dist/src/routing-table/refresh.js.map +1 -1
- package/dist/src/rpc/handlers/add-provider.d.ts +2 -1
- package/dist/src/rpc/handlers/add-provider.d.ts.map +1 -1
- package/dist/src/rpc/handlers/add-provider.js +8 -6
- package/dist/src/rpc/handlers/add-provider.js.map +1 -1
- package/dist/src/rpc/handlers/find-node.d.ts +5 -3
- package/dist/src/rpc/handlers/find-node.d.ts.map +1 -1
- package/dist/src/rpc/handlers/find-node.js +22 -14
- package/dist/src/rpc/handlers/find-node.js.map +1 -1
- package/dist/src/rpc/handlers/get-providers.d.ts +5 -3
- package/dist/src/rpc/handlers/get-providers.d.ts.map +1 -1
- package/dist/src/rpc/handlers/get-providers.js +29 -16
- package/dist/src/rpc/handlers/get-providers.js.map +1 -1
- package/dist/src/rpc/handlers/get-value.d.ts +2 -1
- package/dist/src/rpc/handlers/get-value.d.ts.map +1 -1
- package/dist/src/rpc/handlers/get-value.js +16 -7
- package/dist/src/rpc/handlers/get-value.js.map +1 -1
- package/dist/src/rpc/handlers/ping.d.ts +5 -2
- package/dist/src/rpc/handlers/ping.d.ts.map +1 -1
- package/dist/src/rpc/handlers/ping.js +2 -2
- package/dist/src/rpc/handlers/ping.js.map +1 -1
- package/dist/src/rpc/handlers/put-value.d.ts +2 -1
- package/dist/src/rpc/handlers/put-value.d.ts.map +1 -1
- package/dist/src/rpc/handlers/put-value.js +8 -7
- package/dist/src/rpc/handlers/put-value.js.map +1 -1
- package/dist/src/rpc/index.d.ts +4 -3
- package/dist/src/rpc/index.d.ts.map +1 -1
- package/dist/src/rpc/index.js +11 -11
- package/dist/src/rpc/index.js.map +1 -1
- package/dist/src/topology-listener.d.ts +1 -1
- package/dist/src/topology-listener.d.ts.map +1 -1
- package/dist/src/topology-listener.js +2 -2
- package/dist/src/topology-listener.js.map +1 -1
- package/dist/src/utils.d.ts +5 -2
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +32 -2
- package/dist/src/utils.js.map +1 -1
- package/package.json +13 -11
- package/src/constants.ts +7 -11
- package/src/content-fetching/index.ts +21 -14
- package/src/content-routing/index.ts +29 -18
- package/src/index.ts +148 -32
- package/src/kad-dht.ts +225 -56
- package/src/message/dht.proto +32 -32
- package/src/message/dht.ts +155 -138
- package/src/message/utils.ts +25 -0
- package/src/network.ts +41 -25
- package/src/peer-routing/index.ts +57 -42
- package/src/providers.ts +7 -0
- package/src/query/events.ts +14 -14
- package/src/query/manager.ts +14 -10
- package/src/query/query-path.ts +3 -3
- package/src/query-self.ts +3 -3
- package/src/routing-table/index.ts +86 -64
- package/src/routing-table/refresh.ts +4 -4
- package/src/rpc/handlers/add-provider.ts +10 -7
- package/src/rpc/handlers/find-node.ts +27 -18
- package/src/rpc/handlers/get-providers.ts +33 -20
- package/src/rpc/handlers/get-value.ts +18 -7
- package/src/rpc/handlers/ping.ts +7 -3
- package/src/rpc/handlers/put-value.ts +11 -9
- package/src/rpc/index.ts +14 -13
- package/src/topology-listener.ts +3 -3
- package/src/utils.ts +41 -2
- package/dist/src/dual-kad-dht.d.ts +0 -69
- package/dist/src/dual-kad-dht.d.ts.map +0 -1
- package/dist/src/dual-kad-dht.js +0 -304
- package/dist/src/dual-kad-dht.js.map +0 -1
- package/dist/src/message/index.d.ts +0 -35
- package/dist/src/message/index.d.ts.map +0 -1
- package/dist/src/message/index.js +0 -92
- package/dist/src/message/index.js.map +0 -1
- package/dist/typedoc-urls.json +0 -55
- package/src/dual-kad-dht.ts +0 -384
- package/src/message/index.ts +0 -117
package/README.md
CHANGED
|
@@ -5,6 +5,84 @@
|
|
|
5
5
|
|
|
6
6
|
> JavaScript implementation of the Kad-DHT for libp2p
|
|
7
7
|
|
|
8
|
+
# About
|
|
9
|
+
|
|
10
|
+
This module implements the [libp2p Kademlia spec](https://github.com/libp2p/specs/blob/master/kad-dht/README.md) in TypeScript.
|
|
11
|
+
|
|
12
|
+
The Kademlia DHT allow for several operations such as finding peers, searching for providers of DHT records, etc.
|
|
13
|
+
|
|
14
|
+
## Example - Using with libp2p
|
|
15
|
+
|
|
16
|
+
```TypeScript
|
|
17
|
+
import { kadDHT } from '@libp2p/kad-dht'
|
|
18
|
+
import { createLibp2p } from 'libp2p'
|
|
19
|
+
import { peerIdFromString } from '@libp2p/peer-id'
|
|
20
|
+
|
|
21
|
+
const node = await createLibp2p({
|
|
22
|
+
services: {
|
|
23
|
+
dht: kadDHT()
|
|
24
|
+
}
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
const peerId = peerIdFromString('QmFoo')
|
|
28
|
+
const peerInfo = await libp2p.peerRouting.findPeer(peerId)
|
|
29
|
+
|
|
30
|
+
console.info(peerInfo) // peer id, multiaddrs
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Example - Connecting to the IPFS Amino DHT
|
|
34
|
+
|
|
35
|
+
The [Amino DHT](https://blog.ipfs.tech/2023-09-amino-refactoring/) is a public-good DHT used by IPFS to fetch content, find peers, etc.
|
|
36
|
+
|
|
37
|
+
If you are trying to access content on the public internet, this is the implementation you want.
|
|
38
|
+
|
|
39
|
+
```TypeScript
|
|
40
|
+
import { kadDHT, removePrivateAddressesMapper } from '@libp2p/kad-dht'
|
|
41
|
+
import { createLibp2p } from 'libp2p'
|
|
42
|
+
import { peerIdFromString } from '@libp2p/peer-id'
|
|
43
|
+
|
|
44
|
+
const node = await createLibp2p({
|
|
45
|
+
services: {
|
|
46
|
+
aminoDHT: kadDHT({
|
|
47
|
+
protocol: '/ipfs/kad/1.0.0',
|
|
48
|
+
addressFilter: removePrivateAddressesMapper
|
|
49
|
+
})
|
|
50
|
+
}
|
|
51
|
+
})
|
|
52
|
+
|
|
53
|
+
const peerId = peerIdFromString('QmFoo')
|
|
54
|
+
const peerInfo = await libp2p.peerRouting.findPeer(peerId)
|
|
55
|
+
|
|
56
|
+
console.info(peerInfo) // peer id, multiaddrs
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Example - Connecting to a LAN-only DHT
|
|
60
|
+
|
|
61
|
+
This DHT only works with privately dialable peers.
|
|
62
|
+
|
|
63
|
+
This is for use when peers are on the local area network.
|
|
64
|
+
|
|
65
|
+
```TypeScript
|
|
66
|
+
import { kadDHT, removePublicAddressesMapper } from '@libp2p/kad-dht'
|
|
67
|
+
import { createLibp2p } from 'libp2p'
|
|
68
|
+
import { peerIdFromString } from '@libp2p/peer-id'
|
|
69
|
+
|
|
70
|
+
const node = await createLibp2p({
|
|
71
|
+
services: {
|
|
72
|
+
lanDHT: kadDHT({
|
|
73
|
+
protocol: '/ipfs/lan/kad/1.0.0',
|
|
74
|
+
addressFilter: removePublicAddressesMapper,
|
|
75
|
+
clientMode: false
|
|
76
|
+
})
|
|
77
|
+
}
|
|
78
|
+
})
|
|
79
|
+
|
|
80
|
+
const peerId = peerIdFromString('QmFoo')
|
|
81
|
+
const peerInfo = await libp2p.peerRouting.findPeer(peerId)
|
|
82
|
+
|
|
83
|
+
console.info(peerInfo) // peer id, multiaddrs
|
|
84
|
+
```
|
|
85
|
+
|
|
8
86
|
# Install
|
|
9
87
|
|
|
10
88
|
```console
|