@peerbit/shared-log 8.0.6 → 8.0.7-0691c73

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.
Files changed (57) hide show
  1. package/dist/benchmark/index.d.ts +2 -0
  2. package/dist/benchmark/index.d.ts.map +1 -0
  3. package/{lib/esm/__benchmark__ → dist/benchmark}/index.js +2 -1
  4. package/dist/benchmark/index.js.map +1 -0
  5. package/{lib/esm → dist/src}/blocks.d.ts +1 -0
  6. package/dist/src/blocks.d.ts.map +1 -0
  7. package/{lib/esm → dist/src}/blocks.js +1 -1
  8. package/dist/src/blocks.js.map +1 -0
  9. package/{lib/esm → dist/src}/cpu.d.ts +2 -1
  10. package/dist/src/cpu.d.ts.map +1 -0
  11. package/{lib/esm → dist/src}/cpu.js +2 -2
  12. package/dist/src/cpu.js.map +1 -0
  13. package/{lib/esm → dist/src}/exchange-heads.d.ts +1 -0
  14. package/dist/src/exchange-heads.d.ts.map +1 -0
  15. package/{lib/esm → dist/src}/exchange-heads.js +2 -0
  16. package/dist/src/exchange-heads.js.map +1 -0
  17. package/{lib/esm → dist/src}/index.d.ts +17 -13
  18. package/dist/src/index.d.ts.map +1 -0
  19. package/{lib/esm → dist/src}/index.js +76 -46
  20. package/dist/src/index.js.map +1 -0
  21. package/{lib/esm → dist/src}/message.d.ts +1 -0
  22. package/dist/src/message.d.ts.map +1 -0
  23. package/{lib/esm → dist/src}/pid.d.ts +1 -0
  24. package/dist/src/pid.d.ts.map +1 -0
  25. package/{lib/esm → dist/src}/pid.js.map +1 -1
  26. package/{lib/esm → dist/src}/ranges.d.ts +3 -2
  27. package/dist/src/ranges.d.ts.map +1 -0
  28. package/{lib/esm → dist/src}/ranges.js +5 -2
  29. package/dist/src/ranges.js.map +1 -0
  30. package/{lib/esm → dist/src}/replication.d.ts +1 -0
  31. package/dist/src/replication.d.ts.map +1 -0
  32. package/{lib/esm → dist/src}/replication.js +3 -1
  33. package/dist/src/replication.js.map +1 -0
  34. package/{lib/esm → dist/src}/role.d.ts +2 -1
  35. package/dist/src/role.d.ts.map +1 -0
  36. package/package.json +69 -43
  37. package/src/cpu.ts +5 -4
  38. package/src/exchange-heads.ts +2 -2
  39. package/src/index.ts +142 -108
  40. package/src/pid.ts +1 -1
  41. package/src/ranges.ts +2 -4
  42. package/src/role.ts +1 -1
  43. package/LICENSE +0 -202
  44. package/lib/esm/__benchmark__/index.d.ts +0 -1
  45. package/lib/esm/__benchmark__/index.js.map +0 -1
  46. package/lib/esm/blocks.js.map +0 -1
  47. package/lib/esm/cpu.js.map +0 -1
  48. package/lib/esm/exchange-heads.js.map +0 -1
  49. package/lib/esm/index.js.map +0 -1
  50. package/lib/esm/ranges.js.map +0 -1
  51. package/lib/esm/replication.js.map +0 -1
  52. package/src/__benchmark__/index.ts +0 -115
  53. /package/{lib/esm → dist/src}/message.js +0 -0
  54. /package/{lib/esm → dist/src}/message.js.map +0 -0
  55. /package/{lib/esm → dist/src}/pid.js +0 -0
  56. /package/{lib/esm → dist/src}/role.js +0 -0
  57. /package/{lib/esm → dist/src}/role.js.map +0 -0
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../benchmark/index.ts"],"names":[],"mappings":""}
@@ -10,10 +10,11 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  import B from "benchmark";
11
11
  import { deserialize, field, option, serialize, variant } from "@dao-xyz/borsh";
