@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.
- package/dist/benchmark/get-samples.d.ts +2 -0
- package/dist/benchmark/get-samples.d.ts.map +1 -0
- package/dist/benchmark/get-samples.js +69 -0
- package/dist/benchmark/get-samples.js.map +1 -0
- package/dist/benchmark/index.d.ts +2 -0
- package/dist/benchmark/index.d.ts.map +1 -0
- package/{lib/esm/__benchmark__ → dist/benchmark}/index.js +16 -16
- package/dist/benchmark/index.js.map +1 -0
- package/dist/benchmark/replication-prune.d.ts +2 -0
- package/dist/benchmark/replication-prune.d.ts.map +1 -0
- package/dist/benchmark/replication-prune.js +103 -0
- package/dist/benchmark/replication-prune.js.map +1 -0
- package/dist/benchmark/replication.d.ts +2 -0
- package/dist/benchmark/replication.d.ts.map +1 -0
- package/dist/benchmark/replication.js +91 -0
- package/dist/benchmark/replication.js.map +1 -0
- package/{lib/esm → dist/src}/blocks.d.ts +1 -0
- package/dist/src/blocks.d.ts.map +1 -0
- package/{lib/esm → dist/src}/blocks.js +1 -1
- package/dist/src/blocks.js.map +1 -0
- package/{lib/esm → dist/src}/cpu.d.ts +2 -1
- package/dist/src/cpu.d.ts.map +1 -0
- package/{lib/esm → dist/src}/cpu.js +2 -2
- package/dist/src/cpu.js.map +1 -0
- package/{lib/esm → dist/src}/exchange-heads.d.ts +2 -1
- package/dist/src/exchange-heads.d.ts.map +1 -0
- package/{lib/esm → dist/src}/exchange-heads.js +9 -7
- package/dist/src/exchange-heads.js.map +1 -0
- package/{lib/esm → dist/src}/index.d.ts +64 -54
- package/dist/src/index.d.ts.map +1 -0
- package/{lib/esm → dist/src}/index.js +569 -399
- package/dist/src/index.js.map +1 -0
- package/{lib/esm → dist/src}/message.d.ts +1 -0
- package/dist/src/message.d.ts.map +1 -0
- package/{lib/esm → dist/src}/pid.d.ts +1 -0
- package/dist/src/pid.d.ts.map +1 -0
- package/{lib/esm → dist/src}/pid.js +20 -20
- package/dist/src/pid.js.map +1 -0
- package/dist/src/ranges.d.ts +10 -0
- package/dist/src/ranges.d.ts.map +1 -0
- package/dist/src/ranges.js +645 -0
- package/dist/src/ranges.js.map +1 -0
- package/dist/src/replication.d.ts +112 -0
- package/dist/src/replication.d.ts.map +1 -0
- package/dist/src/replication.js +348 -0
- package/dist/src/replication.js.map +1 -0
- package/dist/src/role.d.ts +2 -0
- package/dist/src/role.d.ts.map +1 -0
- package/dist/src/role.js +106 -0
- package/dist/src/role.js.map +1 -0
- package/package.json +70 -43
- package/src/blocks.ts +1 -1
- package/src/cpu.ts +7 -6
- package/src/exchange-heads.ts +19 -19
- package/src/index.ts +881 -609
- package/src/pid.ts +22 -21
- package/src/ranges.ts +692 -148
- package/src/replication.ts +271 -19
- package/src/role.ts +63 -83
- package/LICENSE +0 -202
- package/lib/esm/__benchmark__/index.d.ts +0 -1
- package/lib/esm/__benchmark__/index.js.map +0 -1
- package/lib/esm/blocks.js.map +0 -1
- package/lib/esm/cpu.js.map +0 -1
- package/lib/esm/exchange-heads.js.map +0 -1
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/pid.js.map +0 -1
- package/lib/esm/ranges.d.ts +0 -12
- package/lib/esm/ranges.js +0 -247
- package/lib/esm/ranges.js.map +0 -1
- package/lib/esm/replication.d.ts +0 -53
- package/lib/esm/replication.js +0 -105
- package/lib/esm/replication.js.map +0 -1
- package/lib/esm/role.d.ts +0 -38
- package/lib/esm/role.js +0 -130
- package/lib/esm/role.js.map +0 -1
- package/src/__benchmark__/index.ts +0 -115
- /package/{lib/esm → dist/src}/message.js +0 -0
- /package/{lib/esm → dist/src}/message.js.map +0 -0
package/lib/esm/ranges.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ranges.js","sourceRoot":"","sources":["../../src/ranges.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/replication.d.ts
DELETED
|
@@ -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 {};
|
package/lib/esm/replication.js
DELETED
|
@@ -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
|
package/lib/esm/role.js.map
DELETED
|
@@ -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
|