@peerbit/shared-log 3.1.9 → 4.0.1

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":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,19 @@
1
+ import { TransportMessage } from "./message.js";
2
+ import { Observer, Replicator } from "./role.js";
3
+ import { PublicSignKey } from "@peerbit/crypto";
4
+ import yallist from "yallist";
5
+ export type ReplicationLimits = {
6
+ min: MinReplicas;
7
+ max?: MinReplicas;
8
+ };
9
+ export type ReplicatorRect = {
10
+ publicKey: PublicSignKey;
11
+ offset: number;
12
+ role: Replicator;
13
+ };
1
14
  interface SharedLog {
2
- getReplicatorsSorted(): {
3
- hash: string;
4
- timestamp: number;
5
- }[] | undefined;
15
+ replicas: Partial<ReplicationLimits>;
16
+ getReplicatorsSorted(): yallist<ReplicatorRect> | undefined;
6
17
  }
7
18
  export declare class MinReplicas {
8
19
  getValue(log: SharedLog): number;
@@ -12,6 +23,13 @@ export declare class AbsoluteReplicas extends MinReplicas {
12
23
  constructor(value: number);
13
24
  getValue(_log: SharedLog): number;
14
25
  }
26
+ export declare class RequestRoleMessage extends TransportMessage {
27
+ constructor();
28
+ }
29
+ export declare class ResponseRoleMessage extends TransportMessage {
30
+ role: Observer | Replicator;
31
+ constructor(role: Observer | Replicator);
32
+ }
15
33
  export declare const encodeReplicas: (minReplicas: MinReplicas) => Uint8Array;
16
34
  export declare class ReplicationError extends Error {
17
35
  constructor(message: string);
@@ -25,5 +43,10 @@ export declare const maxReplicas: (log: SharedLog, entries: {
25
43
  meta: {
26
44
  data?: Uint8Array;
27
45
  };
28
- }[]) => number;
46
+ }[] | IterableIterator<{
47
+ meta: {
48
+ data?: Uint8Array;
49
+ };
50
+ }>) => number;
51
+ export declare const hashToUniformNumber: (hash: Uint8Array) => number;
29
52
  export {};
