@peerbit/shared-log 13.2.29 → 13.2.31
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/exchange-heads.d.ts +9 -3
- package/dist/src/exchange-heads.d.ts.map +1 -1
- package/dist/src/exchange-heads.js +9 -3
- package/dist/src/exchange-heads.js.map +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +24 -15
- package/dist/src/index.js.map +1 -1
- package/dist/src/replication.d.ts +44 -0
- package/dist/src/replication.d.ts.map +1 -1
- package/dist/src/replication.js +163 -1
- package/dist/src/replication.js.map +1 -1
- package/package.json +13 -10
- package/src/exchange-heads.ts +10 -3
- package/src/index.ts +33 -21
- package/src/replication.ts +103 -0
|
@@ -49,6 +49,50 @@ export declare class StoppedReplicating extends TransportMessage {
|
|
|
49
49
|
export declare class ReplicationPingMessage extends TransportMessage {
|
|
50
50
|
constructor();
|
|
51
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Decode-first replication-info V2 messages. This rollout only registers and
|
|
54
|
+
* advertises the final wire schemas; it never sends or applies these messages.
|
|
55
|
+
* A later negotiated phase must bind the signed transport session and an
|
|
56
|
+
* outstanding receiver challenge before any V2 payload is used.
|
|
57
|
+
*/
|
|
58
|
+
export declare class FullReplicationInfoV2Message extends TransportMessage {
|
|
59
|
+
receiverChallenge: Uint8Array;
|
|
60
|
+
senderEpoch: Uint8Array;
|
|
61
|
+
sequence: bigint;
|
|
62
|
+
segments: ReplicationRangeMessage<any>[];
|
|
63
|
+
constructor(properties: {
|
|
64
|
+
receiverChallenge: Uint8Array;
|
|
65
|
+
senderEpoch: Uint8Array;
|
|
66
|
+
sequence: bigint;
|
|
67
|
+
segments: ReplicationRangeMessage<any>[];
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
export declare class AddedReplicationInfoV2Message extends TransportMessage {
|
|
71
|
+
receiverChallenge: Uint8Array;
|
|
72
|
+
senderEpoch: Uint8Array;
|
|
73
|
+
sequence: bigint;
|
|
74
|
+
segments: ReplicationRangeMessage<any>[];
|
|
75
|
+
constructor(properties: {
|
|
76
|
+
receiverChallenge: Uint8Array;
|
|
77
|
+
senderEpoch: Uint8Array;
|
|
78
|
+
sequence: bigint;
|
|
79
|
+
segments: ReplicationRangeMessage<any>[];
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
export declare class StoppedReplicationInfoV2Message extends TransportMessage {
|
|
83
|
+
receiverChallenge: Uint8Array;
|
|
84
|
+
senderEpoch: Uint8Array;
|
|
85
|
+
sequence: bigint;
|
|
86
|
+
segmentIds: Uint8Array[];
|
|
87
|
+
constructor(properties: {
|
|
88
|
+
receiverChallenge: Uint8Array;
|
|
89
|
+
senderEpoch: Uint8Array;
|
|
90
|
+
sequence: bigint;
|
|
91
|
+
segmentIds: Uint8Array[];
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
export type ReplicationInfoV2Message = FullReplicationInfoV2Message | AddedReplicationInfoV2Message | StoppedReplicationInfoV2Message;
|
|
95
|
+
export declare const isReplicationInfoV2Message: (message: TransportMessage) => message is ReplicationInfoV2Message;
|
|
52
96
|
export declare const encodeReplicas: (minReplicas: MinReplicas) => Uint8Array;
|
|
53
97
|
export declare class ReplicationError extends Error {
|
|
54
98
|
constructor(message: string);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replication.d.ts","sourceRoot":"","sources":["../../src/replication.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"replication.d.ts","sourceRoot":"","sources":["../../src/replication.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAEN,KAAK,yBAAyB,EAC9B,uBAAuB,EAEvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAQ,MAAM,WAAW,CAAC;AAEvD,MAAM,MAAM,iBAAiB,GAAG;IAAE,GAAG,EAAE,WAAW,CAAC;IAAC,GAAG,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC;AAExE,UAAU,SAAS;IAClB,QAAQ,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACrC,gBAAgB,EAAE,KAAK,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;CACpE;AAED,qBAAa,WAAW;IACvB,QAAQ,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM;CAGhC;AAED,qBACa,gBAAiB,SAAQ,WAAW;IAEhD,MAAM,EAAE,MAAM,CAAC;gBAEH,KAAK,EAAE,MAAM;IAKzB,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM;CAGjC;AAED,qBACa,6BAA8B,SAAQ,gBAAgB;;CAIlE;AAGD,qBACa,mBAAoB,SAAQ,gBAAgB;IAExD,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAC;gBAEhB,UAAU,EAAE;QAAE,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAA;KAAE;IAKvD,wBAAwB,IAAI,6BAA6B;CAgBzD;AAED,qBACa,6BAA8B,SAAQ,gBAAgB;IAElE,QAAQ,EAAE,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAE7B,UAAU,EAAE;QAAE,QAAQ,EAAE,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAA;KAAE;CAIpE;AAED,qBACa,8BAA+B,SAAQ,gBAAgB;IAEnE,QAAQ,EAAE,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAE7B,UAAU,EAAE;QAAE,QAAQ,EAAE,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAA;KAAE;CAIpE;AAED,qBACa,kBAAmB,SAAQ,gBAAgB;IAEvD,UAAU,EAAE,UAAU,EAAE,CAAC;gBAEb,UAAU,EAAE;QAAE,UAAU,EAAE,UAAU,EAAE,CAAA;KAAE;CAIpD;AAED,qBACa,sBAAuB,SAAQ,gBAAgB;;CAO3D;AAED;;;;;GAKG;AACH,qBACa,4BAA6B,SAAQ,gBAAgB;IAEjE,iBAAiB,EAAE,UAAU,CAAC;IAG9B,WAAW,EAAE,UAAU,CAAC;IAGxB,QAAQ,EAAE,MAAM,CAAC;IAGjB,QAAQ,EAAE,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAE7B,UAAU,EAAE;QACvB,iBAAiB,EAAE,UAAU,CAAC;QAC9B,WAAW,EAAE,UAAU,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC;KACzC;CAOD;AAED,qBACa,6BAA8B,SAAQ,gBAAgB;IAElE,iBAAiB,EAAE,UAAU,CAAC;IAG9B,WAAW,EAAE,UAAU,CAAC;IAGxB,QAAQ,EAAE,MAAM,CAAC;IAGjB,QAAQ,EAAE,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAE7B,UAAU,EAAE;QACvB,iBAAiB,EAAE,UAAU,CAAC;QAC9B,WAAW,EAAE,UAAU,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC;KACzC;CAOD;AAED,qBACa,+BAAgC,SAAQ,gBAAgB;IAEpE,iBAAiB,EAAE,UAAU,CAAC;IAG9B,WAAW,EAAE,UAAU,CAAC;IAGxB,QAAQ,EAAE,MAAM,CAAC;IAGjB,UAAU,EAAE,UAAU,EAAE,CAAC;gBAEb,UAAU,EAAE;QACvB,iBAAiB,EAAE,UAAU,CAAC;QAC9B,WAAW,EAAE,UAAU,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,UAAU,EAAE,CAAC;KACzB;CAOD;AAED,MAAM,MAAM,wBAAwB,GACjC,4BAA4B,GAC5B,6BAA6B,GAC7B,+BAA+B,CAAC;AAEnC,eAAO,MAAM,0BAA0B,GACtC,SAAS,gBAAgB,KACvB,OAAO,IAAI,wBAGqC,CAAC;AAiBpD,eAAO,MAAM,cAAc,GAAI,aAAa,WAAW,KAAG,UAEzD,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,KAAK;gBAC9B,OAAO,EAAE,MAAM;CAG3B;AACD,eAAO,MAAM,cAAc,GAAI,OAAO;IACrC,IAAI,EAAE;QAAE,IAAI,CAAC,EAAE,UAAU,CAAA;KAAE,CAAC;CAC5B,KAAG,WAKH,CAAC;AAEF,eAAO,MAAM,WAAW,GACvB,KAAK,SAAS,EACd,SACG;IAAE,IAAI,EAAE;QAAE,IAAI,CAAC,EAAE,UAAU,CAAA;KAAE,CAAA;CAAE,EAAE,GACjC,gBAAgB,CAAC;IAAE,IAAI,EAAE;QAAE,IAAI,CAAC,EAAE,UAAU,CAAA;KAAE,CAAA;CAAE,CAAC,WAUpD,CAAC"}
|
package/dist/src/replication.js
CHANGED
|
@@ -32,7 +32,7 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
|
|
|
32
32
|
}
|
|
33
33
|
return useValue ? value : void 0;
|
|
34
34
|
};
|
|
35
|
-
import { deserialize, field, option, serialize, variant, vec, } from "@dao-xyz/borsh";
|
|
35
|
+
import { deserialize, field, fixedArray, option, serialize, variant, vec, } from "@dao-xyz/borsh";
|
|
36
36
|
import { randomBytes } from "@peerbit/crypto";
|
|
37
37
|
import {} from "@peerbit/indexer-interface";
|
|
38
38
|
import { TransportMessage } from "./message.js";
|
|
@@ -259,6 +259,168 @@ let ReplicationPingMessage = (() => {
|
|
|
259
259
|
return ReplicationPingMessage = _classThis;
|
|
260
260
|
})();
|
|
261
261
|
export { ReplicationPingMessage };
|
|
262
|
+
/**
|
|
263
|
+
* Decode-first replication-info V2 messages. This rollout only registers and
|
|
264
|
+
* advertises the final wire schemas; it never sends or applies these messages.
|
|
265
|
+
* A later negotiated phase must bind the signed transport session and an
|
|
266
|
+
* outstanding receiver challenge before any V2 payload is used.
|
|
267
|
+
*/
|
|
268
|
+
let FullReplicationInfoV2Message = (() => {
|
|
269
|
+
let _classDecorators = [variant([1, 6])];
|
|
270
|
+
let _classDescriptor;
|
|
271
|
+
let _classExtraInitializers = [];
|
|
272
|
+
let _classThis;
|
|
273
|
+
let _classSuper = TransportMessage;
|
|
274
|
+
let _receiverChallenge_decorators;
|
|
275
|
+
let _receiverChallenge_initializers = [];
|
|
276
|
+
let _receiverChallenge_extraInitializers = [];
|
|
277
|
+
let _senderEpoch_decorators;
|
|
278
|
+
let _senderEpoch_initializers = [];
|
|
279
|
+
let _senderEpoch_extraInitializers = [];
|
|
280
|
+
let _sequence_decorators;
|
|
281
|
+
let _sequence_initializers = [];
|
|
282
|
+
let _sequence_extraInitializers = [];
|
|
283
|
+
let _segments_decorators;
|
|
284
|
+
let _segments_initializers = [];
|
|
285
|
+
let _segments_extraInitializers = [];
|
|
286
|
+
var FullReplicationInfoV2Message = class extends _classSuper {
|
|
287
|
+
static { _classThis = this; }
|
|
288
|
+
static {
|
|
289
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
290
|
+
_receiverChallenge_decorators = [field({ type: fixedArray("u8", 32) })];
|
|
291
|
+
_senderEpoch_decorators = [field({ type: fixedArray("u8", 32) })];
|
|
292
|
+
_sequence_decorators = [field({ type: "u64" })];
|
|
293
|
+
_segments_decorators = [field({ type: vec(ReplicationRangeMessage) })];
|
|
294
|
+
__esDecorate(null, null, _receiverChallenge_decorators, { kind: "field", name: "receiverChallenge", static: false, private: false, access: { has: obj => "receiverChallenge" in obj, get: obj => obj.receiverChallenge, set: (obj, value) => { obj.receiverChallenge = value; } }, metadata: _metadata }, _receiverChallenge_initializers, _receiverChallenge_extraInitializers);
|
|
295
|
+
__esDecorate(null, null, _senderEpoch_decorators, { kind: "field", name: "senderEpoch", static: false, private: false, access: { has: obj => "senderEpoch" in obj, get: obj => obj.senderEpoch, set: (obj, value) => { obj.senderEpoch = value; } }, metadata: _metadata }, _senderEpoch_initializers, _senderEpoch_extraInitializers);
|
|
296
|
+
__esDecorate(null, null, _sequence_decorators, { kind: "field", name: "sequence", static: false, private: false, access: { has: obj => "sequence" in obj, get: obj => obj.sequence, set: (obj, value) => { obj.sequence = value; } }, metadata: _metadata }, _sequence_initializers, _sequence_extraInitializers);
|
|
297
|
+
__esDecorate(null, null, _segments_decorators, { kind: "field", name: "segments", static: false, private: false, access: { has: obj => "segments" in obj, get: obj => obj.segments, set: (obj, value) => { obj.segments = value; } }, metadata: _metadata }, _segments_initializers, _segments_extraInitializers);
|
|
298
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
299
|
+
FullReplicationInfoV2Message = _classThis = _classDescriptor.value;
|
|
300
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
301
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
302
|
+
}
|
|
303
|
+
receiverChallenge = __runInitializers(this, _receiverChallenge_initializers, void 0);
|
|
304
|
+
senderEpoch = (__runInitializers(this, _receiverChallenge_extraInitializers), __runInitializers(this, _senderEpoch_initializers, void 0));
|
|
305
|
+
sequence = (__runInitializers(this, _senderEpoch_extraInitializers), __runInitializers(this, _sequence_initializers, void 0));
|
|
306
|
+
segments = (__runInitializers(this, _sequence_extraInitializers), __runInitializers(this, _segments_initializers, void 0));
|
|
307
|
+
constructor(properties) {
|
|
308
|
+
super();
|
|
309
|
+
__runInitializers(this, _segments_extraInitializers);
|
|
310
|
+
this.receiverChallenge = properties.receiverChallenge;
|
|
311
|
+
this.senderEpoch = properties.senderEpoch;
|
|
312
|
+
this.sequence = properties.sequence;
|
|
313
|
+
this.segments = properties.segments;
|
|
314
|
+
}
|
|
315
|
+
};
|
|
316
|
+
return FullReplicationInfoV2Message = _classThis;
|
|
317
|
+
})();
|
|
318
|
+
export { FullReplicationInfoV2Message };
|
|
319
|
+
let AddedReplicationInfoV2Message = (() => {
|
|
320
|
+
let _classDecorators = [variant([1, 7])];
|
|
321
|
+
let _classDescriptor;
|
|
322
|
+
let _classExtraInitializers = [];
|
|
323
|
+
let _classThis;
|
|
324
|
+
let _classSuper = TransportMessage;
|
|
325
|
+
let _receiverChallenge_decorators;
|
|
326
|
+
let _receiverChallenge_initializers = [];
|
|
327
|
+
let _receiverChallenge_extraInitializers = [];
|
|
328
|
+
let _senderEpoch_decorators;
|
|
329
|
+
let _senderEpoch_initializers = [];
|
|
330
|
+
let _senderEpoch_extraInitializers = [];
|
|
331
|
+
let _sequence_decorators;
|
|
332
|
+
let _sequence_initializers = [];
|
|
333
|
+
let _sequence_extraInitializers = [];
|
|
334
|
+
let _segments_decorators;
|
|
335
|
+
let _segments_initializers = [];
|
|
336
|
+
let _segments_extraInitializers = [];
|
|
337
|
+
var AddedReplicationInfoV2Message = class extends _classSuper {
|
|
338
|
+
static { _classThis = this; }
|
|
339
|
+
static {
|
|
340
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
341
|
+
_receiverChallenge_decorators = [field({ type: fixedArray("u8", 32) })];
|
|
342
|
+
_senderEpoch_decorators = [field({ type: fixedArray("u8", 32) })];
|
|
343
|
+
_sequence_decorators = [field({ type: "u64" })];
|
|
344
|
+
_segments_decorators = [field({ type: vec(ReplicationRangeMessage) })];
|
|
345
|
+
__esDecorate(null, null, _receiverChallenge_decorators, { kind: "field", name: "receiverChallenge", static: false, private: false, access: { has: obj => "receiverChallenge" in obj, get: obj => obj.receiverChallenge, set: (obj, value) => { obj.receiverChallenge = value; } }, metadata: _metadata }, _receiverChallenge_initializers, _receiverChallenge_extraInitializers);
|
|
346
|
+
__esDecorate(null, null, _senderEpoch_decorators, { kind: "field", name: "senderEpoch", static: false, private: false, access: { has: obj => "senderEpoch" in obj, get: obj => obj.senderEpoch, set: (obj, value) => { obj.senderEpoch = value; } }, metadata: _metadata }, _senderEpoch_initializers, _senderEpoch_extraInitializers);
|
|
347
|
+
__esDecorate(null, null, _sequence_decorators, { kind: "field", name: "sequence", static: false, private: false, access: { has: obj => "sequence" in obj, get: obj => obj.sequence, set: (obj, value) => { obj.sequence = value; } }, metadata: _metadata }, _sequence_initializers, _sequence_extraInitializers);
|
|
348
|
+
__esDecorate(null, null, _segments_decorators, { kind: "field", name: "segments", static: false, private: false, access: { has: obj => "segments" in obj, get: obj => obj.segments, set: (obj, value) => { obj.segments = value; } }, metadata: _metadata }, _segments_initializers, _segments_extraInitializers);
|
|
349
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
350
|
+
AddedReplicationInfoV2Message = _classThis = _classDescriptor.value;
|
|
351
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
352
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
353
|
+
}
|
|
354
|
+
receiverChallenge = __runInitializers(this, _receiverChallenge_initializers, void 0);
|
|
355
|
+
senderEpoch = (__runInitializers(this, _receiverChallenge_extraInitializers), __runInitializers(this, _senderEpoch_initializers, void 0));
|
|
356
|
+
sequence = (__runInitializers(this, _senderEpoch_extraInitializers), __runInitializers(this, _sequence_initializers, void 0));
|
|
357
|
+
segments = (__runInitializers(this, _sequence_extraInitializers), __runInitializers(this, _segments_initializers, void 0));
|
|
358
|
+
constructor(properties) {
|
|
359
|
+
super();
|
|
360
|
+
__runInitializers(this, _segments_extraInitializers);
|
|
361
|
+
this.receiverChallenge = properties.receiverChallenge;
|
|
362
|
+
this.senderEpoch = properties.senderEpoch;
|
|
363
|
+
this.sequence = properties.sequence;
|
|
364
|
+
this.segments = properties.segments;
|
|
365
|
+
}
|
|
366
|
+
};
|
|
367
|
+
return AddedReplicationInfoV2Message = _classThis;
|
|
368
|
+
})();
|
|
369
|
+
export { AddedReplicationInfoV2Message };
|
|
370
|
+
let StoppedReplicationInfoV2Message = (() => {
|
|
371
|
+
let _classDecorators = [variant([1, 8])];
|
|
372
|
+
let _classDescriptor;
|
|
373
|
+
let _classExtraInitializers = [];
|
|
374
|
+
let _classThis;
|
|
375
|
+
let _classSuper = TransportMessage;
|
|
376
|
+
let _receiverChallenge_decorators;
|
|
377
|
+
let _receiverChallenge_initializers = [];
|
|
378
|
+
let _receiverChallenge_extraInitializers = [];
|
|
379
|
+
let _senderEpoch_decorators;
|
|
380
|
+
let _senderEpoch_initializers = [];
|
|
381
|
+
let _senderEpoch_extraInitializers = [];
|
|
382
|
+
let _sequence_decorators;
|
|
383
|
+
let _sequence_initializers = [];
|
|
384
|
+
let _sequence_extraInitializers = [];
|
|
385
|
+
let _segmentIds_decorators;
|
|
386
|
+
let _segmentIds_initializers = [];
|
|
387
|
+
let _segmentIds_extraInitializers = [];
|
|
388
|
+
var StoppedReplicationInfoV2Message = class extends _classSuper {
|
|
389
|
+
static { _classThis = this; }
|
|
390
|
+
static {
|
|
391
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
392
|
+
_receiverChallenge_decorators = [field({ type: fixedArray("u8", 32) })];
|
|
393
|
+
_senderEpoch_decorators = [field({ type: fixedArray("u8", 32) })];
|
|
394
|
+
_sequence_decorators = [field({ type: "u64" })];
|
|
395
|
+
_segmentIds_decorators = [field({ type: vec(Uint8Array) })];
|
|
396
|
+
__esDecorate(null, null, _receiverChallenge_decorators, { kind: "field", name: "receiverChallenge", static: false, private: false, access: { has: obj => "receiverChallenge" in obj, get: obj => obj.receiverChallenge, set: (obj, value) => { obj.receiverChallenge = value; } }, metadata: _metadata }, _receiverChallenge_initializers, _receiverChallenge_extraInitializers);
|
|
397
|
+
__esDecorate(null, null, _senderEpoch_decorators, { kind: "field", name: "senderEpoch", static: false, private: false, access: { has: obj => "senderEpoch" in obj, get: obj => obj.senderEpoch, set: (obj, value) => { obj.senderEpoch = value; } }, metadata: _metadata }, _senderEpoch_initializers, _senderEpoch_extraInitializers);
|
|
398
|
+
__esDecorate(null, null, _sequence_decorators, { kind: "field", name: "sequence", static: false, private: false, access: { has: obj => "sequence" in obj, get: obj => obj.sequence, set: (obj, value) => { obj.sequence = value; } }, metadata: _metadata }, _sequence_initializers, _sequence_extraInitializers);
|
|
399
|
+
__esDecorate(null, null, _segmentIds_decorators, { kind: "field", name: "segmentIds", static: false, private: false, access: { has: obj => "segmentIds" in obj, get: obj => obj.segmentIds, set: (obj, value) => { obj.segmentIds = value; } }, metadata: _metadata }, _segmentIds_initializers, _segmentIds_extraInitializers);
|
|
400
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
401
|
+
StoppedReplicationInfoV2Message = _classThis = _classDescriptor.value;
|
|
402
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
403
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
404
|
+
}
|
|
405
|
+
receiverChallenge = __runInitializers(this, _receiverChallenge_initializers, void 0);
|
|
406
|
+
senderEpoch = (__runInitializers(this, _receiverChallenge_extraInitializers), __runInitializers(this, _senderEpoch_initializers, void 0));
|
|
407
|
+
sequence = (__runInitializers(this, _senderEpoch_extraInitializers), __runInitializers(this, _sequence_initializers, void 0));
|
|
408
|
+
segmentIds = (__runInitializers(this, _sequence_extraInitializers), __runInitializers(this, _segmentIds_initializers, void 0));
|
|
409
|
+
constructor(properties) {
|
|
410
|
+
super();
|
|
411
|
+
__runInitializers(this, _segmentIds_extraInitializers);
|
|
412
|
+
this.receiverChallenge = properties.receiverChallenge;
|
|
413
|
+
this.senderEpoch = properties.senderEpoch;
|
|
414
|
+
this.sequence = properties.sequence;
|
|
415
|
+
this.segmentIds = properties.segmentIds;
|
|
416
|
+
}
|
|
417
|
+
};
|
|
418
|
+
return StoppedReplicationInfoV2Message = _classThis;
|
|
419
|
+
})();
|
|
420
|
+
export { StoppedReplicationInfoV2Message };
|
|
421
|
+
export const isReplicationInfoV2Message = (message) => message instanceof FullReplicationInfoV2Message ||
|
|
422
|
+
message instanceof AddedReplicationInfoV2Message ||
|
|
423
|
+
message instanceof StoppedReplicationInfoV2Message;
|
|
262
424
|
/*
|
|
263
425
|
@variant(1)
|
|
264
426
|
export class RelativeMinReplicas extends MinReplicas {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replication.js","sourceRoot":"","sources":["../../src/replication.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EACN,WAAW,EACX,KAAK,EACL,MAAM,EACN,SAAS,EACT,OAAO,EACP,GAAG,GACH,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAc,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EACN,iBAAiB,EAEjB,uBAAuB,EACvB,0BAA0B,GAC1B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AASvD,MAAM,OAAO,WAAW;IACvB,QAAQ,CAAC,GAAc;QACtB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACpC,CAAC;CACD;IAGY,gBAAgB;4BAD5B,OAAO,CAAC,CAAC,CAAC;;;;sBAC2B,WAAW;;;;gCAAnB,SAAQ,WAAW;;;;kCAC/C,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YACvB,oKAAA,MAAM,6BAAN,MAAM,uFAAS;YAFhB,6KAYC;;;YAZY,uDAAgB;;QAE5B,MAAM,yDAAS;QAEf,YAAY,KAAa;YACxB,KAAK,EAAE,CAAC;;YACR,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;SACpB;QAED,QAAQ,CAAC,IAAe;YACvB,OAAO,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;;;;SAXW,gBAAgB;IAehB,6BAA6B;4BADzC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;;;sBACmC,gBAAgB;6CAAxB,SAAQ,WAAgB;;;;YAAnE,6KAIC;;;YAJY,uDAA6B;;QACzC;YACC,KAAK,EAAE,CAAC;QACT,CAAC;;;;SAHW,6BAA6B;AAM1C,mCAAmC;IAEtB,mBAAmB;4BAD/B,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;;;sBACyB,gBAAgB;;;;mCAAxB,SAAQ,WAAgB;;;;gCACvD,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,8JAAA,IAAI,6BAAJ,IAAI,mFAAwB;YAF7B,6KAyBC;;;YAzBY,uDAAmB;;QAE/B,IAAI,uDAAwB;QAE5B,YAAY,UAA2C;YACtD,KAAK,EAAE,CAAC;;YACR,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;SAC5B;QAED,wBAAwB;YACvB,OAAO,IAAI,6BAA6B,CAAC;gBACxC,QAAQ,EACP,IAAI,CAAC,IAAI,YAAY,UAAU;oBAC9B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;wBAC7B,OAAO,IAAI,0BAA0B,CAAC;4BACrC,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC;4BACnB,MAAM,EAAE,CAAC,CAAC,MAAM;4BAChB,MAAM,EAAE,CAAC,CAAC,MAAM;4BAChB,SAAS,EAAE,CAAC,CAAC,SAAS;4BACtB,IAAI,EAAE,iBAAiB,CAAC,SAAS;yBACjC,CAAC,CAAC;oBACJ,CAAC,CAAC;oBACH,CAAC,CAAC,EAAE;aACN,CAAC,CAAC;QACJ,CAAC;;;;SAxBW,mBAAmB;IA4BnB,6BAA6B;4BADzC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;;;sBACmC,gBAAgB;;;;6CAAxB,SAAQ,WAAgB;;;;oCACjE,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,uBAAuB,CAAC,EAAE,CAAC;YAC9C,0KAAA,QAAQ,6BAAR,QAAQ,2FAAiC;YAF1C,6KAQC;;;YARY,uDAA6B;;QAEzC,QAAQ,2DAAiC;QAEzC,YAAY,UAAwD;YACnE,KAAK,EAAE,CAAC;;YACR,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;SACpC;;;;SAPW,6BAA6B;IAW7B,8BAA8B;4BAD1C,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;;;sBACoC,gBAAgB;;;;8CAAxB,SAAQ,WAAgB;;;;oCAClE,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,uBAAuB,CAAC,EAAE,CAAC;YAC9C,0KAAA,QAAQ,6BAAR,QAAQ,2FAAiC;YAF1C,6KAQC;;;YARY,uDAA8B;;QAE1C,QAAQ,2DAAiC;QAEzC,YAAY,UAAwD;YACnE,KAAK,EAAE,CAAC;;YACR,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;SACpC;;;;SAPW,8BAA8B;IAW9B,kBAAkB;4BAD9B,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;;;sBACwB,gBAAgB;;;;kCAAxB,SAAQ,WAAgB;;;;sCACtD,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,gLAAA,UAAU,6BAAV,UAAU,+FAAe;YAF1B,6KAQC;;;YARY,uDAAkB;;QAE9B,UAAU,6DAAe;QAEzB,YAAY,UAAwC;YACnD,KAAK,EAAE,CAAC;;YACR,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;SACxC;;;;SAPW,kBAAkB;IAWlB,sBAAsB;4BADlC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;;;sBAC4B,gBAAgB;sCAAxB,SAAQ,WAAgB;;;;YAA5D,6KAOC;;;YAPY,uDAAsB;;QAClC,gEAAgE;QAChE,uEAAuE;QACvE,oEAAoE;QACpE;YACC,KAAK,EAAE,CAAC;QACT,CAAC;;;;SANW,sBAAsB;AASnC;;;;;;;;;;;;;GAaG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,WAAwB,EAAc,EAAE;IACtE,OAAO,SAAS,CAAC,WAAW,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAC1C,YAAY,OAAe;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC;IAChB,CAAC;CACD;AACD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAE9B,EAAe,EAAE;IACjB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACtB,MAAM,IAAI,gBAAgB,CAAC,8BAA8B,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAC1B,GAAc,EACd,OAEoD,EACnD,EAAE;IACH,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC7B,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,gBAAgB,CAAC;IAC1E,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IAC/D,OAAO,eAAe,CAAC;AACxB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"replication.js","sourceRoot":"","sources":["../../src/replication.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@peerbit/shared-log",
|
|
3
|
-
"version": "13.2.
|
|
3
|
+
"version": "13.2.31",
|
|
4
4
|
"description": "Shared log",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"type": "module",
|
|
@@ -62,27 +62,27 @@
|
|
|
62
62
|
"pidusage": "^4.0.1",
|
|
63
63
|
"pino": "^9.4.0",
|
|
64
64
|
"uint8arrays": "^5.1.0",
|
|
65
|
-
"@peerbit/any-store": "2.2.14",
|
|
66
65
|
"@peerbit/blocks": "4.2.10",
|
|
67
66
|
"@peerbit/blocks-interface": "2.1.5",
|
|
67
|
+
"@peerbit/any-store": "2.2.14",
|
|
68
68
|
"@peerbit/cache": "3.1.1",
|
|
69
69
|
"@peerbit/crypto": "3.1.5",
|
|
70
70
|
"@peerbit/diagnostics": "0.0.1",
|
|
71
|
+
"@peerbit/indexer-interface": "3.0.9",
|
|
72
|
+
"@peerbit/logger": "2.0.1",
|
|
71
73
|
"@peerbit/indexer-sqlite3": "3.0.14",
|
|
72
74
|
"@peerbit/log": "6.2.16",
|
|
73
|
-
"@peerbit/logger": "2.0.1",
|
|
74
|
-
"@peerbit/program": "6.0.48",
|
|
75
|
-
"@peerbit/indexer-interface": "3.0.9",
|
|
76
75
|
"@peerbit/pubsub": "5.4.0",
|
|
77
|
-
"@peerbit/
|
|
76
|
+
"@peerbit/program": "6.0.48",
|
|
78
77
|
"@peerbit/pubsub-interface": "5.2.0",
|
|
78
|
+
"@peerbit/riblt": "1.2.0",
|
|
79
79
|
"@peerbit/rpc": "6.1.16",
|
|
80
|
-
"@peerbit/
|
|
81
|
-
"@peerbit/
|
|
80
|
+
"@peerbit/stream-interface": "6.0.15",
|
|
81
|
+
"@peerbit/time": "3.0.1"
|
|
82
82
|
},
|
|
83
83
|
"optionalDependencies": {
|
|
84
|
-
"@peerbit/
|
|
85
|
-
"@peerbit/
|
|
84
|
+
"@peerbit/native-backbone": "0.2.5",
|
|
85
|
+
"@peerbit/shared-log-rust": "0.1.4"
|
|
86
86
|
},
|
|
87
87
|
"devDependencies": {
|
|
88
88
|
"@types/libsodium-wrappers": "^0.7.14",
|
|
@@ -112,6 +112,9 @@
|
|
|
112
112
|
"benchmark:network-preset-e2e": "node --loader ts-node/esm ./benchmark/network-preset-e2e.ts",
|
|
113
113
|
"benchmark:receive-prune": "node --loader ts-node/esm ./benchmark/receive-prune.ts",
|
|
114
114
|
"benchmark:sync-catchup": "node --loader ts-node/esm ./benchmark/sync-catchup.ts",
|
|
115
|
+
"benchmark:sync-peer-state": "node --loader ts-node/esm ./benchmark/sync-peer-state.ts",
|
|
116
|
+
"benchmark:sync-peer-state:compare": "node ./benchmark/sync-peer-state-compare.mjs",
|
|
117
|
+
"benchmark:sync-peer-state:compare:test": "node --test ./benchmark/sync-peer-state-compare.test.mjs",
|
|
115
118
|
"benchmark:sync-phase-profile": "node --loader ts-node/esm ./benchmark/sync-phase-profile.ts",
|
|
116
119
|
"test": "aegir test --target node",
|
|
117
120
|
"test:shared-log-rust-core": "npm run build && PEERBIT_SHARED_LOG_RUST_CORE=1 aegir test -t node --grep '^(?!u32-simple replication degree commit options control per commmit put before join converges under deterministic pubsub chaos$)(?!.*(does not fetch missing entries from remotes|will prune once reaching max replicas|repairs when joiner request responses are dropped|time out when pending IHave are never resolved|does not confirm checked prune from a shallow-only entry|replication degree update ))(append delivery options |join |replicate |(u32-simple|u64-iblt) (replication references |replication replication (one way|two way) |redundancy only sends entries once|canReplicate |replication degree |start/stop replicate on connect|sync ))' -- --forbid-pending",
|
package/src/exchange-heads.ts
CHANGED
|
@@ -348,11 +348,18 @@ export const EXCHANGE_HEADS_REPAIR_HINT = 1;
|
|
|
348
348
|
*/
|
|
349
349
|
export const SYNC_CAPABILITY_RAW_EXCHANGE_HEADS = 1;
|
|
350
350
|
|
|
351
|
+
/**
|
|
352
|
+
* Capability bit: the peer can decode the challenge-bound replication-info V2
|
|
353
|
+
* variants [1, 6], [1, 7] and [1, 8]. This is decode support only and never
|
|
354
|
+
* authorizes a sender to transmit V2. Use requires a separate receiver-led
|
|
355
|
+
* negotiation that is intentionally outside this rollout.
|
|
356
|
+
*/
|
|
357
|
+
export const SYNC_CAPABILITY_REPLICATION_INFO_V2_DECODE = 1 << 1;
|
|
358
|
+
|
|
351
359
|
/**
|
|
352
360
|
* One-shot capability advertisement, sent to a peer when it (or we) subscribe
|
|
353
|
-
* to the program topic
|
|
354
|
-
*
|
|
355
|
-
* advertise keep receiving the plain `ExchangeHeadsMessage` path.
|
|
361
|
+
* to the program topic. Peers that do not know this message drop it as an
|
|
362
|
+
* unknown variant. Each feature still requires its explicit bit.
|
|
356
363
|
*/
|
|
357
364
|
@variant([0, 10])
|
|
358
365
|
export class SyncCapabilitiesMessage extends TransportMessage {
|
package/src/index.ts
CHANGED
|
@@ -154,6 +154,7 @@ import {
|
|
|
154
154
|
ResponseIPrune,
|
|
155
155
|
ResponseIPruneV2,
|
|
156
156
|
SYNC_CAPABILITY_RAW_EXCHANGE_HEADS,
|
|
157
|
+
SYNC_CAPABILITY_REPLICATION_INFO_V2_DECODE,
|
|
157
158
|
StashBackedRawExchangeHeadsMessage,
|
|
158
159
|
SyncCapabilitiesMessage,
|
|
159
160
|
collectRawExchangeHeadSendPlan,
|
|
@@ -261,6 +262,7 @@ import {
|
|
|
261
262
|
StoppedReplicating,
|
|
262
263
|
decodeReplicas,
|
|
263
264
|
encodeReplicas,
|
|
265
|
+
isReplicationInfoV2Message,
|
|
264
266
|
maxReplicas,
|
|
265
267
|
} from "./replication.js";
|
|
266
268
|
import { ReplicatorLivenessMonitor } from "./replicator-liveness.js";
|
|
@@ -17124,6 +17126,13 @@ export class SharedLog<
|
|
|
17124
17126
|
msg: TransportMessage,
|
|
17125
17127
|
context: RequestContext,
|
|
17126
17128
|
): Promise<void> {
|
|
17129
|
+
// Decode-first only: capability advertisement is not permission to use
|
|
17130
|
+
// V2. Drop every unsolicited V2 envelope before even entering the shared
|
|
17131
|
+
// receive envelope, so durable poison checks, leases, liveness, ordering
|
|
17132
|
+
// watermarks, replication ranges and cleanup side effects cannot observe it.
|
|
17133
|
+
if (isReplicationInfoV2Message(msg)) {
|
|
17134
|
+
return;
|
|
17135
|
+
}
|
|
17127
17136
|
const stashBackedRawMessage = isStashBackedRawExchangeHeadsMessage(msg)
|
|
17128
17137
|
? msg
|
|
17129
17138
|
: undefined;
|
|
@@ -22708,27 +22717,30 @@ export class SharedLog<
|
|
|
22708
22717
|
this._liveness.markReplicatorActivity(peerHash);
|
|
22709
22718
|
this._peerSessions.markOpen(peerHash, expectedSubscriptionEpoch);
|
|
22710
22719
|
|
|
22711
|
-
|
|
22712
|
-
|
|
22713
|
-
|
|
22714
|
-
|
|
22715
|
-
|
|
22716
|
-
|
|
22717
|
-
|
|
22718
|
-
|
|
22719
|
-
|
|
22720
|
-
|
|
22721
|
-
|
|
22722
|
-
|
|
22723
|
-
|
|
22724
|
-
|
|
22725
|
-
|
|
22726
|
-
|
|
22727
|
-
|
|
22728
|
-
|
|
22729
|
-
|
|
22730
|
-
|
|
22731
|
-
|
|
22720
|
+
// Decode support is advertised independently from use permission. Every
|
|
22721
|
+
// replication-info send below and in the announcement coordinator remains
|
|
22722
|
+
// on the legacy wire format until a later receiver-led negotiation exists.
|
|
22723
|
+
const receiveCapabilities =
|
|
22724
|
+
SYNC_CAPABILITY_REPLICATION_INFO_V2_DECODE |
|
|
22725
|
+
(this._logProperties?.sync?.rawExchangeHeads === true
|
|
22726
|
+
? SYNC_CAPABILITY_RAW_EXCHANGE_HEADS
|
|
22727
|
+
: 0);
|
|
22728
|
+
this.rpc
|
|
22729
|
+
.send(
|
|
22730
|
+
new SyncCapabilitiesMessage({
|
|
22731
|
+
capabilities: receiveCapabilities,
|
|
22732
|
+
}),
|
|
22733
|
+
{
|
|
22734
|
+
mode: new SilentDelivery({ redundancy: 1, to: [publicKey] }),
|
|
22735
|
+
signal: replicationLifecycleController.signal,
|
|
22736
|
+
},
|
|
22737
|
+
)
|
|
22738
|
+
.catch((error) =>
|
|
22739
|
+
this.handleReplicationLifecycleSendError(
|
|
22740
|
+
error,
|
|
22741
|
+
replicationLifecycleController,
|
|
22742
|
+
),
|
|
22743
|
+
);
|
|
22732
22744
|
|
|
22733
22745
|
let replicationSegments: ReplicationRangeIndexable<R>[];
|
|
22734
22746
|
try {
|
package/src/replication.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
deserialize,
|
|
3
3
|
field,
|
|
4
|
+
fixedArray,
|
|
4
5
|
option,
|
|
5
6
|
serialize,
|
|
6
7
|
variant,
|
|
@@ -124,6 +125,108 @@ export class ReplicationPingMessage extends TransportMessage {
|
|
|
124
125
|
}
|
|
125
126
|
}
|
|
126
127
|
|
|
128
|
+
/**
|
|
129
|
+
* Decode-first replication-info V2 messages. This rollout only registers and
|
|
130
|
+
* advertises the final wire schemas; it never sends or applies these messages.
|
|
131
|
+
* A later negotiated phase must bind the signed transport session and an
|
|
132
|
+
* outstanding receiver challenge before any V2 payload is used.
|
|
133
|
+
*/
|
|
134
|
+
@variant([1, 6])
|
|
135
|
+
export class FullReplicationInfoV2Message extends TransportMessage {
|
|
136
|
+
@field({ type: fixedArray("u8", 32) })
|
|
137
|
+
receiverChallenge: Uint8Array;
|
|
138
|
+
|
|
139
|
+
@field({ type: fixedArray("u8", 32) })
|
|
140
|
+
senderEpoch: Uint8Array;
|
|
141
|
+
|
|
142
|
+
@field({ type: "u64" })
|
|
143
|
+
sequence: bigint;
|
|
144
|
+
|
|
145
|
+
@field({ type: vec(ReplicationRangeMessage) })
|
|
146
|
+
segments: ReplicationRangeMessage<any>[];
|
|
147
|
+
|
|
148
|
+
constructor(properties: {
|
|
149
|
+
receiverChallenge: Uint8Array;
|
|
150
|
+
senderEpoch: Uint8Array;
|
|
151
|
+
sequence: bigint;
|
|
152
|
+
segments: ReplicationRangeMessage<any>[];
|
|
153
|
+
}) {
|
|
154
|
+
super();
|
|
155
|
+
this.receiverChallenge = properties.receiverChallenge;
|
|
156
|
+
this.senderEpoch = properties.senderEpoch;
|
|
157
|
+
this.sequence = properties.sequence;
|
|
158
|
+
this.segments = properties.segments;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
@variant([1, 7])
|
|
163
|
+
export class AddedReplicationInfoV2Message extends TransportMessage {
|
|
164
|
+
@field({ type: fixedArray("u8", 32) })
|
|
165
|
+
receiverChallenge: Uint8Array;
|
|
166
|
+
|
|
167
|
+
@field({ type: fixedArray("u8", 32) })
|
|
168
|
+
senderEpoch: Uint8Array;
|
|
169
|
+
|
|
170
|
+
@field({ type: "u64" })
|
|
171
|
+
sequence: bigint;
|
|
172
|
+
|
|
173
|
+
@field({ type: vec(ReplicationRangeMessage) })
|
|
174
|
+
segments: ReplicationRangeMessage<any>[];
|
|
175
|
+
|
|
176
|
+
constructor(properties: {
|
|
177
|
+
receiverChallenge: Uint8Array;
|
|
178
|
+
senderEpoch: Uint8Array;
|
|
179
|
+
sequence: bigint;
|
|
180
|
+
segments: ReplicationRangeMessage<any>[];
|
|
181
|
+
}) {
|
|
182
|
+
super();
|
|
183
|
+
this.receiverChallenge = properties.receiverChallenge;
|
|
184
|
+
this.senderEpoch = properties.senderEpoch;
|
|
185
|
+
this.sequence = properties.sequence;
|
|
186
|
+
this.segments = properties.segments;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
@variant([1, 8])
|
|
191
|
+
export class StoppedReplicationInfoV2Message extends TransportMessage {
|
|
192
|
+
@field({ type: fixedArray("u8", 32) })
|
|
193
|
+
receiverChallenge: Uint8Array;
|
|
194
|
+
|
|
195
|
+
@field({ type: fixedArray("u8", 32) })
|
|
196
|
+
senderEpoch: Uint8Array;
|
|
197
|
+
|
|
198
|
+
@field({ type: "u64" })
|
|
199
|
+
sequence: bigint;
|
|
200
|
+
|
|
201
|
+
@field({ type: vec(Uint8Array) })
|
|
202
|
+
segmentIds: Uint8Array[];
|
|
203
|
+
|
|
204
|
+
constructor(properties: {
|
|
205
|
+
receiverChallenge: Uint8Array;
|
|
206
|
+
senderEpoch: Uint8Array;
|
|
207
|
+
sequence: bigint;
|
|
208
|
+
segmentIds: Uint8Array[];
|
|
209
|
+
}) {
|
|
210
|
+
super();
|
|
211
|
+
this.receiverChallenge = properties.receiverChallenge;
|
|
212
|
+
this.senderEpoch = properties.senderEpoch;
|
|
213
|
+
this.sequence = properties.sequence;
|
|
214
|
+
this.segmentIds = properties.segmentIds;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
export type ReplicationInfoV2Message =
|
|
219
|
+
| FullReplicationInfoV2Message
|
|
220
|
+
| AddedReplicationInfoV2Message
|
|
221
|
+
| StoppedReplicationInfoV2Message;
|
|
222
|
+
|
|
223
|
+
export const isReplicationInfoV2Message = (
|
|
224
|
+
message: TransportMessage,
|
|
225
|
+
): message is ReplicationInfoV2Message =>
|
|
226
|
+
message instanceof FullReplicationInfoV2Message ||
|
|
227
|
+
message instanceof AddedReplicationInfoV2Message ||
|
|
228
|
+
message instanceof StoppedReplicationInfoV2Message;
|
|
229
|
+
|
|
127
230
|
/*
|
|
128
231
|
@variant(1)
|
|
129
232
|
export class RelativeMinReplicas extends MinReplicas {
|