@peerbit/shared-log 8.0.7 → 9.0.0-55cebfe

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 (79) hide show
  1. package/dist/benchmark/get-samples.d.ts +2 -0
  2. package/dist/benchmark/get-samples.d.ts.map +1 -0
  3. package/dist/benchmark/get-samples.js +69 -0
  4. package/dist/benchmark/get-samples.js.map +1 -0
  5. package/dist/benchmark/index.d.ts +2 -0
  6. package/dist/benchmark/index.d.ts.map +1 -0
  7. package/{lib/esm/__benchmark__ → dist/benchmark}/index.js +16 -16
  8. package/dist/benchmark/index.js.map +1 -0
  9. package/dist/benchmark/replication-prune.d.ts +2 -0
  10. package/dist/benchmark/replication-prune.d.ts.map +1 -0
  11. package/dist/benchmark/replication-prune.js +103 -0
  12. package/dist/benchmark/replication-prune.js.map +1 -0
  13. package/dist/benchmark/replication.d.ts +2 -0
  14. package/dist/benchmark/replication.d.ts.map +1 -0
  15. package/dist/benchmark/replication.js +91 -0
  16. package/dist/benchmark/replication.js.map +1 -0
  17. package/{lib/esm → dist/src}/blocks.d.ts +1 -0
  18. package/dist/src/blocks.d.ts.map +1 -0
  19. package/{lib/esm → dist/src}/blocks.js +1 -1
  20. package/dist/src/blocks.js.map +1 -0
  21. package/{lib/esm → dist/src}/cpu.d.ts +2 -1
  22. package/dist/src/cpu.d.ts.map +1 -0
  23. package/{lib/esm → dist/src}/cpu.js +2 -2
  24. package/dist/src/cpu.js.map +1 -0
  25. package/{lib/esm → dist/src}/exchange-heads.d.ts +2 -1
  26. package/dist/src/exchange-heads.d.ts.map +1 -0
  27. package/{lib/esm → dist/src}/exchange-heads.js +9 -7
  28. package/dist/src/exchange-heads.js.map +1 -0
  29. package/{lib/esm → dist/src}/index.d.ts +64 -54
  30. package/dist/src/index.d.ts.map +1 -0
  31. package/{lib/esm → dist/src}/index.js +569 -399
  32. package/dist/src/index.js.map +1 -0
  33. package/{lib/esm → dist/src}/message.d.ts +1 -0
  34. package/dist/src/message.d.ts.map +1 -0
  35. package/{lib/esm → dist/src}/pid.d.ts +1 -0
  36. package/dist/src/pid.d.ts.map +1 -0
  37. package/{lib/esm → dist/src}/pid.js +20 -20
  38. package/dist/src/pid.js.map +1 -0
  39. package/dist/src/ranges.d.ts +10 -0
  40. package/dist/src/ranges.d.ts.map +1 -0
  41. package/dist/src/ranges.js +645 -0
  42. package/dist/src/ranges.js.map +1 -0
  43. package/dist/src/replication.d.ts +112 -0
  44. package/dist/src/replication.d.ts.map +1 -0
  45. package/dist/src/replication.js +348 -0
  46. package/dist/src/replication.js.map +1 -0
  47. package/dist/src/role.d.ts +2 -0
  48. package/dist/src/role.d.ts.map +1 -0
  49. package/dist/src/role.js +106 -0
  50. package/dist/src/role.js.map +1 -0
  51. package/package.json +70 -43
  52. package/src/blocks.ts +1 -1
  53. package/src/cpu.ts +7 -6
  54. package/src/exchange-heads.ts +19 -19
  55. package/src/index.ts +881 -609
  56. package/src/pid.ts +22 -21
  57. package/src/ranges.ts +692 -148
  58. package/src/replication.ts +271 -19
  59. package/src/role.ts +63 -83
  60. package/LICENSE +0 -202
  61. package/lib/esm/__benchmark__/index.d.ts +0 -1
  62. package/lib/esm/__benchmark__/index.js.map +0 -1
  63. package/lib/esm/blocks.js.map +0 -1
  64. package/lib/esm/cpu.js.map +0 -1
  65. package/lib/esm/exchange-heads.js.map +0 -1
  66. package/lib/esm/index.js.map +0 -1
  67. package/lib/esm/pid.js.map +0 -1
  68. package/lib/esm/ranges.d.ts +0 -12
  69. package/lib/esm/ranges.js +0 -247
  70. package/lib/esm/ranges.js.map +0 -1
  71. package/lib/esm/replication.d.ts +0 -53
  72. package/lib/esm/replication.js +0 -105
  73. package/lib/esm/replication.js.map +0 -1
  74. package/lib/esm/role.d.ts +0 -38
  75. package/lib/esm/role.js +0 -130
  76. package/lib/esm/role.js.map +0 -1
  77. package/src/__benchmark__/index.ts +0 -115
  78. /package/{lib/esm → dist/src}/message.js +0 -0
  79. /package/{lib/esm → dist/src}/message.js.map +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"ranges.js","sourceRoot":"","sources":["../../src/ranges.ts"],"names":[],"mappings":"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"}
