@peerbit/stream 4.0.5-aa577a5 → 4.0.5-cccc078

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 CHANGED
@@ -1,2 +1,12 @@
1
1
  # Direct stream
2
- Data streaming protocol that aggregates "hellos" and goodbye" from peers to build a route map, which is used with path-finding algorithms to find the shortest path to send data from A to B.
2
+ Data streaming protocol for delivering messages efficiently to peers with redundancy and failure recovery modes.
3
+
4
+ ## Features
5
+ - Packet prioritization. Data packages can be sent with different priority. That allows some traffic to pass through the traffic faster than other. This is useful in case of congestion
6
+ - Mode'd delivery. Packages can be sent with different delivery mode 'Acknowledge' (wait for acknowledgement from all known subscribers), 'Seek' (find new subscribers for a topic), 'Silent' (just deliver).
7
+ - Redundancy in data delivery. Data packages can be sent with different redundancy. This means that you can choose to send some packages only in one path (the fastest) or send a package in the 'N' fastest paths (this gives you a redundancy degree of 'N'). This feature is useful when you want to adapt delivery for unstable networks or when you want to make sure that some messages are delivered with high probability (without waiting for Acknowledgemts and retry)
8
+
9
+
10
+ Protocol specification (TODO)
11
+
12
+ Currently the protocol itself is not specificed more than as in this implementation with messages types found [here](https://github.com/dao-xyz/peerbit/blob/master/packages/transport/stream-interface/src/messages.ts) and [here](https://github.com/dao-xyz/peerbit/blob/aa577a5e5b2b4920662de5e0efb92fb97a5dc63c/packages/transport/stream/src/index.ts#L1057).
@@ -1,11 +1,11 @@
1
- import B from "benchmark";
1
+ import { tcp } from "@libp2p/tcp";
2
2
  import { TestSession } from "@peerbit/libp2p-test-utils";
3
- import { DirectStream, waitForPeers } from "../src/index.js";
3
+ import { SeekDelivery } from "@peerbit/stream-interface";
4
4
  import { waitForResolved } from "@peerbit/time";
5
- import { tcp } from "@libp2p/tcp";
5
+ import B from "benchmark";
6
6
  import crypto from "crypto";
7
- import { SeekDelivery } from "@peerbit/stream-interface";
8
- // Run with "node --loader ts-node/esm ./src/__benchmark__/transfer.ts"
7
+ import { DirectStream, waitForPeers, } from "../src/index.js";
8
+ // Run with "node --loader ts-node/esm ./benchmark/transfer.ts"
9
9
  // size: 100byte x 1,727 ops/sec ±2.61% (83 runs sampled)
10
10
  // size: 1kb x 1,727 ops/sec ±2.61% (83 runs sampled)
11
11
  // size: 1000kb x 104 ops/sec ±2.46% (83 runs sampled)
@@ -13,13 +13,13 @@ class TestStreamImpl extends DirectStream {
13
13
  constructor(c) {
14
14
  super(c, ["bench/0.0.0"], {
15
15
  canRelayMessage: true,
16
- connectionManager: false
16
+ connectionManager: false,
17
17
  });
18
18
  }
19
19
  }
20
20
  const session = await TestSession.disconnected(4, {
21
21
  transports: [tcp()],
22
- services: { directstream: (c) => new TestStreamImpl(c) }
22
+ services: { directstream: (c) => new TestStreamImpl(c) },
23
23
  });
24
24
  /*
25
25
  ┌─┐
@@ -39,7 +39,7 @@ const session = await TestSession.disconnected(4, {
39
39
  await session.connect([
40
40
  [session.peers[0], session.peers[1]],
41
41
  [session.peers[1], session.peers[2]],
42
- [session.peers[2], session.peers[3]]
42
+ [session.peers[2], session.peers[3]],
43
43
  ]);
44
44
  const stream = (i) => session.peers[i].services.directstream;
45
45
  await waitForPeers(stream(0), stream(1));
@@ -48,8 +48,8 @@ await waitForPeers(stream(2), stream(3));
48
48
  stream(0).publish(new Uint8Array([123]), {
49
49
  mode: new SeekDelivery({
50
50
  redundancy: 1,
51
- to: [stream(session.peers.length - 1).publicKey]
52
- })
51
+ to: [stream(session.peers.length - 1).publicKey],
52
+ }),
53
53
  });
54
54
  await waitForResolved(() => stream(0).routes.isReachable(stream(0).publicKeyHash, stream(3).publicKeyHash));
55
55
  let suite = new B.Suite();
@@ -64,7 +64,7 @@ for (const size of sizes) {
64
64
  const small = crypto.randomBytes(size); // 1kb
65
65
  msgMap.set(msgIdFn(small), deferred);
66
66
  stream(0).publish(small, {
67
- to: [stream(session.peers.length - 1).publicKey]
67
+ to: [stream(session.peers.length - 1).publicKey],
68
68
  });
69
69
  },
70
70
  setup: () => {
@@ -76,7 +76,7 @@ for (const size of sizes) {
76
76
  },
77
77
  teardown: () => {
78
78
  stream(session.peers.length - 1).removeEventListener("data", listener);
79
- }
79
+ },
80
80
  });
81
81
  }
82
82
  suite
@@ -1 +1 @@
1
- {"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../benchmark/transfer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../benchmark/transfer.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,17 @@
1
1
  import { TypedEventEmitter } from "@libp2p/interface";
2
+ import type { Connection, Libp2pEvents, PeerId, PeerStore, Stream, TypedEventTarget } from "@libp2p/interface";
3
+ import type { AddressManager, ConnectionManager, IncomingStreamData, Registrar } from "@libp2p/interface-internal";
4
+ import { Cache } from "@peerbit/cache";
5
+ import { PublicSignKey, type SignatureWithKey } from "@peerbit/crypto";
6
+ import { ACK, AcknowledgeDelivery, AnyWhere, DataMessage, Goodbye, type IdentificationOptions, Message, MultiAddrinfo, type PriorityOptions, SeekDelivery, SilentDelivery, type StreamEvents, type WaitForPeer, type WithMode, type WithTo } from "@peerbit/stream-interface";
7
+ import type { Components } from "libp2p/components";
2
8
  import Queue from "p-queue";
3
- import type { PeerId } from "@libp2p/interface";
4
- import type { Connection } from "@libp2p/interface";
5
- import { type PushableLanes } from "./pushable-lanes.js";
6
- import type { Stream } from "@libp2p/interface";
7
9
  import { Uint8ArrayList } from "uint8arraylist";
8
- import { Routes } from "./routes.js";
9
- import type { IncomingStreamData, Registrar } from "@libp2p/interface-internal";
10
- import type { AddressManager } from "@libp2p/interface-internal";
11
- import type { ConnectionManager } from "@libp2p/interface-internal";
12
- import { type PeerStore } from "@libp2p/interface";
13
- import { PublicSignKey, SignatureWithKey } from "@peerbit/crypto";
14
- import type { Components } from "libp2p/components";
15
- import type { TypedEventTarget } from "@libp2p/interface";
16
10
  import { logger } from "./logger.js";
17
- export { logger };
18
- import { Cache } from "@peerbit/cache";
19
- import type { Libp2pEvents } from "@libp2p/interface";
20
- import { Message as Message, DataMessage, type WaitForPeer, ACK, SeekDelivery, AcknowledgeDelivery, SilentDelivery, Goodbye, type StreamEvents, AnyWhere, type WithTo, type WithMode, type PriorityOptions } from "@peerbit/stream-interface";
21
- import { MultiAddrinfo } from "@peerbit/stream-interface";
11
+ import { type PushableLanes } from "./pushable-lanes.js";
12
+ import { Routes } from "./routes.js";
22
13
  import { BandwidthTracker } from "./stats.js";
23
- import { type IdentificationOptions } from "@peerbit/stream-interface";
14
+ export { logger };
24
15
  export { BandwidthTracker };
25
16
  export interface PeerStreamsInit {
26
17
  peerId: PeerId;
@@ -108,6 +99,11 @@ type ConnectionManagerOptions = {
108
99
  dialer?: DialerOptions;
109
100
  pruner?: PrunerOptions;
110
101
  };
102
+ export type ConnectionManagerArguments = (Partial<Pick<ConnectionManagerOptions, "minConnections">> & Partial<Pick<ConnectionManagerOptions, "maxConnections">> & {
103
+ pruner?: Partial<PrunerOptions> | false;
104
+ } & {
105
+ dialer?: Partial<DialerOptions> | false;
106
+ }) | false;
111
107
  export type DirectStreamOptions = {
112
108
  canRelayMessage?: boolean;
113
109
  messageProcessingConcurrency?: number;
@@ -126,11 +122,6 @@ export interface DirectStreamComponents extends Components {
126
122
  peerStore: PeerStore;
127
123
  events: TypedEventTarget<Libp2pEvents>;
128
124
  }
129
- export type ConnectionManagerArguments = (Partial<Pick<ConnectionManagerOptions, "minConnections">> & Partial<Pick<ConnectionManagerOptions, "maxConnections">> & {
130
- pruner?: Partial<PrunerOptions> | false;
131
- } & {
132
- dialer?: Partial<DialerOptions> | false;
133
- }) | false;
134
125
  export declare abstract class DirectStream<Events extends {
135
126
  [s: string]: any;
136
127
  } = StreamEvents> extends TypedEventEmitter<Events> implements WaitForPeer {
@@ -192,15 +183,7 @@ export declare abstract class DirectStream<Events extends {
192
183
  protected onPeerDisconnected(peerId: PeerId, conn?: Connection): Promise<void>;
193
184
  removePeerFromRoutes(hash: string, deleteIfNeighbour?: boolean): void;
194
185
  addRouteConnection(from: string, neighbour: string, target: PublicSignKey, distance: number, session: number, remoteSession: number): void;
195
- /**
196
- * invoked when a new peer becomes reachable
197
- * @param publicKeyHash
198
- */
199
186
  onPeerReachable(publicKey: PublicSignKey): void;
200
- /**
201
- * invoked when a new peer becomes unreachable
202
- * @param publicKeyHash
203
- */
204
187
  onPeerUnreachable(hash: string): void;
205
188
  updateSession(key: PublicSignKey, session?: number): void;
206
189
  invalidateSession(key: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EACX,UAAU,EACV,YAAY,EACZ,MAAM,EACN,SAAS,EACT,MAAM,EACN,gBAAgB,EAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACX,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EACN,aAAa,EACb,KAAK,gBAAgB,EAMrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,GAAG,EACH,mBAAmB,EACnB,QAAQ,EACR,WAAW,EAEX,OAAO,EACP,KAAK,qBAAqB,EAC1B,OAAO,EAEP,aAAa,EAEb,KAAK,eAAe,EACpB,YAAY,EACZ,cAAc,EACd,KAAK,YAAY,EAEjB,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,MAAM,EAGX,MAAM,2BAA2B,CAAC;AAKnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,KAAK,aAAa,EAAiB,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAsB,MAAM,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAE,CAAC;AAElB,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAM5B,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,aAAa,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CACf;AAOD,MAAM,WAAW,gBAAgB;IAChC,gBAAgB,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IACrC,iBAAiB,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IACtC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;CAC1B;AAuBD;;GAEG;AACH,qBAAa,WAAY,SAAQ,iBAAiB,CAAC,gBAAgB,CAAC;IACnE,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,SAAS,EAAE,aAAa,CAAC;IACzC,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC;;OAEG;IACI,cAAc,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAElD;;OAEG;IACI,aAAa,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACrD;;OAEG;IACI,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAClC;;OAEG;IACI,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACjC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAkB;IAEzD,OAAO,CAAC,MAAM,CAAU;IAEjB,MAAM,EAAE,MAAM,CAAC;IAEf,UAAU,EAAE,OAAO,CAAC;IAE3B,OAAO,CAAC,oBAAoB,CAAmB;gBACnC,IAAI,EAAE,eAAe;IAajC;;OAEG;IACH,IAAI,UAAU,YAEb;IAED;;OAEG;IACH,IAAI,UAAU,YAEb;IAED,IAAI,aAAa,WAEhB;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc,EAAE,QAAQ,EAAE,MAAM;IAsBnD,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,cAAc,EAAE,QAAQ,GAAE,MAAU;IAyD3E;;OAEG;IACH,mBAAmB,CAAC,MAAM,EAAE,MAAM;IAuBlC;;OAEG;IAEG,oBAAoB,CAAC,MAAM,EAAE,MAAM;IAsBzC;;OAEG;IACG,KAAK;CA6BX;AAED,KAAK,aAAa,GAAG;IACpB,UAAU,EAAE,MAAM,CAAC;CACnB,CAAC;AACF,KAAK,aAAa,GAAG;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;CAC1B,CAAC;AACF,KAAK,wBAAwB,GAAG;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,MAAM,CAAC,EAAE,aAAa,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GACnC,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,gBAAgB,CAAC,CAAC,GAC1D,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,gBAAgB,CAAC,CAAC,GAAG;IAC3D,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;CACxC,GAAG;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,KAAK,CAAA;CAAE,CAAC,GAChD,KAAK,CAAC;AAET,MAAM,MAAM,mBAAmB,GAAG;IACjC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,0BAA0B,CAAC;IAC/C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uBAAuB,CAAC,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF,MAAM,WAAW,sBAAuB,SAAQ,UAAU;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,SAAS,CAAC;IACrB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;CACvC;AAED,8BAAsB,YAAY,CAChC,MAAM,SAAS;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAAG,YAAY,CAEnD,SAAQ,iBAAiB,CAAC,MAAM,CAChC,YAAW,WAAW;IAsDrB,QAAQ,CAAC,UAAU,EAAE,sBAAsB;IApDrC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,aAAa,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAEvD,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IACzB;;OAEG;IACI,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAChC,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACnD,MAAM,EAAE,MAAM,CAAC;IACtB;;OAEG;IACI,eAAe,EAAE,OAAO,CAAC;IAChC;;OAEG;IAEI,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAChC,OAAO,CAAC,qBAAqB,CAAuB;IACpD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAS;IAC5C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAS;IAC7C,wBAAwB,EAAE,wBAAwB,CAAC;IACnD,OAAO,CAAC,WAAW,CAAC,CAAgB;IACpC,OAAO,CAAC,YAAY,CAA6C;IACjE,OAAO,CAAC,uBAAuB,CAAiC;IAChE,OAAO,CAAC,sBAAsB,CAAC,CAAgB;IAC/C,OAAO,CAAC,uBAAuB,CAAS;IACxC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,eAAe,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAEhB,OAAO,CAAC,aAAa,CAWnB;gBAGQ,UAAU,EAAE,sBAAsB,EAC3C,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,CAAC,EAAE,mBAAmB;IAkFxB,KAAK;IAoFX;;OAEG;IACG,IAAI;IAiDV,SAAS;IAIT;;OAEG;cAEa,iBAAiB,CAAC,IAAI,EAAE,kBAAkB;IA8B1D;;OAEG;IACU,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU;IAoFnE;;OAEG;cACa,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU;IAsD7D,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,UAAQ;IAY5D,kBAAkB,CACxB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM;IAuBf,eAAe,CAAC,SAAS,EAAE,aAAa;IAOxC,iBAAiB,CAAC,IAAI,EAAE,MAAM;IAW9B,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,MAAM;IAKlD,iBAAiB,CAAC,GAAG,EAAE,MAAM;IAI7B,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM;IASxD;;OAEG;IACH,OAAO,CACN,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACZ,WAAW;IAkCd;;OAEG;cACa,WAAW,CAAC,SAAS,EAAE,aAAa;IAoBpD;;OAEG;IACG,eAAe,CACpB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,EACrC,WAAW,EAAE,WAAW;IAmBzB;;OAEG;IACG,UAAU,CACf,IAAI,EAAE,aAAa,EACnB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,cAAc,GACrB,OAAO,CAAC,OAAO,CAAC;YAmBL,eAAe;IAU7B;;OAEG;IACG,cAAc,CACnB,IAAI,EAAE,aAAa,EACnB,UAAU,EAAE,WAAW,EACvB,GAAG,EAAE,cAAc;IA4Bb,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM;IAqB/C,aAAa,CACzB,IAAI,EAAE,aAAa,EACnB,UAAU,EAAE,WAAW,EACvB,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM;IAuEN,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC;IAe7C,uBAAuB,CAC5B,UAAU,EAAE,WAAW,EACvB,OAAO,EAAE,WAAW,GAAG,OAAO,EAC9B,UAAU,EAAE,MAAM;YA6CL,cAAc;IAetB,KAAK,CACV,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,WAAW,EACvB,YAAY,EAAE,cAAc,GAAG,UAAU,EACzC,OAAO,EAAE,GAAG;IAoDP,SAAS,CACd,SAAS,EAAE,aAAa,EACxB,UAAU,EAAE,WAAW,EACvB,YAAY,EAAE,cAAc,GAAG,UAAU,EACzC,OAAO,EAAE,OAAO;IA2CjB,OAAO,CAAC,uBAAuB;YAQjB,YAAY;IA6BpB,aAAa,CAClB,IAAI,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,EAC7C,OAAO,EAAE,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,eAAe,GAAG,qBAAqB;IA2DvE;;OAEG;IACG,OAAO,CACZ,IAAI,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,EAC7C,OAAO,GAAE,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,eAE9B,GACC,OAAO,CAAC,UAAU,CAAC;IAgBT,YAAY,CACxB,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,OAAO,EAChB,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC;IA0B9C,OAAO,CAAC,qBAAqB;YAMf,qBAAqB;IAkMtB,cAAc,CAC1B,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,OAAO,EAChB,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EAC7C,OAAO,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC;IAoIV,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;IA4B1D,OAAO,CACZ,IAAI,EAAE,MAAM,GAAG,aAAa,EAC5B,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE;IAsD1E,IAAI,OAAO,IAAI,OAAO,CAErB;IAGD,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAyBhC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBvC,cAAc,IAAI,MAAM;CAQxB;AAED,eAAO,MAAM,YAAY,YACf;IACR,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,MAAM,EAAE,MAAM,CAAC;CACf,EAAE,kBAUH,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,24 +1,20 @@
1
- import { TypedEventEmitter, CustomEvent } from "@libp2p/interface";
2
- import { pipe } from "it-pipe";
3
- import Queue from "p-queue";
4
- import { pushableLanes } from "./pushable-lanes.js";
5
- import { Uint8ArrayList } from "uint8arraylist";
1
+ import { CustomEvent, TypedEventEmitter } from "@libp2p/interface";
2
+ import { multiaddr } from "@multiformats/multiaddr";
3
+ import { Cache } from "@peerbit/cache";
4
+ import { PublicSignKey, getKeypairFromPeerId, getPublicKeyFromPeerId, ready, sha256Base64, toBase64, } from "@peerbit/crypto";
5
+ import { ACK, AcknowledgeDelivery, AnyWhere, DataMessage, DeliveryError, Goodbye, Message, MessageHeader, MultiAddrinfo, NotStartedError, SeekDelivery, SilentDelivery, TracedDelivery, deliveryModeHasReceiver, getMsgId, } from "@peerbit/stream-interface";
6
+ import { AbortError, TimeoutError, delay, waitFor } from "@peerbit/time";
6
7
  import { abortableSource } from "abortable-iterator";
7
8
  import * as lp from "it-length-prefixed";
8
- import { MAX_ROUTE_DISTANCE, Routes } from "./routes.js";
9
- import {} from "@libp2p/interface";
9
+ import { pipe } from "it-pipe";
10
10
  import pDefer from "p-defer";
11
- import { AbortError, delay, TimeoutError, waitFor } from "@peerbit/time";
12
- import { getKeypairFromPeerId, getPublicKeyFromPeerId, PublicSignKey, sha256Base64, SignatureWithKey, toBase64 } from "@peerbit/crypto";
13
- import { multiaddr } from "@multiformats/multiaddr";
11
+ import Queue from "p-queue";
12
+ import { Uint8ArrayList } from "uint8arraylist";
14
13
  import { logger } from "./logger.js";
15
- export { logger };
16
- import { Cache } from "@peerbit/cache";
17
- import { ready } from "@peerbit/crypto";
18
- import { Message as Message, DataMessage, getMsgId, ACK, SeekDelivery, AcknowledgeDelivery, SilentDelivery, MessageHeader, Goodbye, TracedDelivery, AnyWhere, NotStartedError, deliveryModeHasReceiver, DeliveryError } from "@peerbit/stream-interface";
19
- import { MultiAddrinfo } from "@peerbit/stream-interface";
14
+ import { pushableLanes } from "./pushable-lanes.js";
15
+ import { MAX_ROUTE_DISTANCE, Routes } from "./routes.js";
20
16
  import { BandwidthTracker } from "./stats.js";
21
- import {} from "@peerbit/stream-interface";
17
+ export { logger };
22
18
  export { BandwidthTracker }; // might be useful for others
23
19
  const logError = (e) => {
24
20
  return logger.error(e?.message);
@@ -114,41 +110,40 @@ export class PeerStreams extends TypedEventEmitter {
114
110
  this.usedBandWidthTracker.add(data.byteLength);
115
111
  this.outboundStream.push(data instanceof Uint8Array ? data : data.subarray(), this.outboundStream.getReadableLength(0) === 0
116
112
  ? 0
117
- : getLaneFromPriority(priority) // TODO use more lanes
118
- );
113
+ : getLaneFromPriority(priority));
119
114
  }
120
115
  async waitForWrite(bytes, priority = 0) {
121
116
  if (this.closed) {
122
- logger.error("Failed to send to stream: " + this.peerId + ". Closed");
117
+ logger.error("Failed to send to stream: " + this.peerId.toString() + ". Closed");
123
118
  return;
124
119
  }
125
120
  if (!this.isWritable) {
126
121
  // Catch the event where the outbound stream is attach, but also abort if we shut down
127
- const outboundPromise = new Promise((rs, rj) => {
128
- const resolve = () => {
122
+ const outboundPromise = new Promise((resolve, reject) => {
123
+ const resolveClear = () => {
129
124
  this.removeEventListener("stream:outbound", listener);
130
125
  clearTimeout(timer);
131
- rs();
126
+ resolve();
132
127
  };
133
- const reject = (err) => {
128
+ const rejectClear = (err) => {
134
129
  this.removeEventListener("stream:outbound", listener);
135
130
  clearTimeout(timer);
136
- rj(err);
131
+ reject(err);
137
132
  };
138
133
  const timer = setTimeout(() => {
139
- reject(new Error("Timed out"));
134
+ rejectClear(new Error("Timed out"));
140
135
  }, 3 * 1000); // TODO if this timeout > 10s we run into issues in the tests when running in CI
141
136
  const abortHandler = () => {
142
137
  this.removeEventListener("close", abortHandler);
143
- reject(new AbortError("Closed"));
138
+ rejectClear(new AbortError("Closed"));
144
139
  };
145
140
  this.addEventListener("close", abortHandler);
146
141
  const listener = () => {
147
- resolve();
142
+ resolveClear();
148
143
  };
149
144
  this.addEventListener("stream:outbound", listener);
150
145
  if (this.isWritable) {
151
- resolve();
146
+ resolveClear();
152
147
  }
153
148
  });
154
149
  await outboundPromise
@@ -182,7 +177,7 @@ export class PeerStreams extends TypedEventEmitter {
182
177
  returnOnAbort: true,
183
178
  onReturnError: (err) => {
184
179
  logger.error("Inbound stream error", err?.message);
185
- }
180
+ },
186
181
  });
187
182
  this.dispatchEvent(new CustomEvent("stream:inbound"));
188
183
  return this.inboundStream;
@@ -270,7 +265,7 @@ export class DirectStream extends TypedEventEmitter {
270
265
  constructor(components, multicodecs, options) {
271
266
  super();
272
267
  this.components = components;
273
- const { canRelayMessage = true, messageProcessingConcurrency = 10, maxInboundStreams, maxOutboundStreams, connectionManager, routeSeekInterval = ROUTE_UPDATE_DELAY_FACTOR, seekTimeout = SEEK_DELIVERY_TIMEOUT, routeMaxRetentionPeriod = ROUTE_MAX_RETANTION_PERIOD } = options || {};
268
+ const { canRelayMessage = true, messageProcessingConcurrency = 10, maxInboundStreams, maxOutboundStreams, connectionManager, routeSeekInterval = ROUTE_UPDATE_DELAY_FACTOR, seekTimeout = SEEK_DELIVERY_TIMEOUT, routeMaxRetentionPeriod = ROUTE_MAX_RETANTION_PERIOD, } = options || {};
274
269
  const signKey = getKeypairFromPeerId(components.peerId);
275
270
  this.seekTimeout = seekTimeout;
276
271
  this.sign = signKey.sign.bind(signKey);
@@ -298,7 +293,7 @@ export class DirectStream extends TypedEventEmitter {
298
293
  maxConnections: Number.MAX_SAFE_INTEGER,
299
294
  minConnections: 0,
300
295
  dialer: undefined,
301
- pruner: undefined
296
+ pruner: undefined,
302
297
  };
303
298
  }
304
299
  else {
@@ -316,21 +311,21 @@ export class DirectStream extends TypedEventEmitter {
316
311
  connectionTimeout: DEFAULT_PRUNED_CONNNECTIONS_TIMEOUT,
317
312
  interval: DEFAULT_PRUNE_CONNECTIONS_INTERVAL,
318
313
  maxBuffer: MAX_QUEUED_BYTES,
319
- ...connectionManager?.pruner
314
+ ...connectionManager?.pruner,
320
315
  }
321
- : undefined
316
+ : undefined,
322
317
  };
323
318
  }
324
319
  this.recentDials = this.connectionManagerOptions.dialer
325
320
  ? new Cache({
326
321
  ttl: this.connectionManagerOptions.dialer.retryDelay,
327
- max: 1e3
322
+ max: 1e3,
328
323
  })
329
324
  : undefined;
330
325
  this.prunedConnectionsCache = this.connectionManagerOptions.pruner
331
326
  ? new Cache({
332
327
  max: 1e6,
333
- ttl: this.connectionManagerOptions.pruner.connectionTimeout
328
+ ttl: this.connectionManagerOptions.pruner.connectionTimeout,
334
329
  })
335
330
  : undefined;
336
331
  }
@@ -343,7 +338,7 @@ export class DirectStream extends TypedEventEmitter {
343
338
  this.closeController = new AbortController();
344
339
  this.routes = new Routes(this.publicKeyHash, {
345
340
  routeMaxRetentionPeriod: this.routeMaxRetentionPeriod,
346
- signal: this.closeController.signal
341
+ signal: this.closeController.signal,
347
342
  });
348
343
  this.started = true;
349
344
  this.stopping = false;
@@ -353,14 +348,14 @@ export class DirectStream extends TypedEventEmitter {
353
348
  await Promise.all(this.multicodecs.map((multicodec) => this.components.registrar.handle(multicodec, this._onIncomingStream, {
354
349
  maxInboundStreams: this.maxInboundStreams,
355
350
  maxOutboundStreams: this.maxOutboundStreams,
356
- runOnTransientConnection: false
351
+ runOnTransientConnection: false,
357
352
  })));
358
353
  // register protocol with topology
359
354
  // Topology callbacks called on connection manager changes
360
355
  this._registrarTopologyIds = await Promise.all(this.multicodecs.map((multicodec) => this.components.registrar.register(multicodec, {
361
356
  onConnect: this.onPeerConnected.bind(this),
362
357
  onDisconnect: this.onPeerDisconnected.bind(this),
363
- notifyOnTransient: false
358
+ notifyOnTransient: false,
364
359
  })));
365
360
  // All existing connections are like new ones for us. To deduplication on remotes so we only resuse one connection for this protocol (we could be connected with many connections)
366
361
  const peerToConnections = new Map();
@@ -565,8 +560,8 @@ export class DirectStream extends TypedEventEmitter {
565
560
  leaving: [peerKeyHash],
566
561
  header: new MessageHeader({
567
562
  session: this.session,
568
- mode: new SilentDelivery({ to: dependent, redundancy: 2 })
569
- })
563
+ mode: new SilentDelivery({ to: dependent, redundancy: 2 }),
564
+ }),
570
565
  }).sign(this.sign));
571
566
  }
572
567
  this.checkIsAlive([peerKeyHash]);
@@ -595,24 +590,16 @@ export class DirectStream extends TypedEventEmitter {
595
590
  }
596
591
  }
597
592
  }