12
12
  import { TestSession } from "@peerbit/test-utils";
13
+ import {} from "@peerbit/program";
13
14
  import { v4 as uuid } from "uuid";
14
15
  import crypto from "crypto";
15
16
  import { Program } from "@peerbit/program";
16
- import { SharedLog } from "../index.js";
17
+ import { SharedLog } from "../src/index.js";
17
18
  // Run with "node --loader ts-node/esm ./src/__benchmark__/index.ts"
18
19
  // put x 5,843 ops/sec ±4.50% (367 runs sampled)
19
20
  let Document = class Document {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../benchmark/index.ts"],"names":[],"mappings":"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"}
@@ -4,3 +4,4 @@ export declare class BlocksMessage extends TransportMessage {
4
4
  message: BlockRequest | BlockResponse;
5
5
  constructor(message: BlockRequest | BlockResponse);
6
6
  }
7
+ //# sourceMappingURL=blocks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/blocks.ts"],"names":[],"mappings":"AACA,OAAO,EACN,YAAY,EACZ,aAAa,EAEb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,qBACa,aAAc,SAAQ,gBAAgB;IAElD,OAAO,EAAE,YAAY,GAAG,aAAa,CAAC;gBAE1B,OAAO,EAAE,YAAY,GAAG,aAAa;CAKjD"}
@@ -8,7 +8,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import { field, variant } from "@dao-xyz/borsh";
11
- import { BlockMessage as IBlockMessage } from "@peerbit/blocks";
11
+ import { BlockRequest, BlockResponse, BlockMessage as IBlockMessage } from "@peerbit/blocks";
12
12
  import { TransportMessage } from "./message.js";
13
13
  let BlocksMessage = class BlocksMessage extends TransportMessage {
14
14
  message;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../src/blocks.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EACN,YAAY,EACZ,aAAa,EACb,YAAY,IAAI,aAAa,EAC7B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGzC,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,gBAAgB;IAElD,OAAO,CAA+B;IAEtC,YAAY,OAAqC;QAChD,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACxB,CAAC;CACD,CAAA;AAPA;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;;8CACO;AAF1B,aAAa;IADzB,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;GACH,aAAa,CASzB"}
@@ -15,7 +15,7 @@ export declare class CPUUsageIntervalLag implements CPUUsage {
15
15
  upperBoundLag: number;
16
16
  };
17
17
  dt: number[];
18
- interval: ReturnType<typeof setInterval>;
18
+ interval?: ReturnType<typeof setInterval>;
19
19
  sum: number;
20
20
  constructor(properties?: {
21
21
  windowSize: number;
@@ -27,3 +27,4 @@ export declare class CPUUsageIntervalLag implements CPUUsage {
27
27
  start(): void;
28
28
  stop(): void;
29
29
  }
30
+ //# sourceMappingURL=cpu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpu.d.ts","sourceRoot":"","sources":["../../src/cpu.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACxB,KAAK,CAAC,IAAI,IAAI,CAAC;IACf,IAAI,CAAC,IAAI,IAAI,CAAC;IACd,KAAK,EAAE,MAAM,MAAM,CAAC;CACpB;AAED;;;;GAIG;AAEH,qBAAa,mBAAoB,YAAW,QAAQ;IAMlD,QAAQ,CAAC,UAAU,EAAE;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;KACtB;IATF,EAAE,EAAE,MAAM,EAAE,CAAM;IAClB,QAAQ,CAAC,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;IAC1C,GAAG,EAAE,MAAM,CAAK;gBAGN,UAAU,GAAE;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;KACuC;IAE/D,OAAO,CAAC,IAAI;IAIZ,KAAK;IASL,KAAK;IAiBL,IAAI;CAGJ"}
@@ -5,9 +5,9 @@
5
5
  */
6
6
  export class CPUUsageIntervalLag {
7
7
  properties;
8
- dt;
8
+ dt = [];
9
9
  interval;
10
- sum;
10
+ sum = 0;
11
11
  constructor(properties = { windowSize: 50, intervalTime: 100, upperBoundLag: 1000 }) {
12
12
  this.properties = properties;
13
13
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpu.js","sourceRoot":"","sources":["../../src/cpu.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AAEH,MAAM,OAAO,mBAAmB;IAMrB;IALV,EAAE,GAAa,EAAE,CAAC;IAClB,QAAQ,CAAkC;IAC1C,GAAG,GAAW,CAAC,CAAC;IAEhB,YACU,aAIL,EAAE,UAAU,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE;QAJrD,eAAU,GAAV,UAAU,CAI2C;IAC3D,CAAC;IACG,IAAI;QACX,OAAO,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;IAClC,CAAC;IAED,KAAK;QACJ,OAAO,CACN,IAAI,CAAC,GAAG,CACP,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC,EACvD,IAAI,CAAC,UAAU,CAAC,aAAa,CAC7B,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CACjC,CAAC,CAAC,8CAA8C;IAClD,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,EAAE,GAAG,IAAI,KAAK,CAAS,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CAC3D,IAAI,CAAC,UAAU,CAAC,YAAY,CAC5B,CAAC;QACF,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAErE,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,MAAM,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,EAAG,CAAC;YAC7B,MAAM,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;YACpB,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjB,EAAE,GAAG,GAAG,CAAC;QACV,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC;IAED,IAAI;QACH,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;CACD"}
@@ -48,3 +48,4 @@ export declare class ResponseIPrune extends TransportMessage {
48
48
  }
49
49
  export declare const createExchangeHeadsMessages: (log: Log<any>, heads: Entry<any>[], gidParentCache: Cache<Entry<any>[]>) => Promise<ExchangeHeadsMessage<any>[]>;
50
50
  export declare const allEntriesWithUniqueGids: (log: Log<any>, entry: Entry<any>, gidParentCache: Cache<Entry<any>[]>) => Promise<Entry<any>[]>;
51
+ //# sourceMappingURL=exchange-heads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exchange-heads.d.ts","sourceRoot":"","sources":["../../src/exchange-heads.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAgC,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAIvC;;;;GAIG;AACH,qBACa,aAAa,CAAC,CAAC;IAE3B,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAGhB,YAAY,EAAE,MAAM,EAAE,CAAC;gBAEX,UAAU,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAAC,YAAY,EAAE,MAAM,EAAE,CAAA;KAAE;CAInE;AAED,qBACa,oBAAoB,CAAC,CAAC,CAAE,SAAQ,gBAAgB;IAE5D,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAG1B,QAAQ,EAAE,UAAU,CAAqB;gBAE7B,KAAK,EAAE;QAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAA;KAAE;CAIhD;AAED,qBACa,gBAAiB,SAAQ,gBAAgB;IAErD,MAAM,EAAE,MAAM,EAAE,CAAC;gBAEL,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;CAIvC;AAED,qBACa,iBAAkB,SAAQ,gBAAgB;IAEtD,MAAM,EAAE,MAAM,EAAE,CAAC;gBAEL,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;CAIvC;AAED,qBACa,aAAc,SAAQ,gBAAgB;IAGlD,MAAM,EAAE,MAAM,EAAE,CAAC;gBAEL,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;CAIvC;AAED,qBACa,cAAe,SAAQ,gBAAgB;IAGnD,MAAM,EAAE,MAAM,EAAE,CAAC;gBAEL,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;CAIvC;AAID,eAAO,MAAM,2BAA2B,QAClC,IAAI,GAAG,CAAC,SACN,MAAM,GAAG,CAAC,EAAE,kBACH,MAAM,MAAM,GAAG,CAAC,EAAE,CAAC,KACjC,QAAQ,qBAAqB,GAAG,CAAC,EAAE,CAiDrC,CAAC;AAEF,eAAO,MAAM,wBAAwB,QAC/B,IAAI,GAAG,CAAC,SACN,MAAM,GAAG,CAAC,kBACD,MAAM,MAAM,GAAG,CAAC,EAAE,CAAC,KACjC,QAAQ,MAAM,GAAG,CAAC,EAAE,CAsCtB,CAAC"}
@@ -9,8 +9,10 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  };
10
10
  import { variant, field, vec, fixedArray } from "@dao-xyz/borsh";
11
11
  import { Entry, EntryType } from "@peerbit/log";
12
+ import { Log } from "@peerbit/log";
12
13
  import { logger as loggerFn } from "@peerbit/logger";
13
14
  import { TransportMessage } from "./message.js";
15
+ import { Cache } from "@peerbit/cache";
14
16
  const logger = loggerFn({ module: "exchange-heads" });
15
17
  /**
16
18
  * This thing allows use to faster sync since we can provide
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exchange-heads.js","sourceRoot":"","sources":["../../src/exchange-heads.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,15 @@
1
- import { RequestContext, RPC } from "@peerbit/rpc";
1
+ import { type RequestContext, RPC } from "@peerbit/rpc";
2
2
  import { TransportMessage } from "./message.js";
3
- import { AppendOptions, Entry, Log, LogEvents, LogProperties } from "@peerbit/log";
4
- import { Program, ProgramEvents } from "@peerbit/program";
3
+ import { type AppendOptions, type Change, Entry, Log, type LogEvents, type LogProperties } from "@peerbit/log";
4
+ import { Program, type ProgramEvents } from "@peerbit/program";
5
5
  import { PublicSignKey } from "@peerbit/crypto";
6
6
  import { SubscriptionEvent, UnsubcriptionEvent } from "@peerbit/pubsub-interface";
7
7
  import { Observer, Replicator, Role } from "./role.js";
8
- import { AbsoluteReplicas, ReplicationLimits, ReplicatorRect } from "./replication.js";
8
+ import { AbsoluteReplicas, type ReplicationLimits, type ReplicatorRect } from "./replication.js";
9
9
  import yallist from "yallist";
10
10
  import { PIDReplicationController } from "./pid.js";
11
11
  export * from "./replication.js";
12
- import { CPUUsage, CPUUsageIntervalLag } from "./cpu.js";
12
+ import { type CPUUsage, CPUUsageIntervalLag } from "./cpu.js";
13
13
  export { type CPUUsage, CPUUsageIntervalLag };
14
14
  export { Observer, Replicator, Role };
15
15
  export declare const logger: import("pino").Logger<never>;
@@ -30,6 +30,7 @@ export type AdaptiveReplicatorOptions = {
30
30
  };
31
31
  export type FixedReplicatorOptions = {
32
32
  type: "replicator";
33
+ offset?: number;
33
34
  factor: number;
34
35
  };
35
36
  export type ObserverType = {
@@ -95,6 +96,11 @@ export declare class SharedLog<T = Uint8Array> extends Program<Args<T>, SharedLo
95
96
  timeUntilRoleMaturity: number;
96
97
  waitForReplicatorTimeout: number;
97
98
  distributionDebounceTime: number;
99
+ replicationController: PIDReplicationController;
100
+ history: {
101
+ usedMemory: number;
102
+ factor: number;
103
+ }[];
98
104
  constructor(properties?: {
99
105
  id?: Uint8Array;
100
106
  });
@@ -119,13 +125,15 @@ export declare class SharedLog<T = Uint8Array> extends Program<Args<T>, SharedLo
119
125
  afterOpen(): Promise<void>;
120
126
  getMemoryUsage(): Promise<number>;
121
127
  get topic(): string;
128
+ onChange(change: Change<T>): Promise<void>;
129
+ canAppend(entry: Entry<T>): Promise<boolean>;
122
130
  private _close;
123
131
  close(from?: Program): Promise<boolean>;
124
132
  drop(from?: Program): Promise<boolean>;
125
133
  recover(): Promise<void>;
126
134
  _onMessage(msg: TransportMessage, context: RequestContext): Promise<TransportMessage | undefined>;
127
135
  getReplicatorsSorted(): yallist<ReplicatorRect> | undefined;
128
- waitForReplicator(...keys: PublicSignKey[]): Promise<boolean | undefined>;
136
+ waitForReplicator(...keys: PublicSignKey[]): Promise<boolean | void>;
129
137
  isLeader(slot: {
130
138
  toString(): string;
131
139
  }, numberOfLeaders: number, options?: {
@@ -158,16 +166,11 @@ export declare class SharedLog<T = Uint8Array> extends Program<Args<T>, SharedLo
158
166
  timeout?: number;
159
167
  unchecked?: boolean;
160
168
  }): Promise<any>[];
161
- distribute(): Promise<false | void>;
162
- _distribute(): Promise<false | undefined>;
169
+ distribute(): Promise<boolean | void>;
170
+ _distribute(): Promise<boolean>;
163
171
  private requestSync;
164
172
  _onUnsubscription(evt: CustomEvent<UnsubcriptionEvent>): Promise<void>;
165
173
  _onSubscription(evt: CustomEvent<SubscriptionEvent>): Promise<void>;
166
- replicationController: PIDReplicationController;
167
- history: {
168
- usedMemory: number;
169
- factor: number;
170
- }[];
171
174
  addToHistory(usedMemory: number, factor: number): Promise<void>;
172
175
  calculateTrend(): Promise<number>;
173
176
  rebalanceParticipation(onRoleChange?: boolean): Promise<boolean>;
@@ -175,3 +178,4 @@ export declare class SharedLog<T = Uint8Array> extends Program<Args<T>, SharedLo
175
178
  private onEntryAdded;
176
179
  onEntryRemoved(hash: string): void;
177
180
  }
181
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -9,20 +9,21 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  };
10
10
  import { RPC } from "@peerbit/rpc";
11
11
  import { TransportMessage } from "./message.js";
12
- import { Entry, Log } from "@peerbit/log";
12
+ import { Entry, Log, } from "@peerbit/log";
13
13
  import { Program } from "@peerbit/program";
14
14
  import { BinaryWriter, BorshError, field, variant } from "@dao-xyz/borsh";
15
- import { AccessError, sha256, sha256Base64Sync } from "@peerbit/crypto";
15
+ import { AccessError, PublicSignKey, sha256, sha256Base64Sync } from "@peerbit/crypto";
16
16
  import { logger as loggerFn } from "@peerbit/logger";
17
- import { ExchangeHeadsMessage, RequestIPrune, RequestMaybeSync, ResponseIPrune, ResponseMaybeSync, createExchangeHeadsMessages } from "./exchange-heads.js";
17
+ import { EntryWithRefs, ExchangeHeadsMessage, RequestIPrune, RequestMaybeSync, ResponseIPrune, ResponseMaybeSync, createExchangeHeadsMessages } from "./exchange-heads.js";
18
+ import { SubscriptionEvent, UnsubcriptionEvent } from "@peerbit/pubsub-interface";
18
19
  import { AbortError, delay, waitFor } from "@peerbit/time";
19
20
  import { Observer, Replicator, Role } from "./role.js";
20
21
  import { AbsoluteReplicas, ReplicationError, RequestRoleMessage, ResponseRoleMessage, decodeReplicas, encodeReplicas, hashToUniformNumber, maxReplicas } from "./replication.js";
21
- import pDefer from "p-defer";
22
+ import pDefer, {} from "p-defer";
22
23
  import { Cache } from "@peerbit/cache";
23
24
  import { CustomEvent } from "@libp2p/interface";
24
25
  import yallist from "yallist";
25
- import { AcknowledgeDelivery, SilentDelivery, NotStartedError } from "@peerbit/stream-interface";
26
+ import { AcknowledgeDelivery, DeliveryMode, SilentDelivery, NotStartedError } from "@peerbit/stream-interface";
26
27
  import { AnyBlockStore, RemoteBlocks } from "@peerbit/blocks";
27
28
  import { BlocksMessage } from "./blocks.js";
28
29
  import debounce from "p-debounce";
@@ -91,14 +92,18 @@ let SharedLog = class SharedLog extends Program {
91
92
  distributeQueue;
92
93
  // Syncing and dedeplucation work
93
94
  syncMoreInterval;
95
+ // map of hash to public keys that we can ask for entries
94
96
  syncInFlightQueue;
95
97
  syncInFlightQueueInverted;
98
+ // map of hash to public keys that we have asked for entries
96
99
  syncInFlight;
97
100
  replicas;
98
101
  cpuUsage;
99
102
  timeUntilRoleMaturity;
100
103
  waitForReplicatorTimeout;
101
104
  distributionDebounceTime;
105
+ replicationController;
106
+ history;
102
107
  constructor(properties) {
103
108
  super();
104
109
  this.log = new Log(properties);
@@ -165,7 +170,7 @@ let SharedLog = class SharedLog extends Program {
165
170
  else {
166
171
  this._roleConfig = new Replicator({
167
172
  factor: options.factor,
168
- offset: this.getReplicationOffset()
173
+ offset: options?.offset ?? this.getReplicationOffset()
169
174
  });
170
175
  }
171
176
  }
@@ -188,13 +193,13 @@ let SharedLog = class SharedLog extends Program {
188
193
  if (this._roleConfig?.limits) {
189
194
  this._role = new Replicator({
190
195
  factor: this._role instanceof Replicator ? this._role.factor : 0,
191
- offset: this.getReplicationOffset()
196
+ offset: this._role instanceof Replicator ? this._role.offset : this.getReplicationOffset()
192
197
  });
193
198
  }
194
199
  else {
195
200
  this._role = new Replicator({
196
201
  factor: this._role instanceof Replicator ? this._role.factor : 1,
197
- offset: this.getReplicationOffset()
202
+ offset: this._role instanceof Replicator ? this._role.offset : this.getReplicationOffset()
198
203
  });
199
204
  }
200
205
  }
@@ -230,6 +235,18 @@ let SharedLog = class SharedLog extends Program {
230
235
  else {
231
236
  appendOptions.meta.data = minReplicasData;
232
237
  }
238
+ if (options?.canAppend) {
239
+ appendOptions.canAppend = async (entry) => {
240
+ await this.canAppend(entry);
241
+ return options.canAppend(entry);
242
+ };
243
+ }
244
+ if (options?.onChange) {
245
+ appendOptions.onChange = async (change) => {
246
+ await this.onChange(change);
247
+ return options.onChange(change);
248
+ };
249
+ }
233
250
  const result = await this.log.append(data, appendOptions);
234
251
  let mode = undefined;
235
252
  for (const message of await createExchangeHeadsMessages(this.log, [result.entry], this._gidParentCache)) {
@@ -291,9 +308,9 @@ let SharedLog = class SharedLog extends Program {
291
308
  this.openTime = +new Date();
292
309
  this.oldestOpenTime = this.openTime;
293
310
  this.distributionDebounceTime =
294
- options?.distributionDebounceTime || DEFAULT_DISTRIBUTION_DEBOUNCE_TIME;
311
+ options?.distributionDebounceTime || DEFAULT_DISTRIBUTION_DEBOUNCE_TIME; // expect > 0
295
312
  this.timeUntilRoleMaturity =
296
- options?.timeUntilRoleMaturity || WAIT_FOR_ROLE_MATURITY;
313
+ options?.timeUntilRoleMaturity ?? WAIT_FOR_ROLE_MATURITY;
297
314
  this.waitForReplicatorTimeout =
298
315
  options?.waitForReplicatorTimeout || WAIT_FOR_REPLICATOR_TIMEOUT;
299
316
  this._gidParentCache = new Cache({ max: 1000 });
@@ -324,36 +341,12 @@ let SharedLog = class SharedLog extends Program {
324
341
  keychain: this.node.services.keychain,
325
342
  ...this._logProperties,
326
343
  onChange: (change) => {
327
- for (const added of change.added) {
328
- this.onEntryAdded(added);
329
- }
330
- for (const removed of change.removed) {
331
- this.onEntryRemoved(removed.hash);
332
- }
344
+ this.onChange(change);
333
345
  return this._logProperties?.onChange?.(change);
334
346
  },
335
347
  canAppend: async (entry) => {
336
- try {
337
- if (!entry.meta.data) {
338
- logger.warn("Received entry without meta data, skipping");
339
- return false;
340
- }
341
- const replicas = decodeReplicas(entry).getValue(this);
342
- if (Number.isFinite(replicas) === false) {
343
- return false;
344
- }
345
- // Don't verify entries that we have created (TODO should we? perf impact?)
346
- if (!entry.createdLocally && !(await entry.verifySignatures())) {
347
- return false;
348
- }
349
- }
350
- catch (error) {
351
- if (error instanceof BorshError ||
352
- error instanceof ReplicationError) {
353
- logger.warn("Received payload that could not be decoded, skipping");
354
- return false;
355
- }
356
- throw error;
348
+ if (!(await this.canAppend(entry))) {
349
+ return false;
357
350
  }
358
351
  return this._logProperties?.canAppend?.(entry) ?? true;
359
352
  },
@@ -444,6 +437,38 @@ let SharedLog = class SharedLog extends Program {
444
437
  get topic() {
445
438
  return this.log.idString;
446
439
  }
440
+ async onChange(change) {
441
+ for (const added of change.added) {
442
+ this.onEntryAdded(added);
443
+ }
444
+ for (const removed of change.removed) {
445
+ this.onEntryRemoved(removed.hash);
446
+ }
447
+ }
448
+ async canAppend(entry) {
449
+ try {
450
+ if (!entry.meta.data) {
451
+ logger.warn("Received entry without meta data, skipping");
452
+ return false;
453
+ }
454
+ const replicas = decodeReplicas(entry).getValue(this);
455
+ if (Number.isFinite(replicas) === false) {
456
+ return false;
457
+ }
458
+ // Don't verify entries that we have created (TODO should we? perf impact?)
459
+ if (!entry.createdLocally && !(await entry.verifySignatures())) {
460
+ return false;
461
+ }
462
+ return true;
463
+ }
464
+ catch (error) {
465
+ if (error instanceof BorshError || error instanceof ReplicationError) {
466
+ logger.warn("Received payload that could not be decoded, skipping");
467
+ return false;
468
+ }
469
+ throw error;
470
+ }
471
+ }
447
472
  async _close() {
448
473
  clearTimeout(this.syncMoreInterval);
449
474
  clearInterval(this.distributeInterval);
@@ -452,11 +477,11 @@ let SharedLog = class SharedLog extends Program {
452
477
  this.node.services.pubsub.removeEventListener("subscribe", this._onSubscriptionFn);
453
478
  this._onUnsubscriptionFn = this._onUnsubscription.bind(this);
454
479
  this.node.services.pubsub.removeEventListener("unsubscribe", this._onUnsubscriptionFn);
455
- for (const [k, v] of this._pendingDeletes) {
480
+ for (const [_k, v] of this._pendingDeletes) {
456
481
  v.clear();
457
482
  v.promise.resolve(); // TODO or reject?
458
483
  }
459
- for (const [k, v] of this._pendingIHave) {
484
+ for (const [_k, v] of this._pendingIHave) {
460
485
  v.clear();
461
486
  }
462
487
  await this.remoteBlocks.stop();
@@ -766,7 +791,15 @@ let SharedLog = class SharedLog extends Program {
766
791
  }
767
792
  return true;
768
793
  };
769
- return waitFor(() => check(), { signal: this._closeController.signal });
794
+ return waitFor(() => check(), {
795
+ signal: this._closeController.signal
796
+ }).catch((e) => {
797
+ if (e instanceof AbortError) {
798
+ // ignore error
799
+ return;
800
+ }
801
+ throw e;
802
+ });
770
803
  }
771
804
  async isLeader(slot, numberOfLeaders, options) {
772
805
  const isLeader = (await this.findLeaders(slot, numberOfLeaders, options)).find((l) => l === this.node.identity.publicKey.hashcode());
@@ -829,10 +862,8 @@ let SharedLog = class SharedLog extends Program {
829
862
  }
830
863
  findLeadersFromUniformNumber(cursor, numberOfLeaders, options) {
831
864
  const roleAge = options?.roleAge ?? this.getDefaultMinRoleAge(); // TODO -500 as is added so that i f someone else is just as new as us, then we treat them as mature as us. without -500 we might be slower syncing if two nodes starts almost at the same time
832
- const sampes = getSamples(cursor, this.getReplicatorsSorted(), numberOfLeaders, roleAge, this.role instanceof Replicator && this.role.factor === 0
833
- ? this.node.identity.publicKey.hashcode()
834
- : undefined);
835
- return sampes;
865
+ const samples = getSamples(cursor, this.getReplicatorsSorted(), numberOfLeaders, roleAge);
866
+ return samples;
836
867
  }
837
868
  /**
838
869
  *
@@ -954,6 +985,7 @@ let SharedLog = class SharedLog extends Program {
954
985
  return { prev: prev.role, changed: "updated" };
955
986
  }
956
987
  if (role.offset > currentNode.value.role.offset) {
988
+ // @ts-ignore
957
989
  const next = currentNode?.next;
958
990
  if (next) {
959
991
  currentNode = next;
@@ -1253,8 +1285,6 @@ let SharedLog = class SharedLog extends Program {
1253
1285
  this.remoteBlocks.onReachable(evt.detail.from);
1254
1286
  return this.handleSubscriptionChange(evt.detail.from, evt.detail.subscriptions, true);
1255
1287
  }
1256
- replicationController;
1257
- history;
1258
1288
  async addToHistory(usedMemory, factor) {
1259
1289
  (this.history || (this.history = [])).push({ usedMemory, factor });
1260
1290
  // Keep only the last N entries in the history array (you can adjust N based on your needs)
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  export declare abstract class TransportMessage {
2
2
  }
3
+ //# sourceMappingURL=message.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/message.ts"],"names":[],"mappings":"AAEA,8BACsB,gBAAgB;CAAG"}
@@ -32,3 +32,4 @@ export declare class PIDReplicationController {
32
32
  }): number;
33
33
  reset(): void;
34
34
  }
35
+ //# sourceMappingURL=pid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pid.d.ts","sourceRoot":"","sources":["../../src/pid.ts"],"names":[],"mappings":"AAAA,qBAAa,wBAAwB;IAWnC,QAAQ,CAAC,EAAE,EAAE,MAAM;IAVpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;gBAEX,EAAE,EAAE,MAAM,EACnB,OAAO,GAAE;QACR,OAAO,CAAC,EAAE;YAAE,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;QAC1B,GAAG,CAAC,EAAE;YAAE,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;QACtB,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,EAAE,CAAC,EAAE,MAAM,CAAC;KACP;IAWP;;OAEG;IACH,IAAI,CAAC,UAAU,EAAE;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;KAC7B;IAsHD,KAAK;CAKL"}