@@ -7,7 +7,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
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
- import { variant, deserialize, serialize, field } from "@dao-xyz/borsh";
10
+ import { variant, deserialize, serialize, field, option, BinaryReader } from "@dao-xyz/borsh";
11
+ import { TransportMessage } from "./message.js";
12
+ import { Role } from "./role.js";
11
13
  export class MinReplicas {
12
14
  getValue(log) {
13
15
  throw new Error("Not implemented");
@@ -32,6 +34,32 @@ AbsoluteReplicas = __decorate([
32
34
  __metadata("design:paramtypes", [Number])
33
35
  ], AbsoluteReplicas);
34
36
  export { AbsoluteReplicas };
37
+ let RequestRoleMessage = class RequestRoleMessage extends TransportMessage {
38
+ constructor() {
39
+ super();
40
+ }
41
+ };
42
+ RequestRoleMessage = __decorate([
43
+ variant([1, 0]),
44
+ __metadata("design:paramtypes", [])
45
+ ], RequestRoleMessage);
46
+ export { RequestRoleMessage };
47
+ let ResponseRoleMessage = class ResponseRoleMessage extends TransportMessage {
48
+ role;
49
+ constructor(role) {
50
+ super();
51
+ this.role = role;
52
+ }
53
+ };
54
+ __decorate([
55
+ field({ type: option(Role) }),
56
+ __metadata("design:type", Object)
57
+ ], ResponseRoleMessage.prototype, "role", void 0);
58
+ ResponseRoleMessage = __decorate([
59
+ variant([1, 1]),
60
+ __metadata("design:paramtypes", [Object])
61
+ ], ResponseRoleMessage);
62
+ export { ResponseRoleMessage };
35
63
  /*
36
64
  @variant(1)
37
65
  export class RelativeMinReplicas extends MinReplicas {
@@ -65,6 +93,13 @@ export const maxReplicas = (log, entries) => {
65
93
  for (const entry of entries) {
66
94
  max = Math.max(decodeReplicas(entry).getValue(log), max);
67
95
  }
68
- return max;
96
+ const lower = log.replicas.min?.getValue(log) || 1;
97
+ const higher = log.replicas.max?.getValue(log) ?? Number.MAX_SAFE_INTEGER;
98
+ const numberOfLeaders = Math.max(Math.min(higher, max), lower);
99
+ return numberOfLeaders;
100
+ };
101
+ export const hashToUniformNumber = (hash) => {
102
+ const seedNumber = new BinaryReader(hash.subarray(hash.length - 4, hash.length)).u32();
103
+ return seedNumber / 0xffffffff; // bounded between 0 and 1
69
104
  };
70
105
  //# sourceMappingURL=replication.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"replication.js","sourceRoot":"","sources":["../../src/replication.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACN,OAAO,EACP,WAAW,EACX,SAAS,EACT,KAAK,EAEL,MAAM,gBAAgB,CAAC;AAMxB,MAAM,OAAO,WAAW;IACvB,QAAQ,CAAC,GAAc;QACtB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACpC,CAAC;CACD;AAGM,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,WAAW;IAEhD,MAAM,CAAS;IAEf,YAAY,KAAa;QACxB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACrB,CAAC;IACD,QAAQ,CAAC,IAAe;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;CACD,CAAA;AATA;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;;gDACR;AAFH,gBAAgB;IAD5B,OAAO,CAAC,CAAC,CAAC;;GACE,gBAAgB,CAW5B;;AAED;;;;;;;;;;;;;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;QACrB,MAAM,IAAI,gBAAgB,CAAC,8BAA8B,CAAC,CAAC;KAC3D;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,OAA0C,EACzC,EAAE;IACH,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;QAC5B,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;KACzD;IACD,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC"}
1
+ {"version":3,"file":"replication.js","sourceRoot":"","sources":["../../src/replication.ts"],"names":[],"mappings":"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"}
package/lib/esm/role.d.ts CHANGED
@@ -7,7 +7,27 @@ export declare const OBSERVER_TYPE_VARIANT: Uint8Array;
7
7
  export declare class Observer extends Role {
8
8
  }
9
9
  export declare const REPLICATOR_TYPE_VARIANT: Uint8Array;
10
+ declare class ReplicationSegment {
11
+ timestamp: bigint;
12
+ private factorNominator;
13
+ private offsetNominator?;
14
+ constructor(properties: {
15
+ factor: number;
16
+ timestamp?: bigint;
17
+ offset?: number;
18
+ });
19
+ get factor(): number;
20
+ get offset(): number | undefined;
21
+ }
10
22
  export declare class Replicator extends Role {
11
- multiplier: number;
12
- constructor();
23
+ segments: ReplicationSegment[];
24
+ constructor(properties: {
25
+ factor: number;
26
+ timestamp?: bigint;
27
+ offset?: number;
28
+ });
29
+ get factor(): number;
30
+ get offset(): number | undefined;
31
+ get timestamp(): bigint;
13
32
  }
33
+ export {};
package/lib/esm/role.js CHANGED
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
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
- import { field, variant } from "@dao-xyz/borsh";
10
+ import { field, option, variant, vec } from "@dao-xyz/borsh";
11
11
  export class Role {
12
12
  }
13
13
  export const NO_TYPE_VARIANT = new Uint8Array([0]);
@@ -25,21 +25,69 @@ Observer = __decorate([
25
25
  ], Observer);
26
26
  export { Observer };
27
27
  export const REPLICATOR_TYPE_VARIANT = new Uint8Array([2]);
28
+ class ReplicationSegment {
29
+ timestamp;
30
+ factorNominator;
31
+ offsetNominator;
32
+ constructor(properties) {
33
+ const { factor, timestamp, offset } = properties;
34
+ if (factor > 1 || factor < 0) {
35
+ throw new Error("Expecting factor to be between 0 and 1, got: " + factor);
36
+ }
37
+ this.timestamp = timestamp ?? BigInt(+new Date());
38
+ this.factorNominator = Math.round(4294967295 * factor);
39
+ if (offset != null) {
40
+ if (offset > 1 || offset < 0) {
41
+ throw new Error("Expecting offset to be between 0 and 1, got: " + offset);
42
+ }
43
+ this.offsetNominator = Math.round(4294967295 * offset);
44
+ }
45
+ }
46
+ get factor() {
47
+ return this.factorNominator / 4294967295;
48
+ }
49
+ get offset() {
50
+ return this.offsetNominator != null
51
+ ? this.offsetNominator / 4294967295
52
+ : undefined;
53
+ }
54
+ }
55
+ __decorate([
56
+ field({ type: "u64" }),
57
+ __metadata("design:type", BigInt)
58
+ ], ReplicationSegment.prototype, "timestamp", void 0);
59
+ __decorate([
60
+ field({ type: "u32" }),
61
+ __metadata("design:type", Number)
62
+ ], ReplicationSegment.prototype, "factorNominator", void 0);
63
+ __decorate([
64
+ field({ type: option("u32") }),
65
+ __metadata("design:type", Number)
66
+ ], ReplicationSegment.prototype, "offsetNominator", void 0);
28
67
  let Replicator = class Replicator extends Role {
29
- multiplier; // 1 means I do the same amount of work as anyone else, 2 means double
30
- constructor() {
31
- // multiplier is unsupported for now, so contructor is empty
68
+ segments;
69
+ constructor(properties) {
32
70
  super();
33
- this.multiplier = 1;
71
+ const segment = new ReplicationSegment(properties);
72
+ this.segments = [segment];
73
+ }
74
+ get factor() {
75
+ return this.segments[0].factor;
76
+ }
77
+ get offset() {
78
+ return this.segments[0].offset;
79
+ }
80
+ get timestamp() {
81
+ return this.segments[0].timestamp;
34
82
  }
35
83
  };
36
84
  __decorate([
37
- field({ type: "u32" }),
38
- __metadata("design:type", Number)
39
- ], Replicator.prototype, "multiplier", void 0);
85
+ field({ type: vec(ReplicationSegment) }),
86
+ __metadata("design:type", Array)
87
+ ], Replicator.prototype, "segments", void 0);
40
88
  Replicator = __decorate([
41
89
  variant(2),
42
- __metadata("design:paramtypes", [])
90
+ __metadata("design:paramtypes", [Object])
43
91
  ], Replicator);
44
92
  export { Replicator };
45
93
  //# sourceMappingURL=role.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"role.js","sourceRoot":"","sources":["../../src/role.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,OAAgB,IAAI;CAAG;AAE7B,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAG5C,IAAM,MAAM,GAAZ,MAAM,MAAO,SAAQ,IAAI;CAAG,CAAA;AAAtB,MAAM;IADlB,OAAO,CAAC,CAAC,CAAC;GACE,MAAM,CAAgB;;AAEnC,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAElD,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,IAAI;CAAG,CAAA;AAAxB,QAAQ;IADpB,OAAO,CAAC,CAAC,CAAC;GACE,QAAQ,CAAgB;;AAErC,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAGpD,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,IAAI;IAEnC,UAAU,CAAS,CAAC,sEAAsE;IAE1F;QACC,4DAA4D;QAC5D,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;IACrB,CAAC;CACD,CAAA;AAPA;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;;8CACJ;AAFP,UAAU;IADtB,OAAO,CAAC,CAAC,CAAC;;GACE,UAAU,CAStB"}
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": "3.1.9",
3
+ "version": "4.0.1",
4
4
  "description": "Shared log",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -31,14 +31,15 @@
31
31
  "license": "MIT",
32
32
  "dependencies": {
33
33
  "@dao-xyz/borsh": "^5.1.8",
34
- "@peerbit/log": "2.1.9",
35
- "@peerbit/logger": "1.0.1",
36
- "@peerbit/program": "2.4.1",
37
- "@peerbit/rpc": "2.1.16",
38
- "@peerbit/time": "1.0.4"
34
+ "@peerbit/log": "3.0.1",
35
+ "@peerbit/logger": "1.0.2",
36
+ "@peerbit/program": "3.0.1",
37
+ "@peerbit/rpc": "3.0.1",
38
+ "@peerbit/time": "2.0.0",
39
+ "p-debounce": "^4.0.0"
39
40
  },
40
41
  "devDependencies": {
41
- "@peerbit/test-utils": "^1.0.32"
42
+ "@peerbit/test-utils": "^2.0.1"
42
43
  },
43
- "gitHead": "1a57e60b02b5ea1c0c743871a92404a0115ed683"
44
+ "gitHead": "c48cb37d237a25b0bcc849482b43f6941d53e3d5"
44
45
  }
@@ -5,9 +5,11 @@ import { ProgramClient } from "@peerbit/program";
5
5
  import { v4 as uuid } from "uuid";
6
6
  import crypto from "crypto";
7
7
  import { Program } from "@peerbit/program";
8
- import { Replicator, SharedLog, Args } from "../index.js";
8
+ import { SharedLog, Args } from "../index.js";
9
+ import { mplex } from "@libp2p/mplex";
9
10
 
10
11
  // Run with "node --loader ts-node/esm ./src/__benchmark__/index.ts"
12
+ // put x 5,843 ops/sec ±4.50% (367 runs sampled)
11
13
 
12
14
  @variant("document")
13
15
  class Document {
@@ -55,7 +57,11 @@ class TestStore extends Program<Args<Document>> {
55
57
  }
56
58
 
57
59
  const peersCount = 1;
58
- const session = await TestSession.connected(peersCount);
60
+ const session = await TestSession.connected(peersCount, {
61
+ libp2p: {
62
+ streamMuxers: [mplex()]
63
+ }
64
+ });
59
65
 
60
66
  const store = new TestStore({
61
67
  logs: new SharedLog<Document>({
@@ -64,9 +70,12 @@ const store = new TestStore({
64
70
  });
65
71
 
66
72
  const client: ProgramClient = session.peers[0];
67
- await client.open<TestStore, Args<Document>>(store, {
73
+ await client.open<TestStore>(store, {
68
74
  args: {
69
- role: new Replicator(),
75
+ role: {
76
+ type: "replicator",
77
+ factor: 1
78
+ },
70
79
  trim: { type: "length" as const, to: 100 },
71
80
  onChange: (change) => {
72
81
  change.added.forEach(async (entry) => {
package/src/blocks.ts ADDED
@@ -0,0 +1,19 @@
1
+ import { field, variant } from "@dao-xyz/borsh";
2
+ import {
3
+ BlockRequest,
4
+ BlockResponse,
5
+ BlockMessage as IBlockMessage
6
+ } from "@peerbit/blocks";
7
+ import { TransportMessage } from "./message.js";
8
+
9
+ @variant([2, 0])
10
+ export class BlocksMessage extends TransportMessage {
11
+ @field({ type: IBlockMessage })
12
+ message: BlockRequest | BlockResponse;
13
+
14
+ constructor(message: BlockRequest | BlockResponse) {
15
+ super();
16
+
17
+ this.message = message;
18
+ }
19
+ }
@@ -34,7 +34,7 @@ export class ExchangeHeadsMessage<T> extends TransportMessage {
34
34
  @field({ type: fixedArray("u8", 4) })
35
35
  reserved: Uint8Array = new Uint8Array(4);
36
36
 
37
- constructor(props: { logId: Uint8Array; heads: EntryWithRefs<T>[] }) {
37
+ constructor(props: { heads: EntryWithRefs<T>[] }) {
38
38
  super();
39
39
  this.heads = props.heads;
40
40
  }
@@ -92,7 +92,6 @@ export const createExchangeHeadsMessage = async (
92
92
  );
93
93
  logger.debug(`Send latest heads of '${log.id}'`);
94
94
  return new ExchangeHeadsMessage({
95
- logId: log.id!,
96
95
  heads: headsWithRefs
97
96
  });
98
97
  };