598
- /**
599
- * invoked when a new peer becomes reachable
600
- * @param publicKeyHash
601
- */
602
593
  onPeerReachable(publicKey) {
603
594
  // override this fn
604
595
  this.dispatchEvent(new CustomEvent("peer:reachable", { detail: publicKey }));
605
596
  }
606
- /**
607
- * invoked when a new peer becomes unreachable
608
- * @param publicKeyHash
609
- */
610
597
  onPeerUnreachable(hash) {
611
598
  // override this fn
612
599
  this.dispatchEvent(
613
600
  // TODO types
614
601
  new CustomEvent("peer:unreachable", {
615
- detail: this.peerKeyHashToPublicKey.get(hash)
602
+ detail: this.peerKeyHashToPublicKey.get(hash),
616
603
  }));
617
604
  }
618
605
  updateSession(key, session) {
@@ -627,7 +614,7 @@ export class DirectStream extends TypedEventEmitter {
627
614
  this.dispatchEvent(
628
615
  // TODO types
629
616
  new CustomEvent("peer:session", {
630
- detail: key
617
+ detail: key,
631
618
  }));
632
619
  }
633
620
  /**
@@ -649,12 +636,12 @@ export class DirectStream extends TypedEventEmitter {
649
636
  peerId,
650
637
  publicKey,
651
638
  protocol,
652
- connId
639
+ connId,
653
640
  });
654
641
  this.peers.set(publicKeyHash, peerStreams);
655
642
  this.updateSession(publicKey, -1);
656
643
  peerStreams.addEventListener("close", () => this._removePeer(publicKey), {
657
- once: true
644
+ once: true,
658
645
  });
659
646
  return peerStreams;
660
647
  }
@@ -731,7 +718,7 @@ export class DirectStream extends TypedEventEmitter {
731
718
  // Ensure the message is valid before processing it
732
719
  const message = Message.from(msg);
733
720
  this.dispatchEvent(new CustomEvent("message", {
734
- detail: message
721
+ detail: message,
735
722
  }));
736
723
  if (message instanceof DataMessage) {
737
724
  // DONT await this since it might introduce a dead-lock
@@ -787,7 +774,7 @@ export class DirectStream extends TypedEventEmitter {
787
774
  await this.maybeAcknowledgeMessage(peerStream, message, seenBefore);
788
775
  if (seenBefore === 0 && message.data) {
789
776
  this.dispatchEvent(new CustomEvent("data", {
790
- detail: message
777
+ detail: message,
791
778
  }));
792
779
  }
793
780
  }
@@ -805,7 +792,7 @@ export class DirectStream extends TypedEventEmitter {
805
792
  // DONT await this since it might introduce a dead-lock
806
793
  if (message.header.mode instanceof SeekDelivery) {
807
794
  if (seenBefore < message.header.mode.redundancy) {
808
- const to = [...this.peers.values()].filter((x) => !message.header.signatures?.publicKeys.find((y) => y.equals(x.publicKey)) && x != peerStream);
795
+ const to = [...this.peers.values()].filter((x) => !message.header.signatures?.publicKeys.find((y) => y.equals(x.publicKey)) && x !== peerStream);
809
796
  if (to.length > 0) {
810
797
  this.relayMessage(from, message, to);
811
798
  }
@@ -853,8 +840,8 @@ export class DirectStream extends TypedEventEmitter {
853
840
  ? new MultiAddrinfo(this.components.addressManager
854
841
  .getAddresses()
855
842
  .map((x) => x.toString()))
856
- : undefined
857
- })
843
+ : undefined,
844
+ }),
858
845
  }).sign(this.sign), [peerStream]);
859
846
  }
860
847
  }
@@ -943,8 +930,8 @@ export class DirectStream extends TypedEventEmitter {
943
930
  return this.publish(undefined, {
944
931
  mode: new SeekDelivery({
945
932
  to: remotes,
946
- redundancy: DEFAULT_SEEK_MESSAGE_REDUDANCY
947
- })
933
+ redundancy: DEFAULT_SEEK_MESSAGE_REDUDANCY,
934
+ }),
948
935
  })
949
936
  .then(() => true)
950
937
  .catch((e) => {
@@ -973,7 +960,7 @@ export class DirectStream extends TypedEventEmitter {
973
960
  ? options.mode
974
961
  : new SilentDelivery({
975
962
  to: options.to,
976
- redundancy: DEFAULT_SILENT_MESSAGE_REDUDANCY
963
+ redundancy: DEFAULT_SILENT_MESSAGE_REDUDANCY,
977
964
  });
978
965
  if (mode instanceof AcknowledgeDelivery ||
979
966
  mode instanceof SilentDelivery ||
@@ -994,7 +981,7 @@ export class DirectStream extends TypedEventEmitter {
994
981
  !this.routes.isUpToDate(hash, neighbourRoutes)) {
995
982
  mode = new SeekDelivery({
996
983
  to: mode.to,
997
- redundancy: DEFAULT_SEEK_MESSAGE_REDUDANCY
984
+ redundancy: DEFAULT_SEEK_MESSAGE_REDUDANCY,
998
985
  });
999
986
  break;
1000
987
  }
@@ -1006,8 +993,8 @@ export class DirectStream extends TypedEventEmitter {
1006
993
  id: options.id,
1007
994
  mode,
1008
995
  session: this.session,
1009
- priority: options.priority
1010
- })
996
+ priority: options.priority,
997
+ }),
1011
998
  });
1012
999
  // TODO allow messages to also be sent unsigned (signaturePolicy property)
1013
1000
  await message.sign(this.sign);
@@ -1017,7 +1004,7 @@ export class DirectStream extends TypedEventEmitter {
1017
1004
  * Publishes messages to all peers
1018
1005
  */
1019
1006
  async publish(data, options = {
1020
- mode: new SeekDelivery({ redundancy: DEFAULT_SEEK_MESSAGE_REDUDANCY })
1007
+ mode: new SeekDelivery({ redundancy: DEFAULT_SEEK_MESSAGE_REDUDANCY }),
1021
1008
  }) {
1022
1009
  if (!this.started) {
1023
1010
  throw new NotStartedError();
@@ -1081,7 +1068,7 @@ export class DirectStream extends TypedEventEmitter {
1081
1068
  const haveReceivers = messageToSet.size > 0;
1082
1069
  if (haveReceivers && this.peers.size === 0) {
1083
1070
  return {
1084
- promise: Promise.reject(new DeliveryError("Cannnot deliver message to peers because there are no peers to deliver to"))
1071
+ promise: Promise.reject(new DeliveryError("Cannnot deliver message to peers because there are no peers to deliver to")),
1085
1072
  };
1086
1073
  }
1087
1074
  const deliveryDeferredPromise = pDefer();
@@ -1129,7 +1116,7 @@ export class DirectStream extends TypedEventEmitter {
1129
1116
  }
1130
1117
  if (!hasAll && willGetAllAcknowledgements) {
1131
1118
  deliveryDeferredPromise.reject(new DeliveryError(`Failed to get message ${idString} ${filterMessageForSeenCounter} ${[
1132
- ...messageToSet
1119
+ ...messageToSet,
1133
1120
  ]} delivery acknowledges from all nodes (${fastestNodesReached.size}/${messageToSet.size}). Mode: ${message.header.mode.constructor.name}. Redundancy: ${message.header.mode["redundancy"]}`));
1134
1121
  }
1135
1122
  else {
@@ -1185,7 +1172,7 @@ export class DirectStream extends TypedEventEmitter {
1185
1172
  clear: () => {
1186
1173
  clear();
1187
1174
  deliveryDeferredPromise.resolve();
1188
- }
1175
+ },
1189
1176
  });
1190
1177
  return deliveryDeferredPromise;
1191
1178
  }
@@ -1291,7 +1278,9 @@ export class DirectStream extends TypedEventEmitter {
1291
1278
  .map((x) => multiaddr(x));
1292
1279
  if (addresses.length > 0) {
1293
1280
  try {
1294
- await this.components.connectionManager.openConnection(addresses);
1281
+ await this.components.connectionManager.openConnection([
1282
+ addresses[addresses.length - 1],
1283
+ ]);
1295
1284
  }
1296
1285
  catch (error) {
1297
1286
  logger.info("Failed to connect directly to: " +
@@ -1314,7 +1303,7 @@ export class DirectStream extends TypedEventEmitter {
1314
1303
  return true;
1315
1304
  }, {
1316
1305
  signal: options?.signal,
1317
- timeout: options?.timeout ?? 10 * 1000
1306
+ timeout: options?.timeout ?? 10 * 1000,
1318
1307
  });
1319
1308
  }
1320
1309
  catch (error) {
@@ -1331,7 +1320,7 @@ export class DirectStream extends TypedEventEmitter {
1331
1320
  // Dontwait for readlable https://github.com/libp2p/js-libp2p/issues/2321
1332
1321
  await waitFor(() => /* stream.isReadable && */ stream.isWritable, {
1333
1322
  signal: options?.signal,
1334
- timeout: options?.timeout ?? 10 * 1000
1323
+ timeout: options?.timeout ?? 10 * 1000,
1335
1324
  });
1336
1325
  }
1337
1326
  catch (error) {