@peerbit/stream 1.0.20 → 2.0.2

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/lib/esm/routes.js CHANGED
@@ -1,227 +1,249 @@
1
- import Graphs from "graphology";
2
- import { dijkstra, unweighted } from "graphology-shortest-path";
3
- import { logger } from "./logger.js";
1
+ export const MAX_ROUTE_DISTANCE = Number.MAX_SAFE_INTEGER;
4
2
  export class Routes {
5
- graph;
6
- peerId;
7
- constructor(peerId) {
8
- this.peerId = peerId;
9
- this.graph = new Graphs.UndirectedGraph();
3
+ me;
4
+ // END receiver -> Neighbour
5
+ routes = new Map();
6
+ pendingRoutes = new Map();
7
+ latestSession;
8
+ constructor(me) {
9
+ this.me = me;
10
+ this.latestSession = 0;
10
11
  }
11
- get linksCount() {
12
- return this.graph.edges().length;
13
- }
14
- get nodeCount() {
15
- return this.graph.nodes().length;
12
+ clear() {
13
+ this.routes.clear();
14
+ this.pendingRoutes.clear();
16
15
  }
17
- /**
18
- *
19
- * @param from
20
- * @param to
21
- * @returns new nodes
22
- */
23
- addLink(from, to, weight, origin = this.peerId) {
24
- const linkExisted = this.hasLink(from, to);
25
- const newReachableNodesFromOrigin = [];
26
- if (!linkExisted) {
27
- const currentTime = +new Date();
28
- const fromWasReachable = origin == from ||
29
- this.getPath(origin, from, { unweighted: true }).length;
30
- const toWasReachable = origin === to || this.getPath(origin, to, { unweighted: true }).length;
31
- const fromIsNowReachable = toWasReachable;
32
- const toIsNowReachable = fromWasReachable;
33
- const visited = new Set();
34
- const newReachableNodes = [];
35
- if (fromIsNowReachable) {
36
- newReachableNodes.push(from);
16
+ add(from, neighbour, target, distance, session) {
17
+ let fromMap = this.routes.get(from);
18
+ if (!fromMap) {
19
+ fromMap = new Map();
20
+ this.routes.set(from, fromMap);
21
+ }
22
+ let prev = fromMap.get(target) || {
23
+ session: session ?? +new Date(),
24
+ list: []
25
+ };
26
+ this.latestSession = Math.max(this.latestSession, session);
27
+ if (session != null) {
28
+ // this condition means that when we add new routes in a session that is newer
29
+ if (prev.session < session) {
30
+ prev = { session, list: [] }; // reset route info how to reach this target
37
31
  }
38
- if (toIsNowReachable) {
39
- newReachableNodes.push(to);
32
+ else if (prev.session > session) {
33
+ return; // new routing information superseedes this
40
34
  }
41
- if (fromWasReachable) {
42
- visited.add(from);
35
+ }
36
+ if (from === this.me && neighbour === target) {
37
+ // force distance to neighbour as targets to always favor directly sending to them
38
+ // i.e. if target is our neighbour, always assume the shortest path to them is the direct path
39
+ distance = -1;
40
+ }
41
+ for (const route of prev.list) {
42
+ if (route.hash === neighbour) {
43
+ route.distance = Math.min(route.distance, distance);
44
+ prev.list.sort((a, b) => a.distance - b.distance);
45
+ return;
43
46
  }
44
- if (toWasReachable) {
45
- visited.add(to);
47
+ }
48
+ prev.list.push({ distance, hash: neighbour });
49
+ prev.list.sort((a, b) => a.distance - b.distance);
50
+ fromMap.set(target, prev);
51
+ }
52
+ removeTarget(target) {
53
+ this.routes.delete(target);
54
+ for (const [fromMapKey, fromMap] of this.routes) {
55
+ // delete target
56
+ fromMap.delete(target);
57
+ if (fromMap.size === 0) {
58
+ this.routes.delete(fromMapKey);
46
59
  }
47
- if (!this.graph.hasNode(from)) {
48
- this.graph.addNode(from);
60
+ }
61
+ return [target];
62
+ }
63
+ removeNeighbour(target) {
64
+ this.routes.delete(target);
65
+ const maybeUnreachable = new Set([target]);
66
+ for (const [fromMapKey, fromMap] of this.routes) {
67
+ // delete target
68
+ fromMap.delete(target);
69
+ // delete this as neighbour
70
+ for (const [remote, neighbours] of fromMap) {
71
+ neighbours.list = neighbours.list.filter((x) => x.hash !== target);
72
+ if (neighbours.list.length === 0) {
73
+ fromMap.delete(remote);
74
+ maybeUnreachable.add(remote);
75
+ }
49
76
  }
50
- if (!this.graph.hasNode(to)) {
51
- this.graph.addNode(to);
77
+ if (fromMap.size === 0) {
78
+ this.routes.delete(fromMapKey);
52
79
  }
53
- this.graph.addUndirectedEdge(from, to, { weight, time: currentTime });
54
- for (const newReachableNode of newReachableNodes) {
55
- // get all nodes from this and add them to the new reachable set of nodes one can access from origin
56
- const stack = [newReachableNode]; // iterate from the not reachable node
57
- while (stack.length > 0) {
58
- const node = stack.shift();
59
- if (!node) {
60
- continue;
61
- }
62
- if (visited.has(node)) {
63
- continue;
64
- }
65
- visited.add(node);
66
- const neighbors = this.graph.neighbors(node);
67
- for (const neighbor of neighbors) {
68
- const edge = this.graph.undirectedEdge(node, neighbor);
69
- if (!edge) {
70
- logger.warn(`Missing edge between: ${node} - ${neighbor}`);
71
- continue;
72
- }
73
- const attributes = this.graph.getEdgeAttributes(edge);
74
- if (attributes.time > currentTime) {
75
- continue; // a new link has been added while we are iterating, dont follow this path
76
- }
77
- if (visited.has(neighbor)) {
78
- continue;
79
- }
80
- stack.push(neighbor);
81
- }
82
- newReachableNodesFromOrigin.push(node);
83
- }
80
+ }
81
+ return [...maybeUnreachable].filter((x) => !this.isReachable(this.me, x));
82
+ }
83
+ findNeighbor(from, target) {
84
+ return this.routes.get(from)?.get(target);
85
+ }
86
+ isReachable(from, target) {
87
+ return ((this.routes.get(from)?.get(target)?.list[0]?.distance ??
88
+ Number.MAX_SAFE_INTEGER) < MAX_ROUTE_DISTANCE);
89
+ }
90
+ hasShortestPath(target) {
91
+ const path = this.routes.get(this.me)?.get(target);
92
+ if (!path) {
93
+ return false;
94
+ }
95
+ return path.list[0].distance <= 0;
96
+ }
97
+ hasTarget(target) {
98
+ for (const [k, v] of this.routes) {
99
+ if (v.has(target)) {
100
+ return true;
84
101
  }
85
102
  }
86
- else {
87
- // update weight
88
- const edge = this.graph.undirectedEdge(from, to);
89
- this.graph.setEdgeAttribute(edge, "weight", weight);
90
- this.graph.setEdgeAttribute(edge, "time", +new Date());
103
+ return false;
104
+ }
105
+ getDependent(target) {
106
+ const dependent = [];
107
+ for (const [fromMapKey, fromMap] of this.routes) {
108
+ if (fromMapKey !== this.me && fromMap.has(target)) {
109
+ dependent.push(fromMapKey);
110
+ }
91
111
  }
92
- return newReachableNodesFromOrigin;
112
+ return dependent;
93
113
  }
94
- /**
95
- *
96
- * @param from
97
- * @param to
98
- * @param origin
99
- * @returns nodes that are no longer reachable from origin
100
- */
101
- deleteLink(from, to, origin = this.peerId) {
102
- const link = this.getLink(from, to);
103
- if (link) {
104
- const date = +new Date();
105
- const fromWasReachable = origin == from ||
106
- this.getPath(origin, from, { unweighted: true }).length;
107
- const toWasReachable = origin === to || this.getPath(origin, to, { unweighted: true }).length;
108
- this.graph.dropEdge(link);
109
- const unreachableNodesFromOrigin = [];
110
- if (fromWasReachable &&
111
- origin !== from &&
112
- this.getPath(origin, from, { unweighted: true }).length === 0) {
113
- unreachableNodesFromOrigin.push(from);
114
+ count(from = this.me) {
115
+ const set = new Set();
116
+ const map = this.routes.get(from);
117
+ if (map) {
118
+ for (const [k, v] of map) {
119
+ set.add(k);
120
+ for (const peer of v.list) {
121
+ set.add(peer.hash);
122
+ }
114
123
  }
115
- if (toWasReachable &&
116
- origin !== to &&
117
- this.getPath(origin, to, { unweighted: true }).length === 0) {
118
- unreachableNodesFromOrigin.push(to);
124
+ }
125
+ return set.size;
126
+ }
127
+ countAll() {
128
+ let size = 0;
129
+ for (const [from, map] of this.routes) {
130
+ for (const [k, v] of map) {
131
+ size += v.list.length;
119
132
  }
120
- // remove subgraphs that are now disconnected from me
121
- for (const disconnected of [...unreachableNodesFromOrigin]) {
122
- const node = disconnected;
123
- if (!this.graph.hasNode(node)) {
124
- continue;
133
+ }
134
+ return size;
135
+ }
136
+ // for all tos if
137
+ getFanout(from, tos, redundancy) {
138
+ if (tos.length === 0) {
139
+ return undefined;
140
+ }
141
+ let fanoutMap = undefined;
142
+ const fromKey = from.hashcode();
143
+ // Message to > 0
144
+ if (tos.length > 0) {
145
+ for (const to of tos) {
146
+ if (to === this.me || fromKey === to) {
147
+ continue; // don't send to me or backwards
125
148
  }
126
- const stack = [disconnected];
127
- const visited = new Set();
128
- while (stack.length > 0) {
129
- const node = stack.shift();
130
- const nodeId = node;
131
- if (!nodeId || !this.graph.hasNode(nodeId)) {
132
- continue;
133
- }
134
- if (visited.has(nodeId)) {
135
- continue;
136
- }
137
- visited.add(nodeId);
138
- const neighbors = this.graph.neighbors(node);
139
- for (const neighbor of neighbors) {
140
- const edge = this.graph.undirectedEdge(node, neighbor);
141
- if (!edge) {
142
- logger.warn(`Missing edge between: ${node} - ${neighbor}`);
143
- continue;
149
+ const neighbour = this.findNeighbor(fromKey, to);
150
+ if (neighbour) {
151
+ let foundClosest = false;
152
+ for (let i = 0; i < Math.min(neighbour.list.length, redundancy); i++) {
153
+ const distance = neighbour.list[i].distance;
154
+ if (distance >= redundancy) {
155
+ break; // because neighbour listis sorted
144
156
  }
145
- const attributes = this.graph.getEdgeAttributes(edge);
146
- if (attributes.time > date) {
147
- continue; // don't follow path because this is a new link that might provide some new connectivity
157
+ if (distance <= 0) {
158
+ foundClosest = true;
148
159
  }
149
- if (visited.has(neighbor)) {
150
- continue;
160
+ const fanout = (fanoutMap || (fanoutMap = new Map())).get(neighbour.list[i].hash);
161
+ if (!fanout) {
162
+ fanoutMap.set(neighbour.list[i].hash, [
163
+ { to, timestamp: neighbour.session }
164
+ ]);
165
+ }
166
+ else {
167
+ fanout.push({ to, timestamp: neighbour.session });
151
168
  }
152
- stack.push(neighbor);
153
169
  }
154
- this.graph.dropNode(nodeId);
155
- if (disconnected !== nodeId) {
156
- unreachableNodesFromOrigin.push(nodeId.toString());
170
+ if (!foundClosest && from.hashcode() === this.me) {
171
+ return undefined; // we dont have the shortest path to our target (yet). Send to all
157
172
  }
173
+ continue;
158
174
  }
175
+ // we can't find path, send message to all peers
176
+ return undefined;
159
177
  }
160
- return unreachableNodesFromOrigin;
178
+ }
179
+ return fanoutMap || (fanoutMap = new Map());
180
+ }
181
+ /**
182
+ * Returns a list of a prunable nodes that are not needed to reach all remote nodes
183
+ */
184
+ getPrunable(neighbours) {
185
+ const map = this.routes.get(this.me);
186
+ if (map) {
187
+ // check if all targets can be reached without it
188
+ return neighbours.filter((candidate) => {
189
+ for (const [target, neighbours] of map) {
190
+ if (target !== candidate &&
191
+ neighbours.list.length === 1 &&
192
+ neighbours.list[0].hash === candidate) {
193
+ return false;
194
+ }
195
+ }
196
+ return true;
197
+ });
161
198
  }
162
199
  return [];
163
200
  }
164
- getLink(from, to) {
165
- if (!this.graph.hasNode(from) || !this.graph.hasNode(to)) {
166
- return undefined;
201
+ addPendingRouteConnection(session, route) {
202
+ let map = this.pendingRoutes.get(session);
203
+ if (!map) {
204
+ map = new Map();
205
+ this.pendingRoutes.set(session, map);
167
206
  }
168
- const edges = this.graph.edges(from, to);
169
- if (edges.length > 1) {
170
- throw new Error("Unexpected edge count: " + edges.length);
171
- }
172
- if (edges.length > 0) {
173
- return edges[0];
174
- }
175
- return undefined;
176
- }
177
- getLinkData(from, to) {
178
- const edgeId = this.getLink(from, to);
179
- if (edgeId)
180
- return this.graph.getEdgeAttributes(edgeId);
181
- return undefined;
182
- }
183
- hasLink(from, to) {
184
- return this.graph.hasEdge(from, to);
185
- }
186
- hasNode(node) {
187
- return this.graph.hasNode(node);
188
- }
189
- getPath(from, to, options) {
190
- try {
191
- let getEdgeWeight = (edge) => this.graph.getEdgeAttribute(edge, "weight");
192
- const blockId = options?.block;
193
- if (blockId) {
194
- const neighBourEdges = new Set(this.graph
195
- .inboundNeighbors(blockId)
196
- .map((x) => this.graph.edges(x, blockId))
197
- .flat());
198
- getEdgeWeight = (edge) => {
199
- if (neighBourEdges.has(edge)) {
200
- return Number.MAX_SAFE_INTEGER;
201
- }
202
- return this.graph.getEdgeAttribute(edge, "weight");
203
- };
207
+ let arr = map.get(route.target);
208
+ if (!arr) {
209
+ arr = [];
210
+ map.set(route.target, arr);
211
+ }
212
+ arr.push(route);
213
+ const neighbour = this.findNeighbor(route.from, route.target);
214
+ if (!neighbour || neighbour.session === session) {
215
+ // Commit directly since we dont have any data at all (better have something than nothing)
216
+ this.commitPendingRouteConnection(session, route.target);
217
+ }
218
+ }
219
+ // always commit if we dont know the peer yet
220
+ // do pending commits per remote (?)
221
+ commitPendingRouteConnection(session, target) {
222
+ const map = this.pendingRoutes.get(session);
223
+ if (!map) {
224
+ return;
225
+ }
226
+ if (target) {
227
+ const routes = map.get(target);
228
+ if (routes) {
229
+ for (const route of routes) {
230
+ this.add(route.from, route.neighbour, target, route.distance, session);
231
+ }
232
+ map.delete(target);
233
+ return;
204
234
  }
205
- // TODO catching for network changes and resuse last result
206
- const path = (options?.unweighted
207
- ? unweighted.bidirectional(this.graph, from, to)
208
- : dijkstra.bidirectional(this.graph, from, to, getEdgeWeight)) || [];
209
- if (path?.length > 0 && path[0] !== from) {
210
- path.reverse();
235
+ else {
236
+ return;
211
237
  }
212
- if (blockId) {
213
- if (path.includes(blockId)) {
214
- return []; // Path does not exist, as we go through a blocked node with inifite weight
238
+ }
239
+ else {
240
+ for (const [target, routes] of map) {
241
+ for (const route of routes) {
242
+ this.add(route.from, route.neighbour, target, route.distance, session);
215
243
  }
216
244
  }
217
- return path; // TODO fix types
218
245
  }
219
- catch (error) {
220
- return [];
221
- }
222
- }
223
- clear() {
224
- this.graph.clear();
246
+ this.pendingRoutes.delete(session);
225
247
  }
226
248
  }
227
249
  //# sourceMappingURL=routes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/routes.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peerbit/stream",
3
- "version": "1.0.20",
3
+ "version": "2.0.2",
4
4
  "description": "A building block for direct streaming protocols",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -50,21 +50,17 @@
50
50
  "dao.xyz"
51
51
  ],
52
52
  "devDependencies": {
53
- "@peerbit/libp2p-test-utils": "1.0.8",
54
- "@types/yallist": "^4.0.1",
55
- "graphology-types": "^0.24.7"
53
+ "@peerbit/libp2p-test-utils": "2.0.0",
54
+ "@types/yallist": "^4.0.1"
56
55
  },
57
56
  "dependencies": {
58
57
  "@dao-xyz/borsh": "^5.1.8",
59
- "@peerbit/cache": "1.1.1",
60
- "@peerbit/crypto": "1.0.10",
61
- "@peerbit/stream-interface": "^1.0.11",
62
- "abstract-level": "^1.0.3",
63
- "graphology": "0.25.1",
64
- "graphology-shortest-path": "2.0.2",
65
- "libp2p": "0.46.9",
66
- "memory-level": "^1.0.0",
58
+ "@peerbit/cache": "2.0.0",
59
+ "@peerbit/crypto": "2.1.0",
60
+ "@peerbit/stream-interface": "^2.0.1",
61
+ "abortable-iterator": "^5.0.1",
62
+ "libp2p": "^1.1.0",
67
63
  "yallist": "^4.0.0"
68
64
  },
69
- "gitHead": "1a57e60b02b5ea1c0c743871a92404a0115ed683"
65
+ "gitHead": "cba5d4b1a6f3343f044c7d3194494c3572710cc8"
70
66
  }