@libp2p/kad-dht 0.28.6
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/LICENSE +4 -0
- package/README.md +105 -0
- package/dist/src/constants.d.ts +20 -0
- package/dist/src/constants.d.ts.map +1 -0
- package/dist/src/constants.js +34 -0
- package/dist/src/constants.js.map +1 -0
- package/dist/src/content-fetching/index.d.ts +55 -0
- package/dist/src/content-fetching/index.d.ts.map +1 -0
- package/dist/src/content-fetching/index.js +190 -0
- package/dist/src/content-fetching/index.js.map +1 -0
- package/dist/src/content-routing/index.d.ts +42 -0
- package/dist/src/content-routing/index.d.ts.map +1 -0
- package/dist/src/content-routing/index.js +129 -0
- package/dist/src/content-routing/index.js.map +1 -0
- package/dist/src/dual-kad-dht.d.ts +65 -0
- package/dist/src/dual-kad-dht.d.ts.map +1 -0
- package/dist/src/dual-kad-dht.js +191 -0
- package/dist/src/dual-kad-dht.js.map +1 -0
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +15 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/kad-dht.d.ts +131 -0
- package/dist/src/kad-dht.d.ts.map +1 -0
- package/dist/src/kad-dht.js +268 -0
- package/dist/src/kad-dht.js.map +1 -0
- package/dist/src/message/dht.d.ts +297 -0
- package/dist/src/message/dht.js +921 -0
- package/dist/src/message/index.d.ts +32 -0
- package/dist/src/message/index.d.ts.map +1 -0
- package/dist/src/message/index.js +81 -0
- package/dist/src/message/index.js.map +1 -0
- package/dist/src/network.d.ts +60 -0
- package/dist/src/network.d.ts.map +1 -0
- package/dist/src/network.js +124 -0
- package/dist/src/network.js.map +1 -0
- package/dist/src/peer-list/index.d.ts +29 -0
- package/dist/src/peer-list/index.d.ts.map +1 -0
- package/dist/src/peer-list/index.js +44 -0
- package/dist/src/peer-list/index.js.map +1 -0
- package/dist/src/peer-list/peer-distance-list.d.ts +34 -0
- package/dist/src/peer-list/peer-distance-list.d.ts.map +1 -0
- package/dist/src/peer-list/peer-distance-list.js +64 -0
- package/dist/src/peer-list/peer-distance-list.js.map +1 -0
- package/dist/src/peer-routing/index.d.ts +71 -0
- package/dist/src/peer-routing/index.d.ts.map +1 -0
- package/dist/src/peer-routing/index.js +256 -0
- package/dist/src/peer-routing/index.js.map +1 -0
- package/dist/src/providers.d.ts +64 -0
- package/dist/src/providers.d.ts.map +1 -0
- package/dist/src/providers.js +208 -0
- package/dist/src/providers.js.map +1 -0
- package/dist/src/query/events.d.ts +46 -0
- package/dist/src/query/events.d.ts.map +1 -0
- package/dist/src/query/events.js +73 -0
- package/dist/src/query/events.js.map +1 -0
- package/dist/src/query/manager.d.ts +40 -0
- package/dist/src/query/manager.d.ts.map +1 -0
- package/dist/src/query/manager.js +140 -0
- package/dist/src/query/manager.js.map +1 -0
- package/dist/src/query/query-path.d.ts +58 -0
- package/dist/src/query/query-path.d.ts.map +1 -0
- package/dist/src/query/query-path.js +171 -0
- package/dist/src/query/query-path.js.map +1 -0
- package/dist/src/query/types.d.ts +16 -0
- package/dist/src/query/types.d.ts.map +1 -0
- package/dist/src/query/types.js +2 -0
- package/dist/src/query/types.js.map +1 -0
- package/dist/src/query-self.d.ts +31 -0
- package/dist/src/query-self.d.ts.map +1 -0
- package/dist/src/query-self.js +73 -0
- package/dist/src/query-self.js.map +1 -0
- package/dist/src/routing-table/generated-prefix-list-browser.d.ts +3 -0
- package/dist/src/routing-table/generated-prefix-list-browser.d.ts.map +1 -0
- package/dist/src/routing-table/generated-prefix-list-browser.js +1027 -0
- package/dist/src/routing-table/generated-prefix-list-browser.js.map +1 -0
- package/dist/src/routing-table/generated-prefix-list.d.ts +3 -0
- package/dist/src/routing-table/generated-prefix-list.d.ts.map +1 -0
- package/dist/src/routing-table/generated-prefix-list.js +4099 -0
- package/dist/src/routing-table/generated-prefix-list.js.map +1 -0
- package/dist/src/routing-table/index.d.ts +91 -0
- package/dist/src/routing-table/index.d.ts.map +1 -0
- package/dist/src/routing-table/index.js +183 -0
- package/dist/src/routing-table/index.js.map +1 -0
- package/dist/src/routing-table/refresh.d.ts +50 -0
- package/dist/src/routing-table/refresh.d.ts.map +1 -0
- package/dist/src/routing-table/refresh.js +204 -0
- package/dist/src/routing-table/refresh.js.map +1 -0
- package/dist/src/routing-table/types.d.ts +24 -0
- package/dist/src/routing-table/types.d.ts.map +1 -0
- package/dist/src/rpc/handlers/add-provider.d.ts +13 -0
- package/dist/src/rpc/handlers/add-provider.d.ts.map +1 -0
- package/dist/src/rpc/handlers/add-provider.js +42 -0
- package/dist/src/rpc/handlers/add-provider.js.map +1 -0
- package/dist/src/rpc/handlers/find-node.d.ts +18 -0
- package/dist/src/rpc/handlers/find-node.d.ts.map +1 -0
- package/dist/src/rpc/handlers/find-node.js +32 -0
- package/dist/src/rpc/handlers/find-node.js.map +1 -0
- package/dist/src/rpc/handlers/get-providers.d.ts +24 -0
- package/dist/src/rpc/handlers/get-providers.d.ts.map +1 -0
- package/dist/src/rpc/handlers/get-providers.js +60 -0
- package/dist/src/rpc/handlers/get-providers.js.map +1 -0
- package/dist/src/rpc/handlers/get-value.d.ts +27 -0
- package/dist/src/rpc/handlers/get-value.d.ts.map +1 -0
- package/dist/src/rpc/handlers/get-value.js +94 -0
- package/dist/src/rpc/handlers/get-value.js.map +1 -0
- package/dist/src/rpc/handlers/index.d.ts +13 -0
- package/dist/src/rpc/handlers/index.d.ts.map +1 -0
- package/dist/src/rpc/handlers/ping.d.ts +7 -0
- package/dist/src/rpc/handlers/ping.d.ts.map +1 -0
- package/dist/src/rpc/handlers/ping.js +9 -0
- package/dist/src/rpc/handlers/ping.js.map +1 -0
- package/dist/src/rpc/handlers/put-value.d.ts +18 -0
- package/dist/src/rpc/handlers/put-value.d.ts.map +1 -0
- package/dist/src/rpc/handlers/put-value.js +35 -0
- package/dist/src/rpc/handlers/put-value.js.map +1 -0
- package/dist/src/rpc/index.d.ts +38 -0
- package/dist/src/rpc/index.d.ts.map +1 -0
- package/dist/src/rpc/index.js +75 -0
- package/dist/src/rpc/index.js.map +1 -0
- package/dist/src/rpc/types.d.ts +6 -0
- package/dist/src/rpc/types.d.ts.map +1 -0
- package/dist/src/topology-listener.d.ts +33 -0
- package/dist/src/topology-listener.d.ts.map +1 -0
- package/dist/src/topology-listener.js +50 -0
- package/dist/src/topology-listener.js.map +1 -0
- package/dist/src/types.d.ts +143 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/utils.d.ts +33 -0
- package/dist/src/utils.d.ts.map +1 -0
- package/dist/src/utils.js +89 -0
- package/dist/src/utils.js.map +1 -0
- package/package.json +200 -0
- package/src/constants.ts +50 -0
- package/src/content-fetching/index.ts +276 -0
- package/src/content-routing/index.ts +202 -0
- package/src/dual-kad-dht.ts +257 -0
- package/src/index.ts +21 -0
- package/src/kad-dht.ts +396 -0
- package/src/message/dht.d.ts +297 -0
- package/src/message/dht.js +921 -0
- package/src/message/dht.proto +75 -0
- package/src/message/index.ts +111 -0
- package/src/network.ts +185 -0
- package/src/peer-list/index.ts +54 -0
- package/src/peer-list/peer-distance-list.ts +93 -0
- package/src/peer-routing/index.ts +332 -0
- package/src/providers.ts +278 -0
- package/src/query/events.ts +126 -0
- package/src/query/manager.ts +188 -0
- package/src/query/query-path.ts +263 -0
- package/src/query/types.ts +22 -0
- package/src/query-self.ts +106 -0
- package/src/routing-table/generated-prefix-list-browser.ts +1026 -0
- package/src/routing-table/generated-prefix-list.ts +4098 -0
- package/src/routing-table/index.ts +265 -0
- package/src/routing-table/refresh.ts +263 -0
- package/src/rpc/handlers/add-provider.ts +63 -0
- package/src/rpc/handlers/find-node.ts +57 -0
- package/src/rpc/handlers/get-providers.ts +95 -0
- package/src/rpc/handlers/get-value.ts +130 -0
- package/src/rpc/handlers/ping.ts +13 -0
- package/src/rpc/handlers/put-value.ts +58 -0
- package/src/rpc/index.ts +118 -0
- package/src/topology-listener.ts +78 -0
- package/src/utils.ts +108 -0
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
import { RoutingTable } from './routing-table/index.js';
|
|
2
|
+
import { RoutingTableRefresh } from './routing-table/refresh.js';
|
|
3
|
+
import { Network } from './network.js';
|
|
4
|
+
import { ContentFetching } from './content-fetching/index.js';
|
|
5
|
+
import { ContentRouting } from './content-routing/index.js';
|
|
6
|
+
import { PeerRouting } from './peer-routing/index.js';
|
|
7
|
+
import { Providers } from './providers.js';
|
|
8
|
+
import { QueryManager } from './query/manager.js';
|
|
9
|
+
import { RPC } from './rpc/index.js';
|
|
10
|
+
import { TopologyListener } from './topology-listener.js';
|
|
11
|
+
import { QuerySelf } from './query-self.js';
|
|
12
|
+
import { removePrivateAddresses, removePublicAddresses } from './utils.js';
|
|
13
|
+
import { logger } from '@libp2p/logger';
|
|
14
|
+
import { CustomEvent, EventEmitter } from '@libp2p/interfaces';
|
|
15
|
+
/**
|
|
16
|
+
* A DHT implementation modelled after Kademlia with S/Kademlia modifications.
|
|
17
|
+
* Original implementation in go: https://github.com/libp2p/go-libp2p-kad-dht.
|
|
18
|
+
*/
|
|
19
|
+
export class KadDHT extends EventEmitter {
|
|
20
|
+
/**
|
|
21
|
+
* Create a new KadDHT
|
|
22
|
+
*/
|
|
23
|
+
constructor(options) {
|
|
24
|
+
super();
|
|
25
|
+
const { kBucketSize, clientMode, validators, selectors, querySelfInterval, lan, protocol, bootstrapPeers, dialer, addressable, peerId, peerStore, metrics, datastore, registrar } = options;
|
|
26
|
+
this.running = false;
|
|
27
|
+
this.log = logger(`libp2p:kad-dht:${lan ? 'lan' : 'wan'}`);
|
|
28
|
+
this.protocol = protocol ?? '/ipfs/kad/1.0.0';
|
|
29
|
+
this.kBucketSize = kBucketSize ?? 20;
|
|
30
|
+
this.clientMode = clientMode ?? true;
|
|
31
|
+
this.bootstrapPeers = bootstrapPeers ?? [];
|
|
32
|
+
this.addressable = addressable;
|
|
33
|
+
this.registrar = registrar;
|
|
34
|
+
this.routingTable = new RoutingTable({
|
|
35
|
+
peerId,
|
|
36
|
+
dialer,
|
|
37
|
+
kBucketSize,
|
|
38
|
+
metrics,
|
|
39
|
+
lan
|
|
40
|
+
});
|
|
41
|
+
this.providers = new Providers({
|
|
42
|
+
datastore
|
|
43
|
+
});
|
|
44
|
+
this.lan = lan;
|
|
45
|
+
this.validators = validators ?? {};
|
|
46
|
+
this.selectors = selectors ?? {};
|
|
47
|
+
this.network = new Network({
|
|
48
|
+
dialer,
|
|
49
|
+
protocol: this.protocol,
|
|
50
|
+
lan,
|
|
51
|
+
peerId
|
|
52
|
+
});
|
|
53
|
+
this.queryManager = new QueryManager({
|
|
54
|
+
peerId: peerId,
|
|
55
|
+
// Number of disjoint query paths to use - This is set to `kBucketSize/2` per the S/Kademlia paper
|
|
56
|
+
disjointPaths: Math.ceil(this.kBucketSize / 2),
|
|
57
|
+
metrics,
|
|
58
|
+
lan
|
|
59
|
+
});
|
|
60
|
+
// DHT components
|
|
61
|
+
this.peerRouting = new PeerRouting({
|
|
62
|
+
peerId,
|
|
63
|
+
routingTable: this.routingTable,
|
|
64
|
+
peerStore,
|
|
65
|
+
network: this.network,
|
|
66
|
+
validators: this.validators,
|
|
67
|
+
queryManager: this.queryManager,
|
|
68
|
+
lan
|
|
69
|
+
});
|
|
70
|
+
this.contentFetching = new ContentFetching({
|
|
71
|
+
peerId,
|
|
72
|
+
datastore,
|
|
73
|
+
validators: this.validators,
|
|
74
|
+
selectors: this.selectors,
|
|
75
|
+
peerRouting: this.peerRouting,
|
|
76
|
+
queryManager: this.queryManager,
|
|
77
|
+
routingTable: this.routingTable,
|
|
78
|
+
network: this.network,
|
|
79
|
+
lan
|
|
80
|
+
});
|
|
81
|
+
this.contentRouting = new ContentRouting({
|
|
82
|
+
peerId,
|
|
83
|
+
network: this.network,
|
|
84
|
+
peerRouting: this.peerRouting,
|
|
85
|
+
queryManager: this.queryManager,
|
|
86
|
+
routingTable: this.routingTable,
|
|
87
|
+
providers: this.providers,
|
|
88
|
+
peerStore,
|
|
89
|
+
lan
|
|
90
|
+
});
|
|
91
|
+
this.routingTableRefresh = new RoutingTableRefresh({
|
|
92
|
+
peerRouting: this.peerRouting,
|
|
93
|
+
routingTable: this.routingTable,
|
|
94
|
+
lan
|
|
95
|
+
});
|
|
96
|
+
this.rpc = new RPC({
|
|
97
|
+
peerId,
|
|
98
|
+
routingTable: this.routingTable,
|
|
99
|
+
providers: this.providers,
|
|
100
|
+
peerRouting: this.peerRouting,
|
|
101
|
+
datastore,
|
|
102
|
+
validators: this.validators,
|
|
103
|
+
keyBook: peerStore.keyBook,
|
|
104
|
+
addressBook: peerStore.addressBook,
|
|
105
|
+
lan
|
|
106
|
+
});
|
|
107
|
+
this.topologyListener = new TopologyListener({
|
|
108
|
+
registrar,
|
|
109
|
+
protocol: this.protocol,
|
|
110
|
+
lan
|
|
111
|
+
});
|
|
112
|
+
this.querySelf = new QuerySelf({
|
|
113
|
+
peerId,
|
|
114
|
+
peerRouting: this.peerRouting,
|
|
115
|
+
interval: querySelfInterval,
|
|
116
|
+
lan
|
|
117
|
+
});
|
|
118
|
+
// handle peers being discovered during processing of DHT messages
|
|
119
|
+
this.network.addEventListener('peer', (evt) => {
|
|
120
|
+
const peerData = evt.detail;
|
|
121
|
+
this.onPeerConnect(peerData).catch(err => {
|
|
122
|
+
this.log.error('could not add %p to routing table', peerData.id, err);
|
|
123
|
+
});
|
|
124
|
+
this.dispatchEvent(new CustomEvent('peer', {
|
|
125
|
+
detail: peerData
|
|
126
|
+
}));
|
|
127
|
+
});
|
|
128
|
+
// handle peers being discovered via other peer discovery mechanisms
|
|
129
|
+
this.topologyListener.addEventListener('peer', (evt) => {
|
|
130
|
+
const peerId = evt.detail;
|
|
131
|
+
Promise.resolve().then(async () => {
|
|
132
|
+
const multiaddrs = await peerStore.addressBook.get(peerId);
|
|
133
|
+
const peerData = {
|
|
134
|
+
id: peerId,
|
|
135
|
+
multiaddrs: multiaddrs.map(addr => addr.multiaddr),
|
|
136
|
+
protocols: []
|
|
137
|
+
};
|
|
138
|
+
await this.onPeerConnect(peerData);
|
|
139
|
+
}).catch(err => {
|
|
140
|
+
this.log.error('could not add %p to routing table', peerId, err);
|
|
141
|
+
});
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
async onPeerConnect(peerData) {
|
|
145
|
+
this.log('peer %p connected', peerData.id);
|
|
146
|
+
if (this.lan) {
|
|
147
|
+
peerData = removePublicAddresses(peerData);
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
peerData = removePrivateAddresses(peerData);
|
|
151
|
+
}
|
|
152
|
+
if (peerData.multiaddrs.length === 0) {
|
|
153
|
+
this.log('ignoring %p as they do not have any %s addresses in %s', peerData.id, this.lan ? 'private' : 'public', peerData.multiaddrs.map(addr => addr.toString()));
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
try {
|
|
157
|
+
await this.routingTable.add(peerData.id);
|
|
158
|
+
}
|
|
159
|
+
catch (err) {
|
|
160
|
+
this.log.error('could not add %p to routing table', peerData.id, err);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Is this DHT running.
|
|
165
|
+
*/
|
|
166
|
+
isStarted() {
|
|
167
|
+
return this.running;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* If 'server' this node will respond to DHT queries, if 'client' this node will not
|
|
171
|
+
*/
|
|
172
|
+
async getMode() {
|
|
173
|
+
return this.clientMode ? 'client' : 'server';
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* If 'server' this node will respond to DHT queries, if 'client' this node will not
|
|
177
|
+
*/
|
|
178
|
+
async setMode(mode) {
|
|
179
|
+
if (this.registrarHandleId != null) {
|
|
180
|
+
await this.registrar.unhandle(this.registrarHandleId);
|
|
181
|
+
}
|
|
182
|
+
if (mode === 'client') {
|
|
183
|
+
this.log('enabling client mode');
|
|
184
|
+
this.clientMode = true;
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
this.log('enabling server mode');
|
|
188
|
+
this.clientMode = false;
|
|
189
|
+
this.registrarHandleId = await this.registrar.handle(this.protocol, this.rpc.onIncomingStream.bind(this.rpc));
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Start listening to incoming connections.
|
|
194
|
+
*/
|
|
195
|
+
async start() {
|
|
196
|
+
this.running = true;
|
|
197
|
+
// Only respond to queries when not in client mode
|
|
198
|
+
await this.setMode(this.clientMode ? 'client' : 'server');
|
|
199
|
+
await Promise.all([
|
|
200
|
+
this.providers.start(),
|
|
201
|
+
this.queryManager.start(),
|
|
202
|
+
this.network.start(),
|
|
203
|
+
this.routingTable.start(),
|
|
204
|
+
this.topologyListener.start(),
|
|
205
|
+
this.querySelf.start()
|
|
206
|
+
]);
|
|
207
|
+
await Promise.all(this.bootstrapPeers.map(async (peerData) => await this.routingTable.add(peerData.id)));
|
|
208
|
+
await this.routingTableRefresh.start();
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Stop accepting incoming connections and sending outgoing
|
|
212
|
+
* messages.
|
|
213
|
+
*/
|
|
214
|
+
async stop() {
|
|
215
|
+
this.running = false;
|
|
216
|
+
await Promise.all([
|
|
217
|
+
this.providers.stop(),
|
|
218
|
+
this.queryManager.stop(),
|
|
219
|
+
this.network.stop(),
|
|
220
|
+
this.routingTable.stop(),
|
|
221
|
+
this.routingTableRefresh.stop(),
|
|
222
|
+
this.topologyListener.stop(),
|
|
223
|
+
this.querySelf.stop()
|
|
224
|
+
]);
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Store the given key/value pair in the DHT
|
|
228
|
+
*/
|
|
229
|
+
async *put(key, value, options = {}) {
|
|
230
|
+
yield* this.contentFetching.put(key, value, options);
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Get the value that corresponds to the passed key
|
|
234
|
+
*/
|
|
235
|
+
async *get(key, options = {}) {
|
|
236
|
+
yield* this.contentFetching.get(key, options);
|
|
237
|
+
}
|
|
238
|
+
// ----------- Content Routing
|
|
239
|
+
/**
|
|
240
|
+
* Announce to the network that we can provide given key's value
|
|
241
|
+
*/
|
|
242
|
+
async *provide(key, options = {}) {
|
|
243
|
+
yield* this.contentRouting.provide(key, this.addressable.multiaddrs, options);
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Search the dht for providers of the given CID
|
|
247
|
+
*/
|
|
248
|
+
async *findProviders(key, options = {}) {
|
|
249
|
+
yield* this.contentRouting.findProviders(key, options);
|
|
250
|
+
}
|
|
251
|
+
// ----------- Peer Routing -----------
|
|
252
|
+
/**
|
|
253
|
+
* Search for a peer with the given ID
|
|
254
|
+
*/
|
|
255
|
+
async *findPeer(id, options = {}) {
|
|
256
|
+
yield* this.peerRouting.findPeer(id, options);
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Kademlia 'node lookup' operation
|
|
260
|
+
*/
|
|
261
|
+
async *getClosestPeers(key, options = {}) {
|
|
262
|
+
yield* this.peerRouting.getClosestPeers(key, options);
|
|
263
|
+
}
|
|
264
|
+
async refreshRoutingTable() {
|
|
265
|
+
await this.routingTableRefresh.refreshTable(true);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
//# sourceMappingURL=kad-dht.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kad-dht.js","sourceRoot":"","sources":["../../src/kad-dht.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
import * as $protobuf from "protobufjs";
|
|
2
|
+
/** Properties of a Record. */
|
|
3
|
+
export interface IRecord {
|
|
4
|
+
|
|
5
|
+
/** Record key */
|
|
6
|
+
key?: (Uint8Array|null);
|
|
7
|
+
|
|
8
|
+
/** Record value */
|
|
9
|
+
value?: (Uint8Array|null);
|
|
10
|
+
|
|
11
|
+
/** Record author */
|
|
12
|
+
author?: (Uint8Array|null);
|
|
13
|
+
|
|
14
|
+
/** Record signature */
|
|
15
|
+
signature?: (Uint8Array|null);
|
|
16
|
+
|
|
17
|
+
/** Record timeReceived */
|
|
18
|
+
timeReceived?: (string|null);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/** Represents a Record. */
|
|
22
|
+
export class Record implements IRecord {
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Constructs a new Record.
|
|
26
|
+
* @param [p] Properties to set
|
|
27
|
+
*/
|
|
28
|
+
constructor(p?: IRecord);
|
|
29
|
+
|
|
30
|
+
/** Record key. */
|
|
31
|
+
public key?: (Uint8Array|null);
|
|
32
|
+
|
|
33
|
+
/** Record value. */
|
|
34
|
+
public value?: (Uint8Array|null);
|
|
35
|
+
|
|
36
|
+
/** Record author. */
|
|
37
|
+
public author?: (Uint8Array|null);
|
|
38
|
+
|
|
39
|
+
/** Record signature. */
|
|
40
|
+
public signature?: (Uint8Array|null);
|
|
41
|
+
|
|
42
|
+
/** Record timeReceived. */
|
|
43
|
+
public timeReceived?: (string|null);
|
|
44
|
+
|
|
45
|
+
/** Record _key. */
|
|
46
|
+
public _key?: "key";
|
|
47
|
+
|
|
48
|
+
/** Record _value. */
|
|
49
|
+
public _value?: "value";
|
|
50
|
+
|
|
51
|
+
/** Record _author. */
|
|
52
|
+
public _author?: "author";
|
|
53
|
+
|
|
54
|
+
/** Record _signature. */
|
|
55
|
+
public _signature?: "signature";
|
|
56
|
+
|
|
57
|
+
/** Record _timeReceived. */
|
|
58
|
+
public _timeReceived?: "timeReceived";
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Encodes the specified Record message. Does not implicitly {@link Record.verify|verify} messages.
|
|
62
|
+
* @param m Record message or plain object to encode
|
|
63
|
+
* @param [w] Writer to encode to
|
|
64
|
+
* @returns Writer
|
|
65
|
+
*/
|
|
66
|
+
public static encode(m: IRecord, w?: $protobuf.Writer): $protobuf.Writer;
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Decodes a Record message from the specified reader or buffer.
|
|
70
|
+
* @param r Reader or buffer to decode from
|
|
71
|
+
* @param [l] Message length if known beforehand
|
|
72
|
+
* @returns Record
|
|
73
|
+
* @throws {Error} If the payload is not a reader or valid buffer
|
|
74
|
+
* @throws {$protobuf.util.ProtocolError} If required fields are missing
|
|
75
|
+
*/
|
|
76
|
+
public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): Record;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Creates a Record message from a plain object. Also converts values to their respective internal types.
|
|
80
|
+
* @param d Plain object
|
|
81
|
+
* @returns Record
|
|
82
|
+
*/
|
|
83
|
+
public static fromObject(d: { [k: string]: any }): Record;
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Creates a plain object from a Record message. Also converts values to other types if specified.
|
|
87
|
+
* @param m Record
|
|
88
|
+
* @param [o] Conversion options
|
|
89
|
+
* @returns Plain object
|
|
90
|
+
*/
|
|
91
|
+
public static toObject(m: Record, o?: $protobuf.IConversionOptions): { [k: string]: any };
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Converts this Record to JSON.
|
|
95
|
+
* @returns JSON object
|
|
96
|
+
*/
|
|
97
|
+
public toJSON(): { [k: string]: any };
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/** Properties of a Message. */
|
|
101
|
+
export interface IMessage {
|
|
102
|
+
|
|
103
|
+
/** Message type */
|
|
104
|
+
type?: (Message.MessageType|null);
|
|
105
|
+
|
|
106
|
+
/** Message clusterLevelRaw */
|
|
107
|
+
clusterLevelRaw?: (number|null);
|
|
108
|
+
|
|
109
|
+
/** Message key */
|
|
110
|
+
key?: (Uint8Array|null);
|
|
111
|
+
|
|
112
|
+
/** Message record */
|
|
113
|
+
record?: (Uint8Array|null);
|
|
114
|
+
|
|
115
|
+
/** Message closerPeers */
|
|
116
|
+
closerPeers?: (Message.IPeer[]|null);
|
|
117
|
+
|
|
118
|
+
/** Message providerPeers */
|
|
119
|
+
providerPeers?: (Message.IPeer[]|null);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/** Represents a Message. */
|
|
123
|
+
export class Message implements IMessage {
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Constructs a new Message.
|
|
127
|
+
* @param [p] Properties to set
|
|
128
|
+
*/
|
|
129
|
+
constructor(p?: IMessage);
|
|
130
|
+
|
|
131
|
+
/** Message type. */
|
|
132
|
+
public type?: (Message.MessageType|null);
|
|
133
|
+
|
|
134
|
+
/** Message clusterLevelRaw. */
|
|
135
|
+
public clusterLevelRaw?: (number|null);
|
|
136
|
+
|
|
137
|
+
/** Message key. */
|
|
138
|
+
public key?: (Uint8Array|null);
|
|
139
|
+
|
|
140
|
+
/** Message record. */
|
|
141
|
+
public record?: (Uint8Array|null);
|
|
142
|
+
|
|
143
|
+
/** Message closerPeers. */
|
|
144
|
+
public closerPeers: Message.IPeer[];
|
|
145
|
+
|
|
146
|
+
/** Message providerPeers. */
|
|
147
|
+
public providerPeers: Message.IPeer[];
|
|
148
|
+
|
|
149
|
+
/** Message _type. */
|
|
150
|
+
public _type?: "type";
|
|
151
|
+
|
|
152
|
+
/** Message _clusterLevelRaw. */
|
|
153
|
+
public _clusterLevelRaw?: "clusterLevelRaw";
|
|
154
|
+
|
|
155
|
+
/** Message _key. */
|
|
156
|
+
public _key?: "key";
|
|
157
|
+
|
|
158
|
+
/** Message _record. */
|
|
159
|
+
public _record?: "record";
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Encodes the specified Message message. Does not implicitly {@link Message.verify|verify} messages.
|
|
163
|
+
* @param m Message message or plain object to encode
|
|
164
|
+
* @param [w] Writer to encode to
|
|
165
|
+
* @returns Writer
|
|
166
|
+
*/
|
|
167
|
+
public static encode(m: IMessage, w?: $protobuf.Writer): $protobuf.Writer;
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Decodes a Message message from the specified reader or buffer.
|
|
171
|
+
* @param r Reader or buffer to decode from
|
|
172
|
+
* @param [l] Message length if known beforehand
|
|
173
|
+
* @returns Message
|
|
174
|
+
* @throws {Error} If the payload is not a reader or valid buffer
|
|
175
|
+
* @throws {$protobuf.util.ProtocolError} If required fields are missing
|
|
176
|
+
*/
|
|
177
|
+
public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): Message;
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* Creates a Message message from a plain object. Also converts values to their respective internal types.
|
|
181
|
+
* @param d Plain object
|
|
182
|
+
* @returns Message
|
|
183
|
+
*/
|
|
184
|
+
public static fromObject(d: { [k: string]: any }): Message;
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Creates a plain object from a Message message. Also converts values to other types if specified.
|
|
188
|
+
* @param m Message
|
|
189
|
+
* @param [o] Conversion options
|
|
190
|
+
* @returns Plain object
|
|
191
|
+
*/
|
|
192
|
+
public static toObject(m: Message, o?: $protobuf.IConversionOptions): { [k: string]: any };
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Converts this Message to JSON.
|
|
196
|
+
* @returns JSON object
|
|
197
|
+
*/
|
|
198
|
+
public toJSON(): { [k: string]: any };
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
export namespace Message {
|
|
202
|
+
|
|
203
|
+
/** MessageType enum. */
|
|
204
|
+
enum MessageType {
|
|
205
|
+
PUT_VALUE = 0,
|
|
206
|
+
GET_VALUE = 1,
|
|
207
|
+
ADD_PROVIDER = 2,
|
|
208
|
+
GET_PROVIDERS = 3,
|
|
209
|
+
FIND_NODE = 4,
|
|
210
|
+
PING = 5
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
/** ConnectionType enum. */
|
|
214
|
+
enum ConnectionType {
|
|
215
|
+
NOT_CONNECTED = 0,
|
|
216
|
+
CONNECTED = 1,
|
|
217
|
+
CAN_CONNECT = 2,
|
|
218
|
+
CANNOT_CONNECT = 3
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
/** Properties of a Peer. */
|
|
222
|
+
interface IPeer {
|
|
223
|
+
|
|
224
|
+
/** Peer id */
|
|
225
|
+
id?: (Uint8Array|null);
|
|
226
|
+
|
|
227
|
+
/** Peer addrs */
|
|
228
|
+
addrs?: (Uint8Array[]|null);
|
|
229
|
+
|
|
230
|
+
/** Peer connection */
|
|
231
|
+
connection?: (Message.ConnectionType|null);
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
/** Represents a Peer. */
|
|
235
|
+
class Peer implements IPeer {
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Constructs a new Peer.
|
|
239
|
+
* @param [p] Properties to set
|
|
240
|
+
*/
|
|
241
|
+
constructor(p?: Message.IPeer);
|
|
242
|
+
|
|
243
|
+
/** Peer id. */
|
|
244
|
+
public id?: (Uint8Array|null);
|
|
245
|
+
|
|
246
|
+
/** Peer addrs. */
|
|
247
|
+
public addrs: Uint8Array[];
|
|
248
|
+
|
|
249
|
+
/** Peer connection. */
|
|
250
|
+
public connection?: (Message.ConnectionType|null);
|
|
251
|
+
|
|
252
|
+
/** Peer _id. */
|
|
253
|
+
public _id?: "id";
|
|
254
|
+
|
|
255
|
+
/** Peer _connection. */
|
|
256
|
+
public _connection?: "connection";
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* Encodes the specified Peer message. Does not implicitly {@link Message.Peer.verify|verify} messages.
|
|
260
|
+
* @param m Peer message or plain object to encode
|
|
261
|
+
* @param [w] Writer to encode to
|
|
262
|
+
* @returns Writer
|
|
263
|
+
*/
|
|
264
|
+
public static encode(m: Message.IPeer, w?: $protobuf.Writer): $protobuf.Writer;
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* Decodes a Peer message from the specified reader or buffer.
|
|
268
|
+
* @param r Reader or buffer to decode from
|
|
269
|
+
* @param [l] Message length if known beforehand
|
|
270
|
+
* @returns Peer
|
|
271
|
+
* @throws {Error} If the payload is not a reader or valid buffer
|
|
272
|
+
* @throws {$protobuf.util.ProtocolError} If required fields are missing
|
|
273
|
+
*/
|
|
274
|
+
public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): Message.Peer;
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* Creates a Peer message from a plain object. Also converts values to their respective internal types.
|
|
278
|
+
* @param d Plain object
|
|
279
|
+
* @returns Peer
|
|
280
|
+
*/
|
|
281
|
+
public static fromObject(d: { [k: string]: any }): Message.Peer;
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* Creates a plain object from a Peer message. Also converts values to other types if specified.
|
|
285
|
+
* @param m Peer
|
|
286
|
+
* @param [o] Conversion options
|
|
287
|
+
* @returns Plain object
|
|
288
|
+
*/
|
|
289
|
+
public static toObject(m: Message.Peer, o?: $protobuf.IConversionOptions): { [k: string]: any };
|
|
290
|
+
|
|
291
|
+
/**
|
|
292
|
+
* Converts this Peer to JSON.
|
|
293
|
+
* @returns JSON object
|
|
294
|
+
*/
|
|
295
|
+
public toJSON(): { [k: string]: any };
|
|
296
|
+
}
|
|
297
|
+
}
|