@activeledger/activeprotocol 5.0.1 → 5.1.0
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/es/protocol/adopt.d.ts +23 -0
- package/es/protocol/adopt.d.ts.map +1 -0
- package/es/protocol/adopt.js +154 -0
- package/es/protocol/adopt.js.map +1 -0
- package/es/protocol/attest.d.ts +16 -0
- package/es/protocol/attest.d.ts.map +1 -0
- package/es/protocol/attest.js +58 -0
- package/es/protocol/attest.js.map +1 -0
- package/es/protocol/index.d.ts +4 -0
- package/es/protocol/index.d.ts.map +1 -1
- package/es/protocol/index.js +3 -0
- package/es/protocol/index.js.map +1 -1
- package/es/protocol/interfaces/process.interface.d.ts +29 -0
- package/es/protocol/interfaces/process.interface.d.ts.map +1 -1
- package/es/protocol/interfaces/vm.interface.d.ts +17 -2
- package/es/protocol/interfaces/vm.interface.d.ts.map +1 -1
- package/es/protocol/process.d.ts +8 -1
- package/es/protocol/process.d.ts.map +1 -1
- package/es/protocol/process.js +142 -11
- package/es/protocol/process.js.map +1 -1
- package/es/protocol/sandbox.d.ts +10 -0
- package/es/protocol/sandbox.d.ts.map +1 -0
- package/es/protocol/sandbox.js +52 -0
- package/es/protocol/sandbox.js.map +1 -0
- package/es/protocol/streamUpdater.d.ts.map +1 -1
- package/es/protocol/streamUpdater.js +21 -0
- package/es/protocol/streamUpdater.js.map +1 -1
- package/es/protocol/vm.d.ts +11 -2
- package/es/protocol/vm.d.ts.map +1 -1
- package/es/protocol/vm.js +105 -20
- package/es/protocol/vm.js.map +1 -1
- package/lib/protocol/adopt.d.ts +23 -0
- package/lib/protocol/adopt.d.ts.map +1 -0
- package/lib/protocol/adopt.js +160 -0
- package/lib/protocol/adopt.js.map +1 -0
- package/lib/protocol/attest.d.ts +16 -0
- package/lib/protocol/attest.d.ts.map +1 -0
- package/lib/protocol/attest.js +62 -0
- package/lib/protocol/attest.js.map +1 -0
- package/lib/protocol/index.d.ts +4 -0
- package/lib/protocol/index.d.ts.map +1 -1
- package/lib/protocol/index.js +5 -0
- package/lib/protocol/index.js.map +1 -1
- package/lib/protocol/interfaces/process.interface.d.ts +29 -0
- package/lib/protocol/interfaces/process.interface.d.ts.map +1 -1
- package/lib/protocol/interfaces/vm.interface.d.ts +17 -2
- package/lib/protocol/interfaces/vm.interface.d.ts.map +1 -1
- package/lib/protocol/process.d.ts +8 -1
- package/lib/protocol/process.d.ts.map +1 -1
- package/lib/protocol/process.js +142 -11
- package/lib/protocol/process.js.map +1 -1
- package/lib/protocol/sandbox.d.ts +10 -0
- package/lib/protocol/sandbox.d.ts.map +1 -0
- package/lib/protocol/sandbox.js +59 -0
- package/lib/protocol/sandbox.js.map +1 -0
- package/lib/protocol/streamUpdater.d.ts.map +1 -1
- package/lib/protocol/streamUpdater.js +21 -0
- package/lib/protocol/streamUpdater.js.map +1 -1
- package/lib/protocol/vm.d.ts +11 -2
- package/lib/protocol/vm.d.ts.map +1 -1
- package/lib/protocol/vm.js +105 -20
- package/lib/protocol/vm.js.map +1 -1
- package/package.json +8 -8
package/es/protocol/process.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Attestation } from "./attest";
|
|
1
2
|
import { promises as fs } from "fs";
|
|
2
3
|
import { EventEmitter } from "events";
|
|
3
4
|
import { VirtualMachine } from "./vm";
|
|
@@ -41,7 +42,10 @@ export class Process extends EventEmitter {
|
|
|
41
42
|
permissionChecker;
|
|
42
43
|
willEmit;
|
|
43
44
|
willEmitData;
|
|
44
|
-
|
|
45
|
+
localOnly = false;
|
|
46
|
+
execution;
|
|
47
|
+
written;
|
|
48
|
+
constructor(entry, selfHost, reference, right, db, dbe, dbev, secured, options = {}) {
|
|
45
49
|
super();
|
|
46
50
|
this.entry = entry;
|
|
47
51
|
this.selfHost = selfHost;
|
|
@@ -51,6 +55,19 @@ export class Process extends EventEmitter {
|
|
|
51
55
|
this.dbe = dbe;
|
|
52
56
|
this.dbev = dbev;
|
|
53
57
|
this.secured = secured;
|
|
58
|
+
if (options.mode === "hybrid") {
|
|
59
|
+
this.localOnly = true;
|
|
60
|
+
this.written = { db: [], dbe: [], dbev: [] };
|
|
61
|
+
this.db = Process.captureWrites(this.db, this.written.db);
|
|
62
|
+
this.dbe = Process.captureWrites(this.dbe, this.written.dbe);
|
|
63
|
+
this.dbev = Process.captureWrites(this.dbev, this.written.dbev);
|
|
64
|
+
this.execution = {
|
|
65
|
+
supernode: false,
|
|
66
|
+
dryRun: true,
|
|
67
|
+
db: this.db,
|
|
68
|
+
volatileHeld: options.volatileHeld,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
54
71
|
this.shared = new Shared(this.storeSingleError, this.entry, this.dbe, this);
|
|
55
72
|
this.nodeResponse = entry.$nodes[reference];
|
|
56
73
|
Process.networkNodeLength = ActiveOptions.get("neighbourhood", []).length;
|
|
@@ -67,7 +84,10 @@ export class Process extends EventEmitter {
|
|
|
67
84
|
this.permissionChecker = new PermissionsChecker(this.entry, this.db, this.securityCache, this.shared);
|
|
68
85
|
}
|
|
69
86
|
destroy(umid) {
|
|
70
|
-
if (this.
|
|
87
|
+
if (this.localOnly) {
|
|
88
|
+
Process.generalContractVM.destroy(umid);
|
|
89
|
+
}
|
|
90
|
+
else if (this.entry.$broadcast) {
|
|
71
91
|
clearTimeout(this.broadcastTimeout);
|
|
72
92
|
Process.generalContractVM.destroy(umid);
|
|
73
93
|
delete this.entry;
|
|
@@ -79,6 +99,97 @@ export class Process extends EventEmitter {
|
|
|
79
99
|
}, 60000);
|
|
80
100
|
}
|
|
81
101
|
}
|
|
102
|
+
static captureWrites(db, written) {
|
|
103
|
+
const record = (...docs) => {
|
|
104
|
+
for (const doc of docs)
|
|
105
|
+
written.push(JSON.parse(JSON.stringify(doc)));
|
|
106
|
+
};
|
|
107
|
+
const writes = {
|
|
108
|
+
bulkDocs: (docs) => (record(...docs), Promise.resolve({ ok: true })),
|
|
109
|
+
post: (doc) => (record(doc), Promise.resolve({ ok: true })),
|
|
110
|
+
put: (doc) => (record(doc), Promise.resolve({ ok: true })),
|
|
111
|
+
purge: () => Promise.resolve({ ok: true }),
|
|
112
|
+
drop: () => Promise.resolve({ ok: true }),
|
|
113
|
+
createIndex: () => Promise.resolve({ ok: true }),
|
|
114
|
+
};
|
|
115
|
+
return new Proxy(db || {}, {
|
|
116
|
+
get(target, prop) {
|
|
117
|
+
if (typeof prop === "string" && writes[prop])
|
|
118
|
+
return writes[prop];
|
|
119
|
+
const value = target[prop];
|
|
120
|
+
return typeof value === "function" ? value.bind(target) : value;
|
|
121
|
+
},
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
dryRun(contractVersion, contractData) {
|
|
125
|
+
if (!this.localOnly) {
|
|
126
|
+
return Promise.reject(new Error("dryRun needs a Process in hybrid mode"));
|
|
127
|
+
}
|
|
128
|
+
const umid = this.entry.$umid;
|
|
129
|
+
return new Promise((resolve) => {
|
|
130
|
+
let done = false;
|
|
131
|
+
const finish = (error) => {
|
|
132
|
+
if (done)
|
|
133
|
+
return;
|
|
134
|
+
done = true;
|
|
135
|
+
this.removeListener("commited", onCommited);
|
|
136
|
+
this.removeListener("failed", onFailed);
|
|
137
|
+
const vm = Process.generalContractVM;
|
|
138
|
+
const report = vm.getExecutionReport(umid);
|
|
139
|
+
const node = this.nodeResponse || {};
|
|
140
|
+
const reason = error || node.error;
|
|
141
|
+
const documents = {};
|
|
142
|
+
const volatile = {};
|
|
143
|
+
let umidDoc;
|
|
144
|
+
for (const doc of this.written.db) {
|
|
145
|
+
const id = doc?._id || "";
|
|
146
|
+
if (id.endsWith(":umid"))
|
|
147
|
+
umidDoc = doc;
|
|
148
|
+
else if (id.endsWith(":volatile"))
|
|
149
|
+
volatile[id] = doc;
|
|
150
|
+
else if (id)
|
|
151
|
+
documents[id] = doc;
|
|
152
|
+
}
|
|
153
|
+
const result = {
|
|
154
|
+
umid,
|
|
155
|
+
vote: !!node.vote,
|
|
156
|
+
committed: !!node.commit && !reason,
|
|
157
|
+
documents,
|
|
158
|
+
volatile,
|
|
159
|
+
umidDoc,
|
|
160
|
+
return: node.return,
|
|
161
|
+
events: vm.getEvents(umid),
|
|
162
|
+
supernodeDependent: report.supernodeDependent,
|
|
163
|
+
dependence: report.dependence,
|
|
164
|
+
adopt: report.adopt,
|
|
165
|
+
};
|
|
166
|
+
if (reason) {
|
|
167
|
+
result.error =
|
|
168
|
+
reason.message || reason.reason || String(reason);
|
|
169
|
+
}
|
|
170
|
+
this.destroy(umid);
|
|
171
|
+
resolve(result);
|
|
172
|
+
};
|
|
173
|
+
const onCommited = () => finish();
|
|
174
|
+
const onFailed = (data) => finish(data?.error || "Failed");
|
|
175
|
+
this.on("commited", onCommited);
|
|
176
|
+
this.on("failed", onFailed);
|
|
177
|
+
this.start(contractVersion, contractData).catch(finish);
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
static dryRunHybrid(entry, db, options = {}) {
|
|
181
|
+
const reference = options.reference || "hybrid";
|
|
182
|
+
const local = {
|
|
183
|
+
...entry,
|
|
184
|
+
$revs: entry.$revs ? JSON.parse(JSON.stringify(entry.$revs)) : entry.$revs,
|
|
185
|
+
$nodes: { [reference]: {} },
|
|
186
|
+
$broadcast: false,
|
|
187
|
+
$instant: false,
|
|
188
|
+
};
|
|
189
|
+
delete local.$territoriality;
|
|
190
|
+
const process = new Process(local, options.selfHost || "hybrid", reference, { reference: "", knock: () => Promise.reject(new Error("hybrid")) }, db, {}, {}, undefined, { mode: "hybrid", volatileHeld: options.volatileHeld });
|
|
191
|
+
return process.dryRun(options.contractVersion);
|
|
192
|
+
}
|
|
82
193
|
sortVersions(a, b) {
|
|
83
194
|
const padSorting = (v) => {
|
|
84
195
|
return v
|
|
@@ -170,16 +281,21 @@ export class Process extends EventEmitter {
|
|
|
170
281
|
refresh: false,
|
|
171
282
|
});
|
|
172
283
|
}
|
|
173
|
-
if (await fs.stat(`${namespacePath}/_LOCK.${this.contractId}`).catch(() => false)) {
|
|
174
|
-
throw new Error("Contract Global Lock");
|
|
175
|
-
}
|
|
176
|
-
if (await fs.stat(`${namespacePath}/_LOCK.${contract}`).catch(() => false)) {
|
|
177
|
-
throw new Error(`Contract Version Lock ${contract.substring(contract.indexOf("@") + 1)}`);
|
|
178
|
-
}
|
|
179
284
|
Process.contractPathCache[this.entry.$tx.$contract] = await fs.realpath(`${namespacePath}/${contract}.js`);
|
|
180
285
|
}
|
|
181
286
|
this.contractLocation =
|
|
182
287
|
Process.contractPathCache[this.entry.$tx.$contract];
|
|
288
|
+
const dir = this.contractLocation.slice(0, this.contractLocation.lastIndexOf("/"));
|
|
289
|
+
const file = this.contractLocation.slice(this.contractLocation.lastIndexOf("/") + 1).replace(/\.js$/, "");
|
|
290
|
+
const ids = new Set([this.contractId, file.split("@")[0]]);
|
|
291
|
+
for (const id of ids) {
|
|
292
|
+
if (await fs.stat(`${dir}/_LOCK.${id}`).catch(() => false)) {
|
|
293
|
+
throw new Error("Contract Global Lock");
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
if (await fs.stat(`${dir}/_LOCK.${file}`).catch(() => false)) {
|
|
297
|
+
throw new Error(`Contract Version Lock ${file.substring(file.indexOf("@") + 1)}`);
|
|
298
|
+
}
|
|
183
299
|
}
|
|
184
300
|
catch (e) {
|
|
185
301
|
throw e;
|
|
@@ -393,7 +509,7 @@ export class Process extends EventEmitter {
|
|
|
393
509
|
};
|
|
394
510
|
let continueProcessing = true;
|
|
395
511
|
try {
|
|
396
|
-
await virtualMachine.initialise(payload, contractName);
|
|
512
|
+
await virtualMachine.initialise(payload, contractName, this.execution);
|
|
397
513
|
}
|
|
398
514
|
catch (error) {
|
|
399
515
|
ActiveLogger.debug(error, "VM initialisation failed");
|
|
@@ -417,6 +533,7 @@ export class Process extends EventEmitter {
|
|
|
417
533
|
const vote = await virtualMachine.vote(this.entry.$nodes, payload.umid);
|
|
418
534
|
if (typeof vote !== "boolean" && vote.leader) {
|
|
419
535
|
this.nodeResponse.vote = this.nodeResponse.leader = true;
|
|
536
|
+
Attestation.signVote(this.entry.$umid, this.entry.$revs, this.nodeResponse);
|
|
420
537
|
this.commit(virtualMachine);
|
|
421
538
|
return;
|
|
422
539
|
}
|
|
@@ -451,7 +568,7 @@ export class Process extends EventEmitter {
|
|
|
451
568
|
}
|
|
452
569
|
async process(inputs, outputs = [], contractData = undefined) {
|
|
453
570
|
try {
|
|
454
|
-
if (this.entry.$broadcast && !this.entry.$wait) {
|
|
571
|
+
if (!this.localOnly && this.entry.$broadcast && !this.entry.$wait) {
|
|
455
572
|
if (this.entry.$origin === this.reference) {
|
|
456
573
|
this.emit("broadcast", true);
|
|
457
574
|
}
|
|
@@ -498,6 +615,19 @@ export class Process extends EventEmitter {
|
|
|
498
615
|
ActiveLogger.debug(`postVote entry is missing?`);
|
|
499
616
|
return;
|
|
500
617
|
}
|
|
618
|
+
if (this.localOnly) {
|
|
619
|
+
if (error) {
|
|
620
|
+
this.entry.$nodes[this.reference].error = error.reason
|
|
621
|
+
? error.reason
|
|
622
|
+
: error;
|
|
623
|
+
this.shared.raiseLedgerError(error.code || 1000, error.reason || error);
|
|
624
|
+
}
|
|
625
|
+
else {
|
|
626
|
+
this.commit(virtualMachine);
|
|
627
|
+
}
|
|
628
|
+
return;
|
|
629
|
+
}
|
|
630
|
+
Attestation.signVote(this.entry.$umid, this.entry.$revs, this.nodeResponse);
|
|
501
631
|
if (!error && this.entry.$instant) {
|
|
502
632
|
this.emit("commited", { instant: true });
|
|
503
633
|
this.entry.$instant = false;
|
|
@@ -630,7 +760,7 @@ export class Process extends EventEmitter {
|
|
|
630
760
|
async commit(virtualMachine, earlyCommit) {
|
|
631
761
|
if (!this.nodeResponse.commit && !this.isCommiting()) {
|
|
632
762
|
if (this.nodeResponse.vote &&
|
|
633
|
-
(this.nodeResponse.leader || this.canCommit())) {
|
|
763
|
+
(this.nodeResponse.leader || this.localOnly || this.canCommit())) {
|
|
634
764
|
ActiveTiming.mark(this.entry.$umid, "proto.commitBegin");
|
|
635
765
|
this.commiting = true;
|
|
636
766
|
clearTimeout(this.broadcastTimeout);
|
|
@@ -650,6 +780,7 @@ export class Process extends EventEmitter {
|
|
|
650
780
|
if (earlyCommit)
|
|
651
781
|
earlyCommit();
|
|
652
782
|
ActiveLogger.debug(error, "VM Commit Failure");
|
|
783
|
+
ActiveLogger.error(`Commit failed for ${this.entry.$umid} (${this.contractId}) - ${error?.message || error}`);
|
|
653
784
|
ActiveOptions.get("debug", false)
|
|
654
785
|
? this.shared.raiseLedgerError(1302, new Error("Commit Failure - " + JSON.stringify(error.message || error)))
|
|
655
786
|
: this.shared.raiseLedgerError(1301, new Error("Failed Commit Transaction"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/protocol/process.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/protocol/process.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface ISandboxContext {
|
|
2
|
+
onBlocked(what: string): void;
|
|
3
|
+
}
|
|
4
|
+
export declare class SupernodeOnlyError extends Error {
|
|
5
|
+
constructor(what: string);
|
|
6
|
+
}
|
|
7
|
+
export declare const installSandbox: () => void;
|
|
8
|
+
export declare const runSandboxed: <T>(ctx: ISandboxContext, fn: () => T) => T;
|
|
9
|
+
export declare const runUnsandboxed: <T>(fn: () => T) => T;
|
|
10
|
+
//# sourceMappingURL=sandbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../src/protocol/sandbox.ts"],"names":[],"mappings":"AA2CA,MAAM,WAAW,eAAe;IAE9B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,IAAI,EAAE,MAAM,EAGvB;CACF;AAyBD,eAAO,MAAM,cAAc,QAAO,IA0BjC,CAAC;AAKF,eAAO,MAAM,YAAY,GAAI,CAAC,OAAO,eAAe,MAAM,MAAM,CAAC,KAAG,CAGnE,CAAC;AAMF,eAAO,MAAM,cAAc,GAAI,CAAC,MAAM,MAAM,CAAC,KAAG,CAAqB,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from "async_hooks";
|
|
2
|
+
export class SupernodeOnlyError extends Error {
|
|
3
|
+
constructor(what) {
|
|
4
|
+
super(`${what} is only available on a supernode`);
|
|
5
|
+
this.name = "SupernodeOnly";
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
const context = new AsyncLocalStorage();
|
|
9
|
+
let installed = false;
|
|
10
|
+
const guard = (target, method, what) => {
|
|
11
|
+
const original = target?.[method];
|
|
12
|
+
if (typeof original !== "function")
|
|
13
|
+
return;
|
|
14
|
+
const guarded = function (...args) {
|
|
15
|
+
const ctx = context.getStore();
|
|
16
|
+
if (ctx) {
|
|
17
|
+
ctx.onBlocked(what);
|
|
18
|
+
throw new SupernodeOnlyError(what);
|
|
19
|
+
}
|
|
20
|
+
return original.apply(this, args);
|
|
21
|
+
};
|
|
22
|
+
target[method] = guarded;
|
|
23
|
+
};
|
|
24
|
+
export const installSandbox = () => {
|
|
25
|
+
if (installed)
|
|
26
|
+
return;
|
|
27
|
+
installed = true;
|
|
28
|
+
const http = require("http");
|
|
29
|
+
const https = require("https");
|
|
30
|
+
const net = require("net");
|
|
31
|
+
const tls = require("tls");
|
|
32
|
+
const dgram = require("dgram");
|
|
33
|
+
guard(http, "request", "http");
|
|
34
|
+
guard(http, "get", "http");
|
|
35
|
+
guard(https, "request", "https");
|
|
36
|
+
guard(https, "get", "https");
|
|
37
|
+
guard(net, "connect", "net");
|
|
38
|
+
guard(net, "createConnection", "net");
|
|
39
|
+
guard(net.Socket.prototype, "connect", "net");
|
|
40
|
+
guard(tls, "connect", "tls");
|
|
41
|
+
guard(dgram, "createSocket", "dgram");
|
|
42
|
+
guard(dgram.Socket.prototype, "bind", "dgram");
|
|
43
|
+
guard(dgram.Socket.prototype, "send", "dgram");
|
|
44
|
+
guard(dgram.Socket.prototype, "connect", "dgram");
|
|
45
|
+
guard(globalThis, "fetch", "fetch");
|
|
46
|
+
};
|
|
47
|
+
export const runSandboxed = (ctx, fn) => {
|
|
48
|
+
installSandbox();
|
|
49
|
+
return context.run(ctx, fn);
|
|
50
|
+
};
|
|
51
|
+
export const runUnsandboxed = (fn) => context.exit(fn);
|
|
52
|
+
//# sourceMappingURL=sandbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/protocol/sandbox.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAyBhD,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,IAAY;QACtB,KAAK,CAAC,GAAG,IAAI,mCAAmC,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAmB,CAAC;AACzD,IAAI,SAAS,GAAG,KAAK,CAAC;AAKtB,MAAM,KAAK,GAAG,CAAC,MAAW,EAAE,MAAc,EAAE,IAAY,EAAQ,EAAE;IAChE,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,OAAO,QAAQ,KAAK,UAAU;QAAE,OAAO;IAC3C,MAAM,OAAO,GAAG,UAAyB,GAAG,IAAe;QACzD,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC/B,IAAI,GAAG,EAAE,CAAC;YACR,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACpB,MAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC;IACF,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;AAC3B,CAAC,CAAC;AAKF,MAAM,CAAC,MAAM,cAAc,GAAG,GAAS,EAAE;IACvC,IAAI,SAAS;QAAE,OAAO;IACtB,SAAS,GAAG,IAAI,CAAC;IAIjB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE/B,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC/B,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3B,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACjC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC7B,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAC7B,KAAK,CAAC,GAAG,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC;IAEtC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9C,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAC7B,KAAK,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;IACtC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAClD,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACtC,CAAC,CAAC;AAKF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAI,GAAoB,EAAE,EAAW,EAAK,EAAE;IACtE,cAAc,EAAE,CAAC;IACjB,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC9B,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAI,EAAW,EAAK,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamUpdater.d.ts","sourceRoot":"","sources":["../../src/protocol/streamUpdater.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"streamUpdater.d.ts","sourceRoot":"","sources":["../../src/protocol/streamUpdater.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAiB,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAStC,qBAAa,aAAa;IAkEtB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IAnEpB,OAAO,CAAC,IAAI,CAAM;IAQlB,OAAO,CAAC,OAAO,CAAmC;IAwBlD,OAAO,CAAC,UAAU,CAAW;IAgB7B,OAAO,CAAC,UAAU,CAAoB;IAQtC,OAAO,CAAC,WAAW,CAAW;IAE9B,YACU,KAAK,EAAE,iBAAiB,CAAC,WAAW,EACpC,cAAc,EAAE,eAAe,EAC/B,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,iBAAiB,CAAC,aAAa,EAC7C,EAAE,EAAE,eAAe,EACnB,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAiB3B;IAEY,aAAa,CAAC,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAMhE;YAEa,gBAAgB;YAoDhB,cAAc;IAsF5B,OAAO,CAAC,cAAc;IA0BtB,OAAO,CAAC,wBAAwB;IAiBhC,OAAO,CAAC,qBAAqB;IA6H7B,OAAc,oBAAoB,WAAoB;IAOtD,OAAc,cAAc,SAAM;YAmBpB,QAAQ;YA6BR,MAAM;YA4FN,gBAAgB;CAsD/B"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { Attestation } from "./attest";
|
|
1
2
|
import { ActiveDefinitions } from "@activeledger/activedefinitions";
|
|
3
|
+
import { ActiveOptions } from "@activeledger/activeoptions";
|
|
2
4
|
import { ActiveLogger, ActiveTiming } from "@activeledger/activelogger";
|
|
3
5
|
export class StreamUpdater {
|
|
4
6
|
entry;
|
|
@@ -47,6 +49,9 @@ export class StreamUpdater {
|
|
|
47
49
|
this.emitter.emit("commited");
|
|
48
50
|
try {
|
|
49
51
|
this.nodeResponse.post = await this.virtualMachine.postProcess(this.entry.$territoriality === this.reference, this.entry.$territoriality, this.entry.$umid);
|
|
52
|
+
if (this.virtualMachine.takeReloadRequest(this.entry.$umid)) {
|
|
53
|
+
this.emitter.emit("reload");
|
|
54
|
+
}
|
|
50
55
|
this.nodeResponse.incomms = this.virtualMachine.getInternodeCommsFromVM(this.entry.$umid);
|
|
51
56
|
this.entry = this.shared.clearAllComms(this.virtualMachine, this.nodeResponse.incomms);
|
|
52
57
|
this.earlyCommit?.();
|
|
@@ -66,6 +71,14 @@ export class StreamUpdater {
|
|
|
66
71
|
return this.shared.raiseLedgerError(1236, new Error(`Stream ${this.streams[i].state._id} would have no permanent authority`));
|
|
67
72
|
}
|
|
68
73
|
}
|
|
74
|
+
if (ActiveOptions.get("build", 0) >= Attestation.BUILD &&
|
|
75
|
+
this.entry.$tx?.$namespace !== "default") {
|
|
76
|
+
for (const stream of this.streams) {
|
|
77
|
+
if (stream.meta && !stream.meta._rev && typeof stream.meta.name === "string" && stream.meta.name.indexOf("activeledger.default.") !== -1) {
|
|
78
|
+
return this.shared.raiseLedgerError(1237, new Error(`Stream names under "activeledger.default." are reserved for the default namespace`));
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
69
82
|
this.buildReferenceStreams();
|
|
70
83
|
this.docs.push({
|
|
71
84
|
_id: this.entry.$umid + ":umid",
|
|
@@ -85,6 +98,10 @@ export class StreamUpdater {
|
|
|
85
98
|
$datetime: this.entry.$datetime,
|
|
86
99
|
$origin: this.entry.$origin,
|
|
87
100
|
$remoteAddr: this.entry.$remoteAddr,
|
|
101
|
+
...(this.entry.$relay &&
|
|
102
|
+
ActiveOptions.get("build", 0) >= Attestation.BUILD
|
|
103
|
+
? { $relay: this.entry.$relay }
|
|
104
|
+
: {}),
|
|
88
105
|
};
|
|
89
106
|
}
|
|
90
107
|
handleContractDataStream(contractData) {
|
|
@@ -168,6 +185,7 @@ export class StreamUpdater {
|
|
|
168
185
|
await this.dbev.post({
|
|
169
186
|
_id: `umid:${new Date(this.entry.$datetime).getTime()},${this.entry.$umid}`,
|
|
170
187
|
});
|
|
188
|
+
await Attestation.commit(this.db, this.dbev, this.reference, this.entry, this.docs);
|
|
171
189
|
}
|
|
172
190
|
catch (error) {
|
|
173
191
|
ActiveLogger.error(error, "Datastore Failure");
|
|
@@ -191,6 +209,9 @@ export class StreamUpdater {
|
|
|
191
209
|
}
|
|
192
210
|
try {
|
|
193
211
|
this.nodeResponse.post = await this.virtualMachine.postProcess(this.entry.$territoriality === this.reference, this.entry.$territoriality, this.entry.$umid);
|
|
212
|
+
if (this.virtualMachine.takeReloadRequest(this.entry.$umid)) {
|
|
213
|
+
this.emitter.emit("reload");
|
|
214
|
+
}
|
|
194
215
|
this.nodeResponse.incomms = this.virtualMachine.getInternodeCommsFromVM(this.entry.$umid);
|
|
195
216
|
this.entry = this.shared.clearAllComms(this.virtualMachine, this.nodeResponse.incomms);
|
|
196
217
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamUpdater.js","sourceRoot":"","sources":["../../src/protocol/streamUpdater.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"streamUpdater.js","sourceRoot":"","sources":["../../src/protocol/streamUpdater.ts"],"names":[],"mappings":"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"}
|