@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/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/sync/index.d.ts +1 -0
- package/dist/src/sync/index.d.ts.map +1 -1
- package/dist/src/sync/simple.d.ts +2 -0
- package/dist/src/sync/simple.d.ts.map +1 -1
- package/dist/src/sync/simple.js +8 -2
- package/dist/src/sync/simple.js.map +1 -1
- package/package.json +15 -15
- package/src/index.ts +6 -0
- package/src/sync/index.ts +1 -0
- package/src/sync/simple.ts +11 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@peerbit/shared-log",
|
|
3
|
-
"version": "13.2.
|
|
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.
|
|
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.
|
|
71
|
+
"@peerbit/log": "6.2.11",
|
|
73
72
|
"@peerbit/logger": "2.0.1",
|
|
74
|
-
"@peerbit/
|
|
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/
|
|
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.
|
|
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.
|
|
93
|
-
"peerbit": "
|
|
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 (
|
package/src/sync/simple.ts
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
4011
|
+
requestRawExchangeHeads
|
|
4003
4012
|
? new ResponseMaybeSyncCapabilities({
|
|
4004
4013
|
hashes: chunk,
|
|
4005
4014
|
})
|