@peerbit/shared-log 13.2.15 → 13.2.17

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peerbit/shared-log",
3
- "version": "13.2.15",
3
+ "version": "13.2.17",
4
4
  "description": "Shared log",
5
5
  "sideEffects": false,
6
6
  "type": "module",
@@ -62,35 +62,35 @@
62
62
  "pino": "^9.4.0",
63
63
  "uint8arrays": "^5.1.0",
64
64
  "@peerbit/any-store": "2.2.13",
65
- "@peerbit/blocks-interface": "2.1.3",
65
+ "@peerbit/blocks-interface": "2.1.4",
66
+ "@peerbit/blocks": "4.2.8",
66
67
  "@peerbit/cache": "3.1.1",
67
68
  "@peerbit/crypto": "3.1.4",
68
- "@peerbit/blocks": "4.2.7",
69
69
  "@peerbit/diagnostics": "0.0.1",
70
- "@peerbit/indexer-interface": "3.0.8",
71
70
  "@peerbit/indexer-sqlite3": "3.0.11",
72
- "@peerbit/log": "6.2.10",
71
+ "@peerbit/log": "6.2.11",
73
72
  "@peerbit/logger": "2.0.1",
74
- "@peerbit/program": "6.0.40",
75
- "@peerbit/pubsub": "5.3.5",
76
- "@peerbit/pubsub-interface": "5.1.7",
77
- "@peerbit/rpc": "6.1.8",
78
- "@peerbit/stream-interface": "6.0.13",
73
+ "@peerbit/pubsub": "5.3.7",
79
74
  "@peerbit/riblt": "1.2.0",
80
- "@peerbit/time": "3.0.1"
75
+ "@peerbit/indexer-interface": "3.0.8",
76
+ "@peerbit/rpc": "6.1.10",
77
+ "@peerbit/stream-interface": "6.0.14",
78
+ "@peerbit/program": "6.0.42",
79
+ "@peerbit/time": "3.0.1",
80
+ "@peerbit/pubsub-interface": "5.1.8"
81
81
  },
82
82
  "optionalDependencies": {
83
- "@peerbit/native-backbone": "0.2.3",
83
+ "@peerbit/native-backbone": "0.2.4",
84
84
  "@peerbit/shared-log-rust": "0.1.3"
85
85
  },
86
86
  "devDependencies": {
87
87
  "@types/libsodium-wrappers": "^0.7.14",
88
88
  "@types/pidusage": "^2.0.5",
89
89
  "uuid": "^11.1.1",
90
- "@peerbit/indexer-rust": "1.0.6",
91
90
  "@peerbit/any-store-rust": "0.1.3",
92
- "@peerbit/test-utils": "3.1.12",
93
- "peerbit": "5.3.12"
91
+ "@peerbit/test-utils": "3.1.14",
92
+ "@peerbit/indexer-rust": "1.0.6",
93
+ "peerbit": "5.3.14"
94
94
  },
95
95
  "repository": {
96
96
  "type": "git",
package/src/index.ts CHANGED
@@ -16342,6 +16342,8 @@ export class SharedLog<
16342
16342
  sync: options?.sync,
16343
16343
  isEntryRecentlyKnownByPeer: (hash, peer, maxAgeMs) =>
16344
16344
  this.isEntryRecentlyKnownByPeer(hash, peer, maxAgeMs),
16345
+ peerSupportsRawExchangeHeads: (peer) =>
16346
+ this.peerSupportsRawExchangeHeads(peer),
16345
16347
  sendRawExchangeHeads,
16346
16348
  });
16347
16349
  } else {
@@ -16359,6 +16361,8 @@ export class SharedLog<
16359
16361
  sync: options?.sync,
16360
16362
  isEntryRecentlyKnownByPeer: (hash, peer, maxAgeMs) =>
16361
16363
  this.isEntryRecentlyKnownByPeer(hash, peer, maxAgeMs),
16364
+ peerSupportsRawExchangeHeads: (peer) =>
16365
+ this.peerSupportsRawExchangeHeads(peer),
16362
16366
  sendRawExchangeHeads,
16363
16367
  });
16364
16368
  } else {
@@ -16381,6 +16385,8 @@ export class SharedLog<
16381
16385
  sync: options?.sync,
16382
16386
  isEntryRecentlyKnownByPeer: (hash, peer, maxAgeMs) =>
16383
16387
  this.isEntryRecentlyKnownByPeer(hash, peer, maxAgeMs),
16388
+ peerSupportsRawExchangeHeads: (peer) =>
16389
+ this.peerSupportsRawExchangeHeads(peer),
16384
16390
  sendRawExchangeHeads,
16385
16391
  }) as Syncronizer<R>;