@@ -1,53 +0,0 @@
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
- role: Replicator;
12
- };
13
- interface SharedLog {
14
- replicas: Partial<ReplicationLimits>;
15
- getReplicatorsSorted(): yallist<ReplicatorRect> | undefined;
16
- }
17
- export declare class MinReplicas {
18
- getValue(log: SharedLog): number;
19
- }
20
- export declare class AbsoluteReplicas extends MinReplicas {
21
- _value: number;
22
- constructor(value: number);
23
- getValue(_log: SharedLog): number;
24
- }
25
- export declare class RequestRoleMessage extends TransportMessage {
26
- constructor();
27
- }
28
- export declare class ResponseRoleMessage extends TransportMessage {
29
- role: Observer | Replicator;
30
- constructor(properties: {
31
- role: Observer | Replicator;
32
- });
33
- }
34
- export declare const encodeReplicas: (minReplicas: MinReplicas) => Uint8Array;
35
- export declare class ReplicationError extends Error {
36
- constructor(message: string);
37
- }
38
- export declare const decodeReplicas: (entry: {
39
- meta: {
40
- data?: Uint8Array;
41
- };
42
- }) => MinReplicas;
43
- export declare const maxReplicas: (log: SharedLog, entries: {
44
- meta: {
45
- data?: Uint8Array;
46
- };
47
- }[] | IterableIterator<{
48
- meta: {
49
- data?: Uint8Array;
50
- };
51
- }>) => number;
52
- export declare const hashToUniformNumber: (hash: Uint8Array) => number;
53
- export {};
@@ -1,105 +0,0 @@
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
- import { variant, deserialize, serialize, field, option, BinaryReader } from "@dao-xyz/borsh";
11
- import { TransportMessage } from "./message.js";
12
- import { Role } from "./role.js";
13
- export class MinReplicas {
14
- getValue(log) {
15
- throw new Error("Not implemented");
16
- }
17
- }
18
- let AbsoluteReplicas = class AbsoluteReplicas extends MinReplicas {
19
- _value;
20
- constructor(value) {
21
- super();
22
- this._value = value;
23
- }
24
- getValue(_log) {
25
- return this._value;
26
- }
27
- };
28
- __decorate([
29
- field({ type: "u32" }),
30
- __metadata("design:type", Number)
31
- ], AbsoluteReplicas.prototype, "_value", void 0);
32
- AbsoluteReplicas = __decorate([
33
- variant(0),
34
- __metadata("design:paramtypes", [Number])
35
- ], AbsoluteReplicas);
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(properties) {
50
- super();
51
- this.role = properties.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 };
63
- /*
64
- @variant(1)
65
- export class RelativeMinReplicas extends MinReplicas {
66
- _value: number; // (0, 1]
67
-
68
- constructor(value: number) {
69
- super();
70
- this._value = value;
71
- }
72
- getValue(log: SharedLog): number {
73
- return Math.ceil(this._value * log.getReplicatorsSorted()!.length); // TODO TYPES
74
- }
75
- }
76
- */
77
- export const encodeReplicas = (minReplicas) => {
78
- return serialize(minReplicas);
79
- };
80
- export class ReplicationError extends Error {
81
- constructor(message) {
82
- super(message);
83
- }
84
- }
85
- export const decodeReplicas = (entry) => {
86
- if (!entry.meta.data) {
87
- throw new ReplicationError("Missing meta data from error");
88
- }
89
- return deserialize(entry.meta.data, MinReplicas);
90
- };
91
- export const maxReplicas = (log, entries) => {
92
- let max = 0;
93
- for (const entry of entries) {
94
- max = Math.max(decodeReplicas(entry).getValue(log), max);
95
- }
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
104
- };
105
- //# sourceMappingURL=replication.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"replication.js","sourceRoot":"","sources":["../../src/replication.ts"],"names":[],"mappings":"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"}
package/lib/esm/role.d.ts DELETED
@@ -1,38 +0,0 @@
1
- export declare const overlaps: (x1: number, x2: number, y1: number, y2: number) => boolean;
2
- export declare abstract class Role {
3
- abstract equals(other: Role): any;
4
- }
5
- export declare const NO_TYPE_VARIANT: Uint8Array;
6
- export declare class NoType extends Role {
7
- equals(other: Role): boolean;
8
- }
9
- export declare const OBSERVER_TYPE_VARIANT: Uint8Array;
10
- export declare class Observer extends Role {
11
- equals(other: Role): boolean;
12
- }
13
- export declare const REPLICATOR_TYPE_VARIANT: Uint8Array;
14
- export declare class ReplicationSegment {
15
- timestamp: bigint;
16
- private factorNominator;
17
- private offsetNominator;
18
- constructor(properties: {
19
- factor: number;
20
- offset: number;
21
- timestamp?: bigint;
22
- });
23
- get factor(): number;
24
- get offset(): number;
25
- overlaps(other: ReplicationSegment): boolean;
26
- }
27
- export declare class Replicator extends Role {
28
- segments: ReplicationSegment[];
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
- }
package/lib/esm/role.js DELETED
@@ -1,130 +0,0 @@
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
- import { field, variant, vec } from "@dao-xyz/borsh";
12
- export const overlaps = (x1, x2, y1, y2) => {
13
- if (x1 <= y2 && y1 <= x2) {
14
- return true;
15
- }
16
- return false;
17
- };
18
- export class Role {
19
- }
20
- export const NO_TYPE_VARIANT = new Uint8Array([0]);
21
- let NoType = NoType_1 = class NoType extends Role {
22
- equals(other) {
23
- return other instanceof NoType_1;
24
- }
25
- };
26
- NoType = NoType_1 = __decorate([
27
- variant(0)
28
- ], NoType);
29
- export { NoType };
30
- export const OBSERVER_TYPE_VARIANT = new Uint8Array([1]);
31
- let Observer = Observer_1 = class Observer extends Role {
32
- equals(other) {
33
- return other instanceof Observer_1;
34
- }
35
- };
36
- Observer = Observer_1 = __decorate([
37
- variant(1)
38
- ], Observer);
39
- export { Observer };
40
- export const REPLICATOR_TYPE_VARIANT = new Uint8Array([2]);
41
- export class ReplicationSegment {
42
- timestamp;
43
- factorNominator;
44
- offsetNominator;
45
- constructor(properties) {
46
- const { factor, timestamp, offset } = properties;
47
- if (factor > 1 || factor < 0) {
48
- throw new Error("Expecting factor to be between 0 and 1, got: " + factor);
49
- }
50
- this.timestamp = timestamp ?? BigInt(+new Date());
51
- this.factorNominator = Math.round(4294967295 * factor);
52
- if (offset > 1 || offset < 0) {
53
- throw new Error("Expecting offset to be between 0 and 1, got: " + offset);
54
- }
55
- this.offsetNominator = Math.round(4294967295 * offset);
56
- }
57
- get factor() {
58
- return this.factorNominator / 4294967295;
59
- }
60
- get offset() {
61
- return this.offsetNominator / 4294967295;
62
- }
63
- overlaps(other) {
64
- let x1 = this.offset;
65
- let x2 = this.offset + this.factor;
66
- let y1 = other.offset;
67
- let y2 = other.offset + other.factor;
68
- if (overlaps(x1, x2, y1, y2)) {
69
- return true;
70
- }
71
- if (x2 > 1 || y2 > 1) {
72
- if (x2 > 1) {
73
- x1 = 0;
74
- x2 = x2 % 1;
75
- }
76
- if (y2 > 1) {
77
- y1 = 0;
78
- y2 = y2 % 1;
79
- }
80
- if (overlaps(x1, x2, y1, y2)) {
81
- return true;
82
- }
83
- }
84
- return false;
85
- }
86
- }
87
- __decorate([
88
- field({ type: "u64" }),
89
- __metadata("design:type", BigInt)
90
- ], ReplicationSegment.prototype, "timestamp", void 0);
91
- __decorate([
92
- field({ type: "u32" }),
93
- __metadata("design:type", Number)
94
- ], ReplicationSegment.prototype, "factorNominator", void 0);
95
- __decorate([
96
- field({ type: "u32" }),
97
- __metadata("design:type", Number)
98
- ], ReplicationSegment.prototype, "offsetNominator", void 0);
99
- let Replicator = Replicator_1 = class Replicator extends Role {
100
- segments;
101
- constructor(properties) {
102
- super();
103
- const segment = new ReplicationSegment(properties);
104
- this.segments = [segment];
105
- }
106
- get factor() {
107
- return this.segments[0].factor;
108
- }
109
- get offset() {
110
- return this.segments[0].offset;
111
- }
112
- get timestamp() {
113
- return this.segments[0].timestamp;
114
- }
115
- equals(other) {
116
- return (other instanceof Replicator_1 &&
117
- other.factor === this.factor &&
118
- other.offset === this.offset);
119
- }
120
- };
121
- __decorate([
122
- field({ type: vec(ReplicationSegment) }),
123
- __metadata("design:type", Array)
124
- ], Replicator.prototype, "segments", void 0);
125
- Replicator = Replicator_1 = __decorate([
126
- variant(2),
127
- __metadata("design:paramtypes", [Object])
128
- ], Replicator);
129
- export { Replicator };
130
- //# sourceMappingURL=role.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"role.js","sourceRoot":"","sources":["../../src/role.ts"],"names":[],"mappings":"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"}
@@ -1,115 +0,0 @@
1
- import B from "benchmark";
2
- import { deserialize, field, option, serialize, variant } from "@dao-xyz/borsh";
3
- import { TestSession } from "@peerbit/test-utils";
4
- import { ProgramClient } from "@peerbit/program";
5
- import { v4 as uuid } from "uuid";
6
- import crypto from "crypto";
7
- import { Program } from "@peerbit/program";
8
- import { SharedLog, Args } from "../index.js";
9
-
10
- // Run with "node --loader ts-node/esm ./src/__benchmark__/index.ts"
11
- // put x 5,843 ops/sec ±4.50% (367 runs sampled)
12
-
13
- @variant("document")
14
- class Document {
15
- @field({ type: "string" })
16
- id: string;
17
-
18
- @field({ type: option("string") })
19
- name?: string;
20
-
21
- @field({ type: option("u64") })
22
- number?: bigint;
23
-
24
- @field({ type: Uint8Array })
25
- bytes: Uint8Array;
26
-
27
- constructor(opts: Document) {
28
- if (opts) {
29
- this.id = opts.id;
30
- this.name = opts.name;
31
- this.number = opts.number;
32
- this.bytes = opts.bytes;
33
- }
34
- }
35
- }
36
-
37
- @variant("test_shared_log")
38
- class TestStore extends Program<Args<Document>> {
39
- @field({ type: SharedLog })
40
- logs: SharedLog<Document>;
41
-
42
- constructor(properties?: { logs: SharedLog<Document> }) {
43
- super();
44
- this.logs = properties?.logs || new SharedLog();
45
- }
46
-
47
- async open(options?: Args<Document>): Promise<void> {
48
- await this.logs.open({
49
- ...options,
50
- encoding: {
51
- decoder: (bytes) => deserialize(bytes, Document),
52
- encoder: (data) => serialize(data)
53
- }
54
- });
55
- }
56
- }
57
-
58
- const peersCount = 1;
59
- const session = await TestSession.connected(peersCount);
60
-
61
- const store = new TestStore({
62
- logs: new SharedLog<Document>({
63
- id: new Uint8Array(32)
64
- })
65
- });
66
-
67
- const client: ProgramClient = session.peers[0];
68
- await client.open<TestStore>(store, {
69
- args: {
70
- role: {
71
- type: "replicator",
72
- factor: 1
73
- },
74
- trim: { type: "length" as const, to: 100 },
75
- onChange: (change) => {
76
- change.added.forEach(async (entry) => {
77
- const doc = await entry.getPayloadValue();
78
- resolver.get(doc.id)!();
79
- resolver.delete(doc.id);
80
- });
81
- }
82
- }
83
- });
84
-
85
- const resolver: Map<string, () => void> = new Map();
86
- const suite = new B.Suite();
87
- suite
88
- .add("put", {
89
- fn: async (deferred) => {
90
- const doc = new Document({
91
- id: uuid(),
92
- name: "hello",
93
- number: 1n,
94
- bytes: crypto.randomBytes(1200)
95
- });
96
- resolver.set(doc.id, () => {
97
- deferred.resolve();
98
- });
99
- await store.logs.append(doc, { meta: { next: [] } });
100
- },
101
-
102
- minSamples: 300,
103
- defer: true
104
- })
105
- .on("cycle", (event: any) => {
106
- console.log(String(event.target));
107
- })
108
- .on("error", (err) => {
109
- throw err;
110
- })
111
- .on("complete", async function (this: any, ...args: any[]) {
112
- await store.drop();
113
- await session.stop();
114
- })
115
- .run();
File without changes
File without changes