@peerbit/shared-log 13.1.17 → 13.2.0
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/benchmark/index.js +91 -29
- package/dist/benchmark/index.js.map +1 -1
- package/dist/benchmark/native-graph.js +120 -10
- package/dist/benchmark/native-graph.js.map +1 -1
- package/dist/benchmark/network-preset-e2e.d.ts +2 -0
- package/dist/benchmark/network-preset-e2e.d.ts.map +1 -0
- package/dist/benchmark/network-preset-e2e.js +497 -0
- package/dist/benchmark/network-preset-e2e.js.map +1 -0
- package/dist/benchmark/receive-prune.d.ts +2 -0
- package/dist/benchmark/receive-prune.d.ts.map +1 -0
- package/dist/benchmark/receive-prune.js +816 -0
- package/dist/benchmark/receive-prune.js.map +1 -0
- package/dist/benchmark/sync-catchup.d.ts +1 -2
- package/dist/benchmark/sync-catchup.d.ts.map +1 -1
- package/dist/benchmark/sync-catchup.js +175 -7
- package/dist/benchmark/sync-catchup.js.map +1 -1
- package/dist/src/checked-prune.d.ts +3 -0
- package/dist/src/checked-prune.d.ts.map +1 -1
- package/dist/src/checked-prune.js +24 -0
- package/dist/src/checked-prune.js.map +1 -1
- package/dist/src/exchange-heads.d.ts +238 -1
- package/dist/src/exchange-heads.d.ts.map +1 -1
- package/dist/src/exchange-heads.js +1512 -36
- package/dist/src/exchange-heads.js.map +1 -1
- package/dist/src/index.d.ts +276 -5
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +7358 -666
- package/dist/src/index.js.map +1 -1
- package/dist/src/pid.d.ts.map +1 -1
- package/dist/src/pid.js +25 -9
- package/dist/src/pid.js.map +1 -1
- package/dist/src/ranges.d.ts +11 -2
- package/dist/src/ranges.d.ts.map +1 -1
- package/dist/src/ranges.js +74 -30
- package/dist/src/ranges.js.map +1 -1
- package/dist/src/sync/index.d.ts +77 -2
- package/dist/src/sync/index.d.ts.map +1 -1
- package/dist/src/sync/rateless-iblt.d.ts +11 -5
- package/dist/src/sync/rateless-iblt.d.ts.map +1 -1
- package/dist/src/sync/rateless-iblt.js +123 -60
- package/dist/src/sync/rateless-iblt.js.map +1 -1
- package/dist/src/sync/simple.d.ts +56 -4
- package/dist/src/sync/simple.d.ts.map +1 -1
- package/dist/src/sync/simple.js +495 -63
- package/dist/src/sync/simple.js.map +1 -1
- package/dist/src/utils.d.ts +2 -1
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +49 -2
- package/dist/src/utils.js.map +1 -1
- package/package.json +27 -17
- package/src/checked-prune.ts +27 -0
- package/src/exchange-heads.ts +2018 -41
- package/src/index.ts +13114 -3167
- package/src/pid.ts +24 -13
- package/src/ranges.ts +90 -40
- package/src/sync/index.ts +115 -2
- package/src/sync/rateless-iblt.ts +154 -75
- package/src/sync/simple.ts +590 -95
- package/src/utils.ts +73 -3
|
@@ -1,7 +1,74 @@
|
|
|
1
|
-
import { Entry } from "@peerbit/log";
|
|
1
|
+
import { Entry, type PreparedAppendJoinFacts, type PreparedRawEntryV0Facts, ShallowEntry } from "@peerbit/log";
|
|
2
2
|
import { Log } from "@peerbit/log";
|
|
3
3
|
import { TransportMessage } from "./message.js";
|
|
4
|
+
import type { SyncProfileFn } from "./sync/index.js";
|
|
5
|
+
type NativeBackboneAppendProfile = {
|
|
6
|
+
nativeBackboneRawReceiveInputCopyMs: number;
|
|
7
|
+
nativeBackboneRawReceivePrepareMs: number;
|
|
8
|
+
nativeBackboneRawReceiveDigestMs: number;
|
|
9
|
+
nativeBackboneRawReceiveCidStringMs: number;
|
|
10
|
+
nativeBackboneRawReceiveExpectedCidMs: number;
|
|
11
|
+
nativeBackboneRawReceiveStorageParseMs: number;
|
|
12
|
+
nativeBackboneRawReceiveMetaParseMs: number;
|
|
13
|
+
nativeBackboneRawReceivePayloadParseMs: number;
|
|
14
|
+
nativeBackboneRawReceiveSignatureParseMs: number;
|
|
15
|
+
nativeBackboneRawReceiveSignableMs: number;
|
|
16
|
+
nativeBackboneRawReceiveVerifyBatchMs: number;
|
|
17
|
+
nativeBackboneRawReceiveVerifyFallbackMs: number;
|
|
18
|
+
nativeBackboneRawReceivePrepareColumnsMs: number;
|
|
19
|
+
};
|
|
20
|
+
type RawReceiveNativeBackbone = {
|
|
21
|
+
prepareRawReceiveBatch(blocks: Uint8Array[]): PreparedRawEntryV0Facts[];
|
|
22
|
+
prepareRawReceiveExpectedColumnsBatch?(blocks: Uint8Array[], hashes: string[], options?: {
|
|
23
|
+
verifySignatures?: boolean;
|
|
24
|
+
}): PreparedRawEntryV0FactsColumns | undefined;
|
|
25
|
+
prepareRawReceiveColumnsBatch?(blocks: Uint8Array[], hashes?: string[], options?: {
|
|
26
|
+
verifySignatures?: boolean;
|
|
27
|
+
}): PreparedRawEntryV0FactsColumns | undefined;
|
|
28
|
+
verifyPreparedRawReceiveEntries?(hashes: Iterable<string>): boolean[] | undefined;
|
|
29
|
+
clearPreparedRawReceiveEntries?(hashes: Iterable<string>): number;
|
|
30
|
+
setAppendProfileEnabled?(enabled: boolean): void;
|
|
31
|
+
resetAppendProfile?(): void;
|
|
32
|
+
appendProfile?(): NativeBackboneAppendProfile;
|
|
33
|
+
};
|
|
34
|
+
type PreparedRawEntryV0FactsColumns = [
|
|
35
|
+
cids: string[],
|
|
36
|
+
hashDigestBytes: Array<Uint8Array | undefined>,
|
|
37
|
+
byteLengths: Uint32Array,
|
|
38
|
+
clockIds: Uint8Array[],
|
|
39
|
+
wallTimes: BigUint64Array,
|
|
40
|
+
logicals: Uint32Array,
|
|
41
|
+
gids: string[],
|
|
42
|
+
nexts: string[][],
|
|
43
|
+
types: Uint8Array,
|
|
44
|
+
metaBytes: Uint8Array[],
|
|
45
|
+
metaDatas: Array<Uint8Array | undefined>,
|
|
46
|
+
payloadByteLengths: Uint32Array,
|
|
47
|
+
signatureVerified: Uint8Array,
|
|
48
|
+
requestedReplicas: Uint32Array,
|
|
49
|
+
hashNumbers: string[] | BigUint64Array
|
|
50
|
+
];
|
|
51
|
+
type PreparedRawEntryV0FactsSource = PreparedRawEntryV0Facts | PreparedRawEntryV0FactsColumns;
|
|
4
52
|
export declare const EXCHANGE_HEADS_REPAIR_HINT = 1;
|
|
53
|
+
/**
|
|
54
|
+
* Capability bit: the peer can receive `RawExchangeHeadsMessage` ([0, 7]).
|
|
55
|
+
* Advertised once per peer via {@link SyncCapabilitiesMessage} (and echoed by
|
|
56
|
+
* the per-request capability messages of the simple synchronizer), so live
|
|
57
|
+
* append gossip can pick the raw path without a per-request round trip.
|
|
58
|
+
*/
|
|
59
|
+
export declare const SYNC_CAPABILITY_RAW_EXCHANGE_HEADS = 1;
|
|
60
|
+
/**
|
|
61
|
+
* One-shot capability advertisement, sent to a peer when it (or we) subscribe
|
|
62
|
+
* to the program topic and `sync.rawExchangeHeads` is enabled. Peers that do
|
|
63
|
+
* not know this message drop it as an unknown variant; peers that never
|
|
64
|
+
* advertise keep receiving the plain `ExchangeHeadsMessage` path.
|
|
65
|
+
*/
|
|
66
|
+
export declare class SyncCapabilitiesMessage extends TransportMessage {
|
|
67
|
+
capabilities: number;
|
|
68
|
+
constructor(props?: {
|
|
69
|
+
capabilities?: number;
|
|
70
|
+
});
|
|
71
|
+
}
|
|
5
72
|
/**
|
|
6
73
|
* This thing allows use to faster sync since we can provide
|
|
7
74
|
* references that can be read concurrently to
|
|
@@ -15,13 +82,132 @@ export declare class EntryWithRefs<T> {
|
|
|
15
82
|
gidRefrences: string[];
|
|
16
83
|
});
|
|
17
84
|
}
|
|
85
|
+
export declare class RawEntryWithRefs {
|
|
86
|
+
hash: string;
|
|
87
|
+
bytes: Uint8Array;
|
|
88
|
+
gidRefrences: string[];
|
|
89
|
+
constructor(properties: {
|
|
90
|
+
hash: string;
|
|
91
|
+
bytes: Uint8Array;
|
|
92
|
+
gidRefrences: string[];
|
|
93
|
+
});
|
|
94
|
+
}
|
|
18
95
|
export declare class ExchangeHeadsMessage<T> extends TransportMessage {
|
|
19
96
|
heads: EntryWithRefs<T>[];
|
|
20
97
|
reserved: Uint8Array;
|
|
98
|
+
preparedHashes?: string[];
|
|
21
99
|
constructor(props: {
|
|
22
100
|
heads: EntryWithRefs<T>[];
|
|
101
|
+
preparedHashes?: string[];
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
export declare class RawExchangeHeadsMessage extends TransportMessage {
|
|
105
|
+
heads: RawEntryWithRefs[];
|
|
106
|
+
reserved: Uint8Array;
|
|
107
|
+
constructor(props: {
|
|
108
|
+
heads: RawEntryWithRefs[];
|
|
109
|
+
reserved?: Uint8Array;
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* The stash surface a {@link StashBackedRawExchangeHeadsMessage} consumes:
|
|
114
|
+
* entry block bytes kept in native (wasm) memory by the wire-level decoder,
|
|
115
|
+
* keyed by the enclosing DataMessage id.
|
|
116
|
+
*/
|
|
117
|
+
export type RawExchangeHeadsStash = {
|
|
118
|
+
stashedBlocks(id: Uint8Array, indexes?: Uint32Array): Uint8Array[] | undefined;
|
|
119
|
+
release(id: Uint8Array): boolean;
|
|
120
|
+
};
|
|
121
|
+
/**
|
|
122
|
+
* A head of a stash-backed raw exchange message: hash/refs/length come from
|
|
123
|
+
* stash metadata; `bytes` materializes lazily (and is counted) because the
|
|
124
|
+
* fused receive path never needs the block bytes in JS.
|
|
125
|
+
*/
|
|
126
|
+
export declare class StashBackedRawEntryWithRefs {
|
|
127
|
+
private readonly message;
|
|
128
|
+
readonly stashIndex: number;
|
|
129
|
+
readonly hash: string;
|
|
130
|
+
readonly gidRefrences: string[];
|
|
131
|
+
readonly byteLength: number;
|
|
132
|
+
private bytesValue?;
|
|
133
|
+
constructor(message: StashBackedRawExchangeHeadsMessage, stashIndex: number, hash: string, gidRefrences: string[], byteLength: number);
|
|
134
|
+
get bytes(): Uint8Array;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* A raw exchange-heads message resolved from the native wire stash instead of
|
|
138
|
+
* a TS borsh decode: JS holds only head facts while the entry block bytes stay
|
|
139
|
+
* in wasm memory until `prepareStashedRawReceive*` consumes them there — or a
|
|
140
|
+
* fallback path materializes them per head.
|
|
141
|
+
*/
|
|
142
|
+
export declare class StashBackedRawExchangeHeadsMessage extends RawExchangeHeadsMessage {
|
|
143
|
+
readonly messageId: Uint8Array;
|
|
144
|
+
/** Wasm-to-JS head byte materializations (0 on the fully fused path). */
|
|
145
|
+
bytesMaterializedCount: number;
|
|
146
|
+
private released;
|
|
147
|
+
private readonly stash;
|
|
148
|
+
private readonly resolveReleasedBlock?;
|
|
149
|
+
constructor(properties: {
|
|
150
|
+
messageId: Uint8Array;
|
|
151
|
+
hashes: string[];
|
|
152
|
+
gidRefrences: string[][];
|
|
153
|
+
byteLengths: Uint32Array;
|
|
154
|
+
reserved: Uint8Array;
|
|
155
|
+
stash: RawExchangeHeadsStash;
|
|
156
|
+
resolveReleasedBlock?: (hash: string) => Uint8Array | undefined;
|
|
23
157
|
});
|
|
158
|
+
materializeHeadBytes(index: number, hash: string): Uint8Array;
|
|
159
|
+
release(): boolean;
|
|
160
|
+
}
|
|
161
|
+
export declare const isStashBackedRawExchangeHeadsMessage: (message: TransportMessage) => message is StashBackedRawExchangeHeadsMessage;
|
|
162
|
+
export declare const getRawExchangeHeadByteLength: (head: RawEntryWithRefs) => number;
|
|
163
|
+
/**
|
|
164
|
+
* Stash indexes for a subset of a stash-backed message's heads (in subset
|
|
165
|
+
* order), or undefined when any head is not stash-backed.
|
|
166
|
+
*/
|
|
167
|
+
export declare const getRawExchangeHeadStashIndexes: (heads: RawEntryWithRefs[]) => Uint32Array | undefined;
|
|
168
|
+
export type RawReceiveHashSelection = Iterable<string> | {
|
|
169
|
+
hashes?: Iterable<string>;
|
|
170
|
+
indexes?: Iterable<number>;
|
|
171
|
+
droppedIndexes?: Iterable<number>;
|
|
172
|
+
};
|
|
173
|
+
declare class PreparedRawEntryWithRefs<T> {
|
|
174
|
+
private readonly head;
|
|
175
|
+
private readonly facts;
|
|
176
|
+
private readonly factsIndex;
|
|
177
|
+
private readonly onJsEntryDecode?;
|
|
178
|
+
readonly gidRefrences: string[];
|
|
179
|
+
private entryValue?;
|
|
180
|
+
private shallowHeadValue?;
|
|
181
|
+
private keychain?;
|
|
182
|
+
private encodingValue?;
|
|
183
|
+
constructor(head: RawEntryWithRefs, facts: PreparedRawEntryV0FactsSource, factsIndex?: number, onJsEntryDecode?: (() => void) | undefined);
|
|
184
|
+
get entry(): Entry<T>;
|
|
185
|
+
set entry(value: Entry<T>);
|
|
186
|
+
initEntry(props: any): void;
|
|
187
|
+
get hash(): string;
|
|
188
|
+
get preparedGid(): string;
|
|
189
|
+
get preparedRequestedReplicas(): number | undefined;
|
|
190
|
+
get preparedSignatureVerified(): boolean;
|
|
191
|
+
toShallow(isHead?: boolean): ShallowEntry;
|
|
192
|
+
toPreparedAppendJoinFacts(): PreparedAppendJoinFacts;
|
|
24
193
|
}
|
|
194
|
+
export declare const isPreparedRawEntryWithRefs: (head: EntryWithRefs<any>) => head is EntryWithRefs<any> & PreparedRawEntryWithRefs<any>;
|
|
195
|
+
export declare const getExchangeHeadHash: (head: EntryWithRefs<any>) => string;
|
|
196
|
+
export declare const initExchangeHeadEntry: (head: EntryWithRefs<any>, props: any) => void;
|
|
197
|
+
export declare const getPreparedRawExchangeHeadGid: (head: EntryWithRefs<any>) => string | undefined;
|
|
198
|
+
export declare const getPreparedRawExchangeHeadRequestedReplicas: (head: EntryWithRefs<any>) => number | undefined;
|
|
199
|
+
export declare const getPreparedRawExchangeHeadSignatureVerified: (head: EntryWithRefs<any>) => boolean | undefined;
|
|
200
|
+
export declare const getPreparedRawExchangeHeadShallowEntry: (head: EntryWithRefs<any>) => ShallowEntry | undefined;
|
|
201
|
+
export declare const getPreparedRawExchangeHeadAppendFacts: (head: EntryWithRefs<any>) => PreparedAppendJoinFacts | undefined;
|
|
202
|
+
export declare const getPreparedRawExchangeAppendFacts: (entry: Entry<any>) => PreparedAppendJoinFacts | undefined;
|
|
203
|
+
export declare const getPreparedRawExchangeRequestedReplicas: (entry: Entry<any>) => number | undefined;
|
|
204
|
+
export declare const getPreparedRawExchangeHashNumber: (entry: Entry<any>) => string | bigint | undefined;
|
|
205
|
+
export declare const getPreparedRawExchangeGid: (entry: Entry<any>) => string | undefined;
|
|
206
|
+
export declare const getPreparedRawExchangeTimestamp: (entry: Entry<any>) => {
|
|
207
|
+
wallTime: bigint;
|
|
208
|
+
logical: number;
|
|
209
|
+
} | undefined;
|
|
210
|
+
export declare const getPreparedRawExchangeNext: (entry: Entry<any>) => string[] | undefined;
|
|
25
211
|
export declare class RequestIPrune extends TransportMessage {
|
|
26
212
|
hashes: string[];
|
|
27
213
|
constructor(props: {
|
|
@@ -34,6 +220,57 @@ export declare class ResponseIPrune extends TransportMessage {
|
|
|
34
220
|
hashes: string[];
|
|
35
221
|
});
|
|
36
222
|
}
|
|
223
|
+
export declare const MAX_RAW_EXCHANGE_MESSAGE_SIZE: number;
|
|
224
|
+
export declare const EXCHANGE_HEADS_RESOLVE_BATCH_SIZE = 256;
|
|
37
225
|
export declare const createExchangeHeadsMessages: (log: Log<any>, heads: Entry<any>[] | string[] | Set<string>) => AsyncGenerator<ExchangeHeadsMessage<any>, void, void>;
|
|
226
|
+
export declare const createRawExchangeHeadsMessages: (log: Log<any>, heads: string[] | Set<string>, profile?: SyncProfileFn) => AsyncGenerator<RawExchangeHeadsMessage | ExchangeHeadsMessage<any>, void, void>;
|
|
227
|
+
export type RawExchangeHeadSendPlan = {
|
|
228
|
+
hashes: string[];
|
|
229
|
+
gidRefrences: string[][];
|
|
230
|
+
};
|
|
231
|
+
/**
|
|
232
|
+
* The head/reference selection of {@link createRawExchangeHeadsMessages}
|
|
233
|
+
* without resolving any block bytes: same visited-head deduplication, same
|
|
234
|
+
* reference-gid collection, same batching of the native index lookups. Used
|
|
235
|
+
* by the fused send path, where the block bytes stay in the native store and
|
|
236
|
+
* the payload is serialized in wasm. Returns `undefined` when the log has no
|
|
237
|
+
* native reference rows (callers fall back to the TS message path).
|
|
238
|
+
*/
|
|
239
|
+
export declare const collectRawExchangeHeadSendPlan: (log: Log<any>, heads: string[] | Set<string>) => RawExchangeHeadSendPlan | undefined;
|
|
240
|
+
export declare const materializeRawExchangeHeadsMessage: (message: RawExchangeHeadsMessage, log: Log<any>) => ExchangeHeadsMessage<any>;
|
|
241
|
+
export declare const materializeVerifiedRawExchangeHeadsMessage: (message: RawExchangeHeadsMessage, log: Log<any>, profile?: SyncProfileFn, options?: {
|
|
242
|
+
nativeBackbone?: RawReceiveNativeBackbone;
|
|
243
|
+
verifyNativeBackboneSignaturesDuringPrepare?: boolean;
|
|
244
|
+
deferNativeBackboneSignatureVerificationUntilSelection?: boolean;
|
|
245
|
+
deferNativeBackboneSignatureVerificationUntilCommit?: boolean;
|
|
246
|
+
prepareNativeBackboneExpectedColumnsAndSelection?: (properties: {
|
|
247
|
+
/** Lazy so the fused (stash-backed) path never builds JS block arrays. */
|
|
248
|
+
blocks: () => Uint8Array[];
|
|
249
|
+
hashes: string[];
|
|
250
|
+
verifySignatures: boolean;
|
|
251
|
+
}) => {
|
|
252
|
+
columns: PreparedRawEntryV0FactsColumns;
|
|
253
|
+
} | undefined | Promise<{
|
|
254
|
+
columns: PreparedRawEntryV0FactsColumns;
|
|
255
|
+
} | undefined>;
|
|
256
|
+
/**
|
|
257
|
+
* Stash-backed expected-columns prepare (blocks stay in wasm memory).
|
|
258
|
+
* Tried before the blocks-based nativeBackbone variants; undefined
|
|
259
|
+
* falls through to them.
|
|
260
|
+
*/
|
|
261
|
+
prepareNativeBackboneExpectedColumns?: (properties: {
|
|
262
|
+
hashes: string[];
|
|
263
|
+
verifySignatures: boolean;
|
|
264
|
+
}) => PreparedRawEntryV0FactsColumns | undefined;
|
|
265
|
+
tryPreparedRawReceiveFastDrop?: (properties: {
|
|
266
|
+
heads: RawEntryWithRefs[];
|
|
267
|
+
hashes: string[];
|
|
268
|
+
}) => boolean | Promise<boolean>;
|
|
269
|
+
selectPreparedRawReceiveHashes?: (properties: {
|
|
270
|
+
heads: RawEntryWithRefs[];
|
|
271
|
+
hashes: string[];
|
|
272
|
+
}) => RawReceiveHashSelection | undefined | Promise<RawReceiveHashSelection | undefined>;
|
|
273
|
+
}) => Promise<ExchangeHeadsMessage<any> | undefined>;
|
|
38
274
|
export declare const allEntriesWithUniqueGids: (log: Log<any>, entry: Entry<any>) => Promise<Entry<any>[]>;
|
|
275
|
+
export {};
|
|
39
276
|
//# sourceMappingURL=exchange-heads.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exchange-heads.d.ts","sourceRoot":"","sources":["../../src/exchange-heads.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"exchange-heads.d.ts","sourceRoot":"","sources":["../../src/exchange-heads.ts"],"names":[],"mappings":"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"}
|