16386
16392
  }
package/src/sync/index.ts CHANGED
@@ -172,6 +172,7 @@ export type SynchronizerComponents<R extends "u32" | "u64"> = {
172
172
  peer: string,
173
173
  maxAgeMs: number,
174
174
  ) => boolean;
175
+ peerSupportsRawExchangeHeads?: (peer: string) => boolean;
175
176
  sendRawExchangeHeads?: RawExchangeHeadsSender;
176
177
  };
177
178
  export type SynchronizerConstructor<R extends "u32" | "u64"> = new (
@@ -558,6 +558,7 @@ export class SimpleSyncronizer<R extends "u32" | "u64">
558
558
  peer: string,
559
559
  maxAgeMs: number,
560
560
  ) => boolean;
561
+ private peerSupportsRawExchangeHeads?: (peer: string) => boolean;
561
562
  private sendRawExchangeHeads?: RawExchangeHeadsSender;
562
563
  private recentlySentExchangeHeads: Map<string, Map<string, number>>;
563
564
  private pendingMaybeSyncResponses: Map<
@@ -602,6 +603,7 @@ export class SimpleSyncronizer<R extends "u32" | "u64">
602
603
  peer: string,
603
604
  maxAgeMs: number,
604
605
  ) => boolean;
606
+ peerSupportsRawExchangeHeads?: (peer: string) => boolean;
605
607
  sendRawExchangeHeads?: RawExchangeHeadsSender;
606
608
  }) {
607
609
  this.syncInFlightQueue = new Map();
@@ -638,6 +640,7 @@ export class SimpleSyncronizer<R extends "u32" | "u64">
638
640
  this.resolveHashListForSymbols = properties.resolveHashListForSymbols;
639
641
  this.syncOptions = properties.sync;
640
642
  this.isEntryRecentlyKnownByPeer = properties.isEntryRecentlyKnownByPeer;
643
+ this.peerSupportsRawExchangeHeads = properties.peerSupportsRawExchangeHeads;
641
644
  this.sendRawExchangeHeads = properties.sendRawExchangeHeads;
642
645
  this.recentlySentExchangeHeads = new Map();
643
646
  this.pendingMaybeSyncResponses = new Map();
@@ -3958,13 +3961,16 @@ export class SimpleSyncronizer<R extends "u32" | "u64">
3958
3961
  this.maxCoordinatesPerMessage,
3959
3962
  );
3960
3963
  for (const target of targets) {
3964
+ const requestRawExchangeHeads =
3965
+ this.syncOptions?.rawExchangeHeads === true &&
3966
+ this.peerSupportsRawExchangeHeads?.(target) === true;
3961
3967
  for (const chunk of chunks) {
3962
3968
  if (!this.isSyncDispatchLifecycleActive(lifecycle, target)) {
3963
3969
  break;
3964
3970
  }
3965
3971
  try {
3966
3972
  await this.rpc.send(
3967
- this.syncOptions?.rawExchangeHeads
3973
+ requestRawExchangeHeads
3968
3974
  ? new RequestMaybeSyncCoordinateCapabilities({
3969
3975
  hashNumbers: chunk,
3970
3976
  })
@@ -3993,13 +3999,16 @@ export class SimpleSyncronizer<R extends "u32" | "u64">
3993
3999
  if (stringHashes.length > 0) {
3994
4000
  const chunks = this.chunk(stringHashes, this.maxHashesPerMessage);
3995
4001
  for (const target of targets) {
4002
+ const requestRawExchangeHeads =
4003
+ this.syncOptions?.rawExchangeHeads === true &&
4004
+ this.peerSupportsRawExchangeHeads?.(target) === true;
3996
4005
  for (const chunk of chunks) {
3997
4006
  if (!this.isSyncDispatchLifecycleActive(lifecycle, target)) {
3998
4007
  break;
3999
4008
  }
4000
4009
  try {
4001
4010
  await this.rpc.send(
4002
- this.syncOptions?.rawExchangeHeads
4011
+ requestRawExchangeHeads
4003
4012
  ? new ResponseMaybeSyncCapabilities({
4004
4013
  hashes: chunk,
4005
4014
  })