@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.
Files changed (63) hide show
  1. package/es/protocol/adopt.d.ts +23 -0
  2. package/es/protocol/adopt.d.ts.map +1 -0
  3. package/es/protocol/adopt.js +154 -0
  4. package/es/protocol/adopt.js.map +1 -0
  5. package/es/protocol/attest.d.ts +16 -0
  6. package/es/protocol/attest.d.ts.map +1 -0
  7. package/es/protocol/attest.js +58 -0
  8. package/es/protocol/attest.js.map +1 -0
  9. package/es/protocol/index.d.ts +4 -0
  10. package/es/protocol/index.d.ts.map +1 -1
  11. package/es/protocol/index.js +3 -0
  12. package/es/protocol/index.js.map +1 -1
  13. package/es/protocol/interfaces/process.interface.d.ts +29 -0
  14. package/es/protocol/interfaces/process.interface.d.ts.map +1 -1
  15. package/es/protocol/interfaces/vm.interface.d.ts +17 -2
  16. package/es/protocol/interfaces/vm.interface.d.ts.map +1 -1
  17. package/es/protocol/process.d.ts +8 -1
  18. package/es/protocol/process.d.ts.map +1 -1
  19. package/es/protocol/process.js +142 -11
  20. package/es/protocol/process.js.map +1 -1
  21. package/es/protocol/sandbox.d.ts +10 -0
  22. package/es/protocol/sandbox.d.ts.map +1 -0
  23. package/es/protocol/sandbox.js +52 -0
  24. package/es/protocol/sandbox.js.map +1 -0
  25. package/es/protocol/streamUpdater.d.ts.map +1 -1
  26. package/es/protocol/streamUpdater.js +21 -0
  27. package/es/protocol/streamUpdater.js.map +1 -1
  28. package/es/protocol/vm.d.ts +11 -2
  29. package/es/protocol/vm.d.ts.map +1 -1
  30. package/es/protocol/vm.js +105 -20
  31. package/es/protocol/vm.js.map +1 -1
  32. package/lib/protocol/adopt.d.ts +23 -0
  33. package/lib/protocol/adopt.d.ts.map +1 -0
  34. package/lib/protocol/adopt.js +160 -0
  35. package/lib/protocol/adopt.js.map +1 -0
  36. package/lib/protocol/attest.d.ts +16 -0
  37. package/lib/protocol/attest.d.ts.map +1 -0
  38. package/lib/protocol/attest.js +62 -0
  39. package/lib/protocol/attest.js.map +1 -0
  40. package/lib/protocol/index.d.ts +4 -0
  41. package/lib/protocol/index.d.ts.map +1 -1
  42. package/lib/protocol/index.js +5 -0
  43. package/lib/protocol/index.js.map +1 -1
  44. package/lib/protocol/interfaces/process.interface.d.ts +29 -0
  45. package/lib/protocol/interfaces/process.interface.d.ts.map +1 -1
  46. package/lib/protocol/interfaces/vm.interface.d.ts +17 -2
  47. package/lib/protocol/interfaces/vm.interface.d.ts.map +1 -1
  48. package/lib/protocol/process.d.ts +8 -1
  49. package/lib/protocol/process.d.ts.map +1 -1
  50. package/lib/protocol/process.js +142 -11
  51. package/lib/protocol/process.js.map +1 -1
  52. package/lib/protocol/sandbox.d.ts +10 -0
  53. package/lib/protocol/sandbox.d.ts.map +1 -0
  54. package/lib/protocol/sandbox.js +59 -0
  55. package/lib/protocol/sandbox.js.map +1 -0
  56. package/lib/protocol/streamUpdater.d.ts.map +1 -1
  57. package/lib/protocol/streamUpdater.js +21 -0
  58. package/lib/protocol/streamUpdater.js.map +1 -1
  59. package/lib/protocol/vm.d.ts +11 -2
  60. package/lib/protocol/vm.d.ts.map +1 -1
  61. package/lib/protocol/vm.js +105 -20
  62. package/lib/protocol/vm.js.map +1 -1
  63. package/package.json +8 -8
@@ -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
- constructor(entry, selfHost, reference, right, db, dbe, dbev, secured) {
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.entry.$broadcast) {
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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"streamUpdater.d.ts","sourceRoot":"","sources":["../../src/protocol/streamUpdater.ts"],"names":[],"mappings":"AAuBA,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;YAiDhB,cAAc;IAkE5B,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,wBAAwB;IAiBhC,OAAO,CAAC,qBAAqB;IA6H7B,OAAc,oBAAoB,WAAoB;IAOtD,OAAc,cAAc,SAAM;YAmBpB,QAAQ;YA6BR,MAAM;YAgFN,gBAAgB;CAsD/B"}
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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"}