@peerbit/shared-log 9.0.6 → 9.0.7

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.
@@ -1 +1 @@
1
- {"version":3,"file":"replication.js","sourceRoot":"","sources":["../../src/replication.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"replication.js","sourceRoot":"","sources":["../../src/replication.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,39 @@
1
1
  export declare const SEGMENT_COORDINATE_SCALE = 4294967295;
2
+ export declare const overlaps: (x1: number, x2: number, y1: number, y2: number) => boolean;
3
+ export declare abstract class Role {
4
+ abstract equals(other: Role): boolean;
5
+ }
6
+ export declare const NO_TYPE_VARIANT: Uint8Array;
7
+ export declare class NoType extends Role {
8
+ equals(other: Role): other is NoType;
9
+ }
10
+ export declare const OBSERVER_TYPE_VARIANT: Uint8Array;
11
+ export declare class Observer extends Role {
12
+ equals(other: Role): other is Observer;
13
+ }
14
+ export declare const REPLICATOR_TYPE_VARIANT: Uint8Array;
15
+ export declare class RoleReplicationSegment {
16
+ timestamp: bigint;
17
+ private factorNominator;
18
+ private offsetNominator;
19
+ constructor(properties: {
20
+ factor: number;
21
+ offset: number;
22
+ timestamp?: bigint;
23
+ });
24
+ get factor(): number;
25
+ get offset(): number;
26
+ }
27
+ export declare class Replicator extends Role {
28
+ segments: RoleReplicationSegment[];
29
+ constructor(properties: {
30
+ factor: number;
31
+ timestamp?: bigint;
32
+ offset: number;
33
+ });
34
+ get factor(): number;
35
+ get offset(): number;
36
+ get timestamp(): bigint;
37
+ equals(other: Role): boolean;
38
+ }
2
39
  //# sourceMappingURL=role.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"role.d.ts","sourceRoot":"","sources":["../../src/role.ts"],"names":[],"mappings":"AAiCA,eAAO,MAAM,wBAAwB,aAAa,CAAC"}
1
+ {"version":3,"file":"role.d.ts","sourceRoot":"","sources":["../../src/role.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,wBAAwB,aAAa,CAAC;AAEnD,eAAO,MAAM,QAAQ,OAAQ,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,YAKtE,CAAC;AAEF,8BAAsB,IAAI;IACzB,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;CACrC;AAED,eAAO,MAAM,eAAe,YAAsB,CAAC;AAEnD,qBACa,MAAO,SAAQ,IAAI;IAC/B,MAAM,CAAC,KAAK,EAAE,IAAI;CAGlB;AAED,eAAO,MAAM,qBAAqB,YAAsB,CAAC;AAEzD,qBACa,QAAS,SAAQ,IAAI;IACjC,MAAM,CAAC,KAAK,EAAE,IAAI;CAGlB;AAED,eAAO,MAAM,uBAAuB,YAAsB,CAAC;AAE3D,qBAAa,sBAAsB;IAElC,SAAS,EAAE,MAAM,CAAC;IAGlB,OAAO,CAAC,eAAe,CAAS;IAGhC,OAAO,CAAC,eAAe,CAAS;gBAEpB,UAAU,EAAE;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;KACnB;IAeD,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;CACD;AAED,qBACa,UAAW,SAAQ,IAAI;IAEnC,QAAQ,EAAE,sBAAsB,EAAE,CAAC;gBAEvB,UAAU,EAAE;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;KACf;IAQD,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,MAAM,CAAC,KAAK,EAAE,IAAI;CAOlB"}
package/dist/src/role.js CHANGED
@@ -1,106 +1,113 @@
1
- /* import { field, variant, vec } from "@dao-xyz/borsh"; */
2
- /* export const overlaps = (x1: number, x2: number, y1: number, y2: number) => {
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var NoType_1, Observer_1, Replicator_1;
11
+ /**
12
+ * @deprecated
13
+ * Code below is deprecated and will be removed in the future.
14
+ * Roles have been replaces with just replication segments.
15
+ */
16
+ import { field, variant, vec } from "@dao-xyz/borsh";
17
+ export const SEGMENT_COORDINATE_SCALE = 4294967295;
18
+ export const overlaps = (x1, x2, y1, y2) => {
3
19
  if (x1 <= y2 && y1 <= x2) {
4
20
  return true;
5
21
  }
6
22
  return false;
7
- }; */
8
- /* export abstract class Role {
9
- abstract equals(other: Role): boolean;
23
+ };
24
+ export class Role {
10
25
  }
11
-
12
26
  export const NO_TYPE_VARIANT = new Uint8Array([0]);
13
-
14
- @variant(0)
15
- export class NoType extends Role {
16
- equals(other: Role) {
17
- return other instanceof NoType;
27
+ let NoType = NoType_1 = class NoType extends Role {
28
+ equals(other) {
29
+ return other instanceof NoType_1;
18
30
  }
19
- }
20
-
31
+ };
32
+ NoType = NoType_1 = __decorate([
33
+ variant(0)
34
+ ], NoType);
35
+ export { NoType };
21
36
  export const OBSERVER_TYPE_VARIANT = new Uint8Array([1]);
22
-
23
- @variant(1)
24
- export class Observer extends Role {
25
- equals(other: Role) {
26
- return other instanceof Observer;
37
+ let Observer = Observer_1 = class Observer extends Role {
38
+ equals(other) {
39
+ return other instanceof Observer_1;
27
40
  }
28
- }
29
-
30
- export const REPLICATOR_TYPE_VARIANT = new Uint8Array([2]);*/
31
- export const SEGMENT_COORDINATE_SCALE = 4294967295;
32
- /* export class ReplicationSegment {
33
-
34
- @field({ type: "u64" })
35
- timestamp: bigint;
36
-
37
- @field({ type: "u32" })
38
- start: number;
39
-
40
- @field({ type: 'u32' })
41
- end: number;
42
-
43
-
44
-
45
- constructor(properties: {
46
- start: number;
47
- end: number;
48
- timestamp: bigint;
49
- }) {
50
- const { start, end, timestamp } = properties;
51
-
52
- if (start > end) {
53
- throw new Error("Range 'start' needs to be lower or equal to 'end'")
41
+ };
42
+ Observer = Observer_1 = __decorate([
43
+ variant(1)
44
+ ], Observer);
45
+ export { Observer };
46
+ export const REPLICATOR_TYPE_VARIANT = new Uint8Array([2]);
47
+ export class RoleReplicationSegment {
48
+ timestamp;
49
+ factorNominator;
50
+ offsetNominator;
51
+ constructor(properties) {
52
+ const { factor, timestamp, offset } = properties;
53
+ if (factor > 1 || factor < 0) {
54
+ throw new Error("Expecting factor to be between 0 and 1, got: " + factor);
54
55
  }
55
- this.start = Math.round(start * SEGMENT_COORDINATE_SCALE);
56
- this.end = Math.round(end * SEGMENT_COORDINATE_SCALE);
57
- this.timestamp = timestamp
56
+ this.timestamp = timestamp ?? BigInt(+new Date());
57
+ this.factorNominator = Math.round(SEGMENT_COORDINATE_SCALE * factor);
58
+ if (offset > 1 || offset < 0) {
59
+ throw new Error("Expecting offset to be between 0 and 1, got: " + offset);
60
+ }
61
+ this.offsetNominator = Math.round(SEGMENT_COORDINATE_SCALE * offset);
62
+ }
63
+ get factor() {
64
+ return this.factorNominator / SEGMENT_COORDINATE_SCALE;
65
+ }
66
+ get offset() {
67
+ return this.offsetNominator / SEGMENT_COORDINATE_SCALE;
58
68
  }
59
-
60
-
61
-
62
69
  }
63
- */
64
- /* abstract class Capacity { }
65
-
66
- @variant(2)
67
- export class Replicator extends Role {
68
-
69
- @field({ type: vec(Capacity) })
70
- capacity: Capacity[];
71
-
72
- constructor(properties?: { capacity: Capacity[] }) {
70
+ __decorate([
71
+ field({ type: "u64" }),
72
+ __metadata("design:type", BigInt)
73
+ ], RoleReplicationSegment.prototype, "timestamp", void 0);
74
+ __decorate([
75
+ field({ type: "u32" }),
76
+ __metadata("design:type", Number)
77
+ ], RoleReplicationSegment.prototype, "factorNominator", void 0);
78
+ __decorate([
79
+ field({ type: "u32" }),
80
+ __metadata("design:type", Number)
81
+ ], RoleReplicationSegment.prototype, "offsetNominator", void 0);
82
+ let Replicator = Replicator_1 = class Replicator extends Role {
83
+ segments;
84
+ constructor(properties) {
73
85
  super();
74
- this.capacity = properties?.capacity || [];
75
- } */
76
- /* constructor(properties: {
77
- timestamp?: bigint;
78
- factor: number;
79
- offset: number;
80
- }) {
81
- super();
82
- let timestamp = properties.timestamp || BigInt(+new Date);
83
- let ranges = getSegmentsFromOffsetAndRange(properties.offset, properties.factor);
84
- this.segments = ranges.map(x => new ReplicationSegment({ start: x[0], end: x[1], timestamp }));
85
- }
86
- */
87
- /* get factor(): number {
88
- return this.segments[0]!.factor;
89
- }
90
-
91
- get offset(): number {
92
- return this.segments[0]!.offset;
93
- }
94
-
95
- get timestamp(): bigint {
96
- return this.segments[0]!.timestamp;
97
- } */
98
- /* equals(other: Role) {
99
- return (
100
- other instanceof Replicator &&
101
- other.factor === this.factor &&
102
- other.offset === this.offset
103
- );
104
- } */
105
- /* } */
86
+ const segment = new RoleReplicationSegment(properties);
87
+ this.segments = [segment];
88
+ }
89
+ get factor() {
90
+ return this.segments[0].factor;
91
+ }
92
+ get offset() {
93
+ return this.segments[0].offset;
94
+ }
95
+ get timestamp() {
96
+ return this.segments[0].timestamp;
97
+ }
98
+ equals(other) {
99
+ return (other instanceof Replicator_1 &&
100
+ other.factor === this.factor &&
101
+ other.offset === this.offset);
102
+ }
103
+ };
104
+ __decorate([
105
+ field({ type: vec(RoleReplicationSegment) }),
106
+ __metadata("design:type", Array)
107
+ ], Replicator.prototype, "segments", void 0);
108
+ Replicator = Replicator_1 = __decorate([
109
+ variant(2),
110
+ __metadata("design:paramtypes", [Object])
111
+ ], Replicator);
112
+ export { Replicator };
106
113
  //# sourceMappingURL=role.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"role.js","sourceRoot":"","sources":["../../src/role.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAE3D;;;;;KAKK;AAEL;;;;;;;;;;;;;;;;;;;;;;6DAsB6D;AAE7D,MAAM,CAAC,MAAM,wBAAwB,GAAG,UAAU,CAAC;AACnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH;;;;;;;;;;;QAWK;AAEL;;;;;;;;;;EAUE;AACF;;;;;;;;;;IAUI;AAEJ;;;;;;IAMI;AACJ,OAAO"}
1
+ {"version":3,"file":"role.js","sourceRoot":"","sources":["../../src/role.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": "9.0.6",
3
+ "version": "9.0.7",
4
4
  "description": "Shared log",
5
5
  "sideEffects": false,
6
6
  "type": "module",
package/src/index.ts CHANGED
@@ -73,6 +73,7 @@ import {
73
73
  ReplicationRangeIndexable,
74
74
  RequestReplicationInfoMessage,
75
75
  ResponseReplicationInfoMessage,
76
+ ResponseRoleMessage,
76
77
  StartedReplicating,
77
78
  StoppedReplicating,
78
79
  decodeReplicas,
@@ -80,7 +81,7 @@ import {
80
81
  hashToUniformNumber,
81
82
  maxReplicas,
82
83
  } from "./replication.js";
83
- import { SEGMENT_COORDINATE_SCALE } from "./role.js";
84
+ import { Observer, Replicator, SEGMENT_COORDINATE_SCALE } from "./role.js";
84
85
 
85
86
  export * from "./replication.js";
86
87
 
@@ -156,6 +157,7 @@ export type SharedLogOptions<T> = {
156
157
  timeUntilRoleMaturity?: number;
157
158
  waitForReplicatorTimeout?: number;
158
159
  distributionDebounceTime?: number;
160
+ compatibility?: number;
159
161
  };
160
162
 
161
163
  export const DEFAULT_MIN_REPLICAS = 2;
@@ -205,7 +207,9 @@ export class SharedLog<T = Uint8Array> extends Program<
205
207
  publicKey: PublicSignKey,
206
208
  ) => Promise<boolean> | boolean;
207
209
 
208
- private _logProperties?: LogProperties<T> & LogEvents<T>;
210
+ private _logProperties?: LogProperties<T> &
211
+ LogEvents<T> &
212
+ SharedLogOptions<T>;
209
213
  private _closeController!: AbortController;
210
214
  private _gidParentCache!: Cache<Entry<any>[]>;
211
215
  private _respondToIHaveTimeout!: any;
@@ -278,6 +282,32 @@ export class SharedLog<T = Uint8Array> extends Program<
278
282
  return this._replicationSettings;
279
283
  }
280
284
 
285
+ get compatibility(): number | undefined {
286
+ return this._logProperties?.compatibility;
287
+ }
288
+
289
+ private get v8Behaviour() {
290
+ return (this.compatibility ?? Number.MAX_VALUE) < 9;
291
+ }
292
+
293
+ // @deprecated
294
+ private getRole() {
295
+ let isFixedReplicationSettings =
296
+ (this._replicationSettings as FixedReplicationOptions).factor !==
297
+ undefined;
298
+ if (isFixedReplicationSettings) {
299
+ const fixedSettings = this
300
+ ._replicationSettings as FixedReplicationOptions;
301
+ return new Replicator({
302
+ factor: fixedSettings.factor,
303
+ offset: fixedSettings.offset ?? 0,
304
+ });
305
+ }
306
+
307
+ // TODO this is not accurate but might be good enough
308
+ return new Observer();
309
+ }
310
+
281
311
  async isReplicating() {
282
312
  if (!this._replicationSettings) {
283
313
  return false;
@@ -596,13 +626,14 @@ export class SharedLog<T = Uint8Array> extends Program<
596
626
  logger.warn("Not allowed to replicate by canReplicate");
597
627
  }
598
628
 
599
- added &&
600
- (await this.rpc.send(
629
+ if (added) {
630
+ await this.rpc.send(
601
631
  new StartedReplicating({ segments: [range.toReplicationRange()] }),
602
632
  {
603
633
  priority: 1,
604
634
  },
605
- ));
635
+ );
636
+ }
606
637
  }
607
638
 
608
639
  async append(
@@ -992,12 +1023,16 @@ export class SharedLog<T = Uint8Array> extends Program<
992
1023
  async _onMessage(
993
1024
  msg: TransportMessage,
994
1025
  context: RequestContext,
995
- ): Promise<TransportMessage | undefined> {
1026
+ ): Promise<void> {
996
1027
  try {
997
1028
  if (!context.from) {
998
1029
  throw new Error("Missing from in update role message");
999
1030
  }
1000
1031
 
1032
+ if (msg instanceof ResponseRoleMessage) {
1033
+ msg = msg.toReplicationInfoMessage(); // migration
1034
+ }
1035
+
1001
1036
  if (msg instanceof ExchangeHeadsMessage) {
1002
1037
  /**
1003
1038
  * I have received heads from someone else.
@@ -1273,6 +1308,8 @@ export class SharedLog<T = Uint8Array> extends Program<
1273
1308
  } else if (msg instanceof BlocksMessage) {
1274
1309
  await this.remoteBlocks.onMessage(msg.message);
1275
1310
  } else if (msg instanceof RequestReplicationInfoMessage) {
1311
+ // TODO this message type is never used, should we remove it?
1312
+
1276
1313
  if (context.from.equals(this.node.identity.publicKey)) {
1277
1314
  return;
1278
1315
  }
@@ -1286,6 +1323,28 @@ export class SharedLog<T = Uint8Array> extends Program<
1286
1323
  mode: new SilentDelivery({ to: [context.from], redundancy: 1 }),
1287
1324
  },
1288
1325
  );
1326
+
1327
+ // for backwards compatibility (v8) remove this when we are sure that all nodes are v9+
1328
+ if (this.v8Behaviour) {
1329
+ const role = this.getRole();
1330
+ if (role instanceof Replicator) {
1331
+ const fixedSettings = this
1332
+ ._replicationSettings as FixedReplicationOptions;
1333
+ if (fixedSettings.factor === 1) {
1334
+ await this.rpc.send(
1335
+ new ResponseRoleMessage({
1336
+ role,
1337
+ }),
1338
+ {
1339
+ mode: new SilentDelivery({
1340
+ to: [context.from],
1341
+ redundancy: 1,
1342
+ }),
1343
+ },
1344
+ );
1345
+ }
1346
+ }
1347
+ }
1289
1348
  } else if (
1290
1349
  msg instanceof ResponseReplicationInfoMessage ||
1291
1350
  msg instanceof StartedReplicating
@@ -1294,6 +1353,10 @@ export class SharedLog<T = Uint8Array> extends Program<
1294
1353
  return;
1295
1354
  }
1296
1355
 
1356
+ let replicationInfoMessage = msg as
1357
+ | ResponseReplicationInfoMessage
1358
+ | StartedReplicating;
1359
+
1297
1360
  // we have this statement because peers might have changed/announced their role,
1298
1361
  // but we don't know them as "subscribers" yet. i.e. they are not online
1299
1362
 
@@ -1316,7 +1379,7 @@ export class SharedLog<T = Uint8Array> extends Program<
1316
1379
  await this.removeReplicator(context.from!);
1317
1380
  }
1318
1381
  let addedOnce = false;
1319
- for (const segment of msg.segments) {
1382
+ for (const segment of replicationInfoMessage.segments) {
1320
1383
  const added = await this.addReplicationRange(
1321
1384
  segment.toReplicationRangeIndexable(context.from!),
1322
1385
  context.from!,
@@ -1671,6 +1734,15 @@ export class SharedLog<T = Uint8Array> extends Program<
1671
1734
  },
1672
1735
  )
1673
1736
  .catch((e) => logger.error(e.toString()));
1737
+
1738
+ if (this.v8Behaviour) {
1739
+ // for backwards compatibility
1740
+ this.rpc
1741
+ .send(new ResponseRoleMessage({ role: this.getRole() }), {
1742
+ mode: new SilentDelivery({ redundancy: 1, to: [publicKey] }),
1743
+ })
1744
+ .catch((e) => logger.error(e.toString()));
1745
+ }
1674
1746
  }
1675
1747
  } else {
1676
1748
  await this.removeReplicator(publicKey);
@@ -2,6 +2,7 @@ import {
2
2
  BinaryReader,
3
3
  deserialize,
4
4
  field,
5
+ option,
5
6
  serialize,
6
7
  variant,
7
8
  vec,
@@ -9,28 +10,14 @@ import {
9
10
  import { PublicSignKey, equals, randomBytes } from "@peerbit/crypto";
10
11
  import { type Index, id } from "@peerbit/indexer-interface";
11
12
  import { TransportMessage } from "./message.js";
12
- import { SEGMENT_COORDINATE_SCALE } from "./role.js";
13
+ import {
14
+ Observer,
15
+ Replicator,
16
+ Role,
17
+ SEGMENT_COORDINATE_SCALE,
18
+ } from "./role.js";
13
19
 
14
20
  export type ReplicationLimits = { min: MinReplicas; max?: MinReplicas };
15
- /*
16
- export class ReplicatorRect {
17
-
18
- @id({ type: Uint8Array })
19
- id: Uint8Array;
20
-
21
- @field({ type: 'string' })
22
- hash: string;
23
-
24
- @field({ type: vec(ReplicationSegment) })
25
- segments: ReplicationSegment[];
26
-
27
- constructor(properties: { hash: string; segments: ReplicationSegment[] }) {
28
- this.id = randomBytes(32);
29
- this.hash = properties.hash;
30
- this.segments = properties.segments;
31
- }
32
- };
33
- */
34
21
 
35
22
  export enum ReplicationIntent {
36
23
  Explicit = 0,
@@ -280,7 +267,35 @@ export class RequestReplicationInfoMessage extends TransportMessage {
280
267
  }
281
268
  }
282
269
 
270
+ // @deprecated remove when possible
283
271
  @variant([1, 1])
272
+ export class ResponseRoleMessage extends TransportMessage {
273
+ @field({ type: option(Role) })
274
+ role: Observer | Replicator;
275
+
276
+ constructor(properties: { role: Observer | Replicator }) {
277
+ super();
278
+ this.role = properties.role;
279
+ }
280
+
281
+ toReplicationInfoMessage(): ResponseReplicationInfoMessage {
282
+ return new ResponseReplicationInfoMessage({
283
+ segments:
284
+ this.role instanceof Replicator
285
+ ? this.role.segments.map((x) => {
286
+ return new ReplicationRange({
287
+ id: randomBytes(32),
288
+ offset: x.offset,
289
+ factor: x.factor,
290
+ timestamp: x.timestamp,
291
+ });
292
+ })
293
+ : [],
294
+ });
295
+ }
296
+ }
297
+
298
+ @variant([1, 2])
284
299
  export class ResponseReplicationInfoMessage extends TransportMessage {
285
300
  @field({ type: vec(ReplicationRange) })
286
301
  segments: ReplicationRange[];
@@ -291,7 +306,7 @@ export class ResponseReplicationInfoMessage extends TransportMessage {
291
306
  }
292
307
  }
293
308
 
294
- @variant([1, 2])
309
+ @variant([1, 3])
295
310
  export class StartedReplicating extends TransportMessage {
296
311
  @field({ type: vec(ReplicationRange) })
297
312
  segments: ReplicationRange[];
@@ -302,7 +317,7 @@ export class StartedReplicating extends TransportMessage {
302
317
  }
303
318
  }
304
319
 
305
- @variant([1, 3])
320
+ @variant([1, 4])
306
321
  export class StoppedReplicating extends TransportMessage {
307
322
  @field({ type: vec(Uint8Array) })
308
323
  segmentIds: Uint8Array[];