@activeledger/activenetwork 4.5.14 → 4.5.16

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/README.md CHANGED
@@ -1,4 +1,4 @@
1
- <img src="https://www.activeledger.io/wp-content/uploads/2018/09/Asset-23.png" alt="Activeledger" width="300"/>
1
+ <img src="https://raw.githubusercontent.com/activeledger/activeledger/master/docs/assets/Asset-23.png" alt="Activeledger" width="300"/>
2
2
 
3
3
  # Activenetwork
4
4
 
@@ -29,6 +29,22 @@ export declare class Endpoints {
29
29
  static status(host: Host, requester: string): Promise<any>;
30
30
  static streams(db: ActiveDSConnect, body: any, host?: Host): Promise<any>;
31
31
  static all(db: ActiveDSConnect, start?: any): Promise<any>;
32
+ static backfillUmid(host: Host, umid: string): Promise<boolean>;
33
+ private static replaySpiEvents;
34
+ private static readonly UMID_WALK_LIMIT;
35
+ static UMID_WALK_HOP_DELAY_MS: number;
36
+ static walkUmidHistory(host: Host, streamId: string, fromUmid: string): Promise<{
37
+ recovered: string[];
38
+ stoppedAt: string;
39
+ }>;
40
+ private static historyRepairInFlight;
41
+ private static historyRepairLastRun;
42
+ private static readonly HISTORY_REPAIR_COOLDOWN_MS;
43
+ static repairHistoryAfterCommit(host: Host, umid: string): Promise<void>;
44
+ private static pruneHistoryRepairMemory;
45
+ private static repairHistoryInBackground;
46
+ private static currentUmidFor;
47
+ private static previousUmidFor;
32
48
  static umid(db: ActiveDSConnect, umid: string): Promise<any>;
33
49
  private static allMap;
34
50
  private static allFilter;
@@ -1 +1 @@
1
- {"version":3,"file":"endpoints.d.ts","sourceRoot":"","sources":["../../src/network/endpoints.ts"],"names":[],"mappings":"AAuBA,OAAO,EAEL,eAAe,EAGhB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAe9B,qBAAa,SAAS;IAOpB,OAAc,cAAc,EAAE,MAAM,CAAK;WAY3B,iBAAiB,CAC7B,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,GAAG,EACT,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,eAAe,GAClB,OAAO,CAAC,GAAG,CAAC;WAkoBD,YAAY,CACxB,cAAc,EAAE,GAAG,EAAE,EACrB,gBAAgB,EAAE,MAAM,GACvB;QACD,OAAO,EAAE;YAAE,CAAC,EAAE,EAAE,MAAM,GAAG;gBAAE,GAAG,EAAE,MAAM,CAAC;gBAAC,KAAK,EAAE,MAAM,CAAC;gBAAC,GAAG,EAAE,GAAG,CAAA;aAAE,CAAA;SAAE,CAAC;QACpE,SAAS,EAAE;YAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;KACrC;WAkIa,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;WAkBhC,mBAAmB,CAC/B,EAAE,EAAE,iBAAiB,CAAC,WAAW,EACjC,OAAO,EAAE,iBAAiB,CAAC,QAAQ,EACnC,SAAS,EAAE,OAAO,EAAE,GACnB,iBAAiB,CAAC,cAAc;WAkBrB,wBAAwB,CACpC,KAAK,EAAE,GAAG,EACV,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,OAAO,EACjB,WAAW,EAAE,OAAO,GACnB,OAAO;WAiCI,eAAe,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO;WAYvC,sBAAsB,CAClC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAC5B,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO;WAeI,UAAU,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,EAAE;WAgB/B,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;WAoBtC,eAAe,CAC3B,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,GAAG,EACT,SAAS,EAAE,OAAO,EAClB,EAAE,EAAE,eAAe,GAClB,OAAO,CAAC,GAAG,CAAC;WA6CD,iBAAiB,CAC7B,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,GAAG,EACT,UAAU,EAAE,MAAM,EAClB,OAAO,UAAQ,EACf,KAAK,UAAQ,GACZ,OAAO,CAAC,GAAG,CAAC;IAyVf,OAAO,CAAC,MAAM,CAAC,uBAAuB;WAyExB,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;WAyEnD,OAAO,CACnB,EAAE,EAAE,eAAe,EACnB,IAAI,EAAE,GAAG,EACT,IAAI,CAAC,EAAE,IAAI,GACV,OAAO,CAAC,GAAG,CAAC;WAgLD,GAAG,CAAC,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;WAiCnD,IAAI,CAAC,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAyBnE,OAAO,CAAC,MAAM,CAAC,MAAM;IAWrB,OAAO,CAAC,MAAM,CAAC,SAAS;WAaV,aAAa,CACzB,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,aAAa,EAAE,OAAO,GACrB,OAAO,CAAC,GAAG,CAAC;mBAyFM,iBAAiB;IA+BtC,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAmBjC"}
1
+ {"version":3,"file":"endpoints.d.ts","sourceRoot":"","sources":["../../src/network/endpoints.ts"],"names":[],"mappings":"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"}
@@ -102,6 +102,7 @@ export class Endpoints {
102
102
  ActiveLogger.warn(`SPI Checked - Origin Node, Wrong. Starting lookup umid: ${tx.$umid}`);
103
103
  setTimeout(async () => {
104
104
  let rewroteSomething = false;
105
+ const repairedStreams = new Set();
105
106
  const streams = [
106
107
  ...new Set([
107
108
  ...this.labelOrKey(tx.$tx.$i),
@@ -153,9 +154,13 @@ export class Endpoints {
153
154
  }
154
155
  else {
155
156
  rewroteSomething = true;
157
+ repairedStreams.add(winningDoc._id.replace(":stream", ""));
156
158
  }
157
159
  }
158
160
  }
161
+ for (const streamId of Array.from(repairedStreams)) {
162
+ Endpoints.repairHistoryInBackground(host, streamId, "#1");
163
+ }
159
164
  if (rewroteSomething) {
160
165
  delete initTx.$nodes;
161
166
  delete initTx.$revs;
@@ -364,10 +369,7 @@ export class Endpoints {
364
369
  }
365
370
  for (let g = ids.length; g--;) {
366
371
  const id = ids[g];
367
- if (unreported[id]) {
368
- abstained[id] = `sample incomplete, ${unreported[id]} node(s) could not report`;
369
- continue;
370
- }
372
+ const silent = unreported[id] || 0;
371
373
  const revisions = tally[id] || {};
372
374
  let winner = "";
373
375
  let max = 0;
@@ -396,9 +398,15 @@ export class Endpoints {
396
398
  abstained[id] =
397
399
  "forked - two revisions at the same position, needs a human";
398
400
  }
401
+ else if (winner && max <= silent) {
402
+ abstained[id] = `inconclusive - ${max} agreed on ${winner} but ${silent} node(s) could not report`;
403
+ }
399
404
  else if (winner) {
400
405
  winners[id] = { rev: winner, votes: max, doc: revisions[winner].doc };
401
406
  }
407
+ else if (silent) {
408
+ abstained[id] = `no revision reached consensus, ${silent} node(s) could not report`;
409
+ }
402
410
  else {
403
411
  abstained[id] = "no revision reached consensus";
404
412
  }
@@ -567,6 +575,7 @@ export class Endpoints {
567
575
  ActiveLogger.warn(`SPI Skipped not enough returned for consensus yet (${networkStreams.length}/${consensusReached})`);
568
576
  return;
569
577
  }
578
+ const repairedStreamsNonOrigin = new Set();
570
579
  const agreed = Endpoints.spiConsensus(networkStreams, consensusReached);
571
580
  const undecided = Object.keys(agreed.abstained);
572
581
  for (let a = undecided.length; a--;) {
@@ -605,10 +614,15 @@ export class Endpoints {
605
614
  }
606
615
  else {
607
616
  canRetry = true;
617
+ repairedStreamsNonOrigin.add(winningDoc._id.replace(":stream", ""));
608
618
  }
609
619
  }
610
620
  }
611
621
  if (rewrote.has(tx.$umid)) {
622
+ await Endpoints.backfillUmid(host, tx.$umid);
623
+ for (const streamId of Array.from(repairedStreamsNonOrigin)) {
624
+ Endpoints.repairHistoryInBackground(host, streamId, "#2");
625
+ }
612
626
  ActiveLogger.warn(tx.$umid, `SPI Adding 950 Checker`);
613
627
  await host.dbErrorConnection.post({
614
628
  _id: `${tx.$umid}:${Date.now()}`,
@@ -809,17 +823,19 @@ export class Endpoints {
809
823
  });
810
824
  }
811
825
  const holdValue = body.$streams[i].replace(":stream", "");
812
- const heldByAsker = body.$umid && Locker.is(holdValue, body.$umid);
813
- if (Locker.has(holdValue) && !(heldByAsker && host?.willNotCommit(body.$umid))) {
826
+ const holder = Locker.holder(holdValue);
827
+ const holderWillNotCommit = !!holder && !!host?.willNotCommit(holder);
828
+ if (Locker.has(holdValue) && !holderWillNotCommit) {
814
829
  unavailable.push({ _id: body.$streams[i], locked: true });
815
830
  }
816
831
  else {
817
- fetchStream.push(db.get(body.$streams[i]));
832
+ fetchStream.push(body.$streams[i]);
818
833
  }
819
834
  }
820
835
  if (fetchStream.length) {
821
- Promise.all(fetchStream)
822
- .then((docs) => {
836
+ db.allDocs({ keys: fetchStream, include_docs: true })
837
+ .then((result) => {
838
+ const docs = (result?.rows || []).map((row) => row?.doc).filter(Boolean);
823
839
  const streams = [];
824
840
  for (let i = docs.length; i--;) {
825
841
  if (docs[i]._id) {
@@ -903,6 +919,258 @@ export class Endpoints {
903
919
  });
904
920
  });
905
921
  }
922
+ static async backfillUmid(host, umid) {
923
+ if (!umid) {
924
+ return false;
925
+ }
926
+ try {
927
+ const local = await host.dbConnection.get(`${umid}:umid`);
928
+ if (local && local._id) {
929
+ await Endpoints.replaySpiEvents(host, local);
930
+ return true;
931
+ }
932
+ }
933
+ catch {
934
+ }
935
+ let responses;
936
+ try {
937
+ responses = await host.neighbourhood.knockAll(`umid/${umid}`, null, true);
938
+ }
939
+ catch {
940
+ ActiveLogger.warn(`SPI UMID ${umid} - could not reach the network`);
941
+ return false;
942
+ }
943
+ const grouped = {};
944
+ for (let i = responses.length; i--;) {
945
+ const response = responses[i];
946
+ if (!response?.umid?.$umid) {
947
+ continue;
948
+ }
949
+ const hash = ActiveCrypto.Hash.getHash(JSON.stringify(response));
950
+ grouped[hash]
951
+ ? grouped[hash].count++
952
+ : (grouped[hash] = { count: 1, doc: response });
953
+ }
954
+ const hashes = Object.keys(grouped);
955
+ if (!hashes.length) {
956
+ ActiveLogger.warn(`SPI UMID ${umid} - no node could supply it`);
957
+ return false;
958
+ }
959
+ const winner = grouped[hashes.sort((a, b) => grouped[b].count - grouped[a].count)[0]].doc;
960
+ try {
961
+ const written = await host.dbConnection.bulkDocs([winner], {
962
+ new_edits: false,
963
+ });
964
+ if (Endpoints.bulkWriteFailed(written)) {
965
+ ActiveLogger.error(`SPI UMID ${umid} - write failed, left for restore`);
966
+ return false;
967
+ }
968
+ }
969
+ catch (error) {
970
+ ActiveLogger.error(error, `SPI UMID ${umid} - write threw, left for restore`);
971
+ return false;
972
+ }
973
+ ActiveLogger.warn(`SPI UMID ADDED ${umid}`);
974
+ await Endpoints.replaySpiEvents(host, winner);
975
+ return true;
976
+ }
977
+ static async replaySpiEvents(host, umidDoc) {
978
+ const events = umidDoc?.events;
979
+ if (!Array.isArray(events) || !events.length) {
980
+ return;
981
+ }
982
+ await Promise.all(events.map(async (event) => {
983
+ try {
984
+ await host.dbEventConnection.post(event);
985
+ }
986
+ catch (error) {
987
+ ActiveLogger.error(error, `SPI UMID ${umidDoc?.umid?.$umid} - failed to replay event ${event?._id}`);
988
+ }
989
+ }));
990
+ ActiveLogger.warn(`SPI UMID ${umidDoc?.umid?.$umid} - replayed ${events.length} event(s)`);
991
+ }
992
+ static UMID_WALK_LIMIT = 100;
993
+ static UMID_WALK_HOP_DELAY_MS = 50;
994
+ static async walkUmidHistory(host, streamId, fromUmid) {
995
+ const recovered = [];
996
+ const seen = new Set();
997
+ let cursor = fromUmid;
998
+ while (cursor) {
999
+ if (seen.has(cursor)) {
1000
+ return { recovered, stoppedAt: "loop detected" };
1001
+ }
1002
+ seen.add(cursor);
1003
+ if (recovered.length >= Endpoints.UMID_WALK_LIMIT) {
1004
+ ActiveLogger.warn(`SPI WALK ${streamId} - stopped at ${Endpoints.UMID_WALK_LIMIT}, a full restore is the right tool from here`);
1005
+ return { recovered, stoppedAt: "limit reached" };
1006
+ }
1007
+ let held = false;
1008
+ try {
1009
+ const local = await host.dbConnection.get(`${cursor}:umid`);
1010
+ held = !!(local && local._id);
1011
+ }
1012
+ catch {
1013
+ held = false;
1014
+ }
1015
+ const ok = await Endpoints.backfillUmid(host, cursor);
1016
+ if (!ok) {
1017
+ return { recovered, stoppedAt: `could not recover ${cursor}` };
1018
+ }
1019
+ if (held) {
1020
+ return { recovered, stoppedAt: "reached a umid already held" };
1021
+ }
1022
+ recovered.push(cursor);
1023
+ let doc;
1024
+ try {
1025
+ doc = await host.dbConnection.get(`${cursor}:umid`);
1026
+ }
1027
+ catch {
1028
+ return { recovered, stoppedAt: "adopted umid could not be read back" };
1029
+ }
1030
+ cursor = Endpoints.previousUmidFor(doc, streamId);
1031
+ if (cursor) {
1032
+ await new Promise((resolve) => setTimeout(resolve, Endpoints.UMID_WALK_HOP_DELAY_MS));
1033
+ }
1034
+ }
1035
+ return { recovered, stoppedAt: "start of stream" };
1036
+ }
1037
+ static historyRepairInFlight = new Set();
1038
+ static historyRepairLastRun = new Map();
1039
+ static HISTORY_REPAIR_COOLDOWN_MS = 30_000;
1040
+ static repairHistoryAfterCommit(host, umid) {
1041
+ if (!umid) {
1042
+ return Promise.resolve();
1043
+ }
1044
+ if (Endpoints.historyRepairInFlight.has(umid)) {
1045
+ return Promise.resolve();
1046
+ }
1047
+ const lastRun = Endpoints.historyRepairLastRun.get(umid) || 0;
1048
+ if (Date.now() - lastRun < Endpoints.HISTORY_REPAIR_COOLDOWN_MS) {
1049
+ return Promise.resolve();
1050
+ }
1051
+ Endpoints.historyRepairInFlight.add(umid);
1052
+ Endpoints.historyRepairLastRun.set(umid, Date.now());
1053
+ return (async () => {
1054
+ try {
1055
+ const responses = await host.neighbourhood.knockAll(`umid/${umid}`, null, true);
1056
+ const grouped = {};
1057
+ for (let i = responses.length; i--;) {
1058
+ const response = responses[i];
1059
+ if (!response?.streams)
1060
+ continue;
1061
+ const hash = ActiveCrypto.Hash.getHash(JSON.stringify(response));
1062
+ grouped[hash]
1063
+ ? grouped[hash].count++
1064
+ : (grouped[hash] = { count: 1, doc: response });
1065
+ }
1066
+ const hashes = Object.keys(grouped);
1067
+ if (!hashes.length) {
1068
+ return;
1069
+ }
1070
+ const doc = grouped[hashes.sort((a, b) => grouped[b].count - grouped[a].count)[0]]
1071
+ .doc;
1072
+ const updated = doc?.streams?.updated;
1073
+ if (!Array.isArray(updated) || !updated.length) {
1074
+ return;
1075
+ }
1076
+ for (const entry of updated) {
1077
+ const prev = entry?.prev;
1078
+ const streamId = entry?.id;
1079
+ if (!prev || !streamId) {
1080
+ continue;
1081
+ }
1082
+ try {
1083
+ const held = await host.dbConnection.get(`${prev}:umid`);
1084
+ if (held && held._id) {
1085
+ continue;
1086
+ }
1087
+ }
1088
+ catch {
1089
+ }
1090
+ const walk = await Endpoints.walkUmidHistory(host, streamId, prev);
1091
+ if (walk.recovered.length) {
1092
+ ActiveLogger.warn(`SPI WALK (post-commit) ${streamId} recovered ${walk.recovered.length} umid(s), stopped: ${walk.stoppedAt}`);
1093
+ }
1094
+ }
1095
+ }
1096
+ catch (error) {
1097
+ ActiveLogger.error(error, `SPI WALK (post-commit) failed for ${umid}`);
1098
+ }
1099
+ finally {
1100
+ Endpoints.historyRepairInFlight.delete(umid);
1101
+ Endpoints.pruneHistoryRepairMemory();
1102
+ }
1103
+ })();
1104
+ }
1105
+ static pruneHistoryRepairMemory() {
1106
+ if (Endpoints.historyRepairLastRun.size < 1000) {
1107
+ return;
1108
+ }
1109
+ const cutoff = Date.now() - Endpoints.HISTORY_REPAIR_COOLDOWN_MS;
1110
+ for (const [key, at] of Array.from(Endpoints.historyRepairLastRun.entries())) {
1111
+ if (at < cutoff) {
1112
+ Endpoints.historyRepairLastRun.delete(key);
1113
+ }
1114
+ }
1115
+ }
1116
+ static repairHistoryInBackground(host, streamId, label) {
1117
+ void (async () => {
1118
+ try {
1119
+ const adopted = await Endpoints.currentUmidFor(host, streamId);
1120
+ if (!adopted) {
1121
+ return;
1122
+ }
1123
+ const walk = await Endpoints.walkUmidHistory(host, streamId, adopted);
1124
+ if (walk.recovered.length) {
1125
+ ActiveLogger.warn(`SPI WALK ${label} ${streamId} recovered ${walk.recovered.length} umid(s), stopped: ${walk.stoppedAt}`);
1126
+ return;
1127
+ }
1128
+ if (walk.stoppedAt.indexOf("already held") !== -1) {
1129
+ return;
1130
+ }
1131
+ ActiveLogger.warn(adopted, `SPI Adding 950 Checker ${label}`);
1132
+ await host.dbErrorConnection.post({
1133
+ _id: `${adopted}:${Date.now()}`,
1134
+ code: 950,
1135
+ processed: false,
1136
+ umid: adopted,
1137
+ transaction: {
1138
+ $broadcast: true,
1139
+ $tx: {},
1140
+ $revs: {},
1141
+ },
1142
+ reason: `Vote Failure - "SPI${label} UMID not found`,
1143
+ });
1144
+ }
1145
+ catch (error) {
1146
+ ActiveLogger.error(error, `SPI WALK ${label} ${streamId} failed`);
1147
+ }
1148
+ })();
1149
+ }
1150
+ static async currentUmidFor(host, streamId) {
1151
+ try {
1152
+ const meta = await host.dbConnection.get(`${streamId}:stream`);
1153
+ return meta?.umid || undefined;
1154
+ }
1155
+ catch {
1156
+ return undefined;
1157
+ }
1158
+ }
1159
+ static previousUmidFor(umidDoc, streamId) {
1160
+ const updated = umidDoc?.streams?.updated;
1161
+ if (!Array.isArray(updated)) {
1162
+ return undefined;
1163
+ }
1164
+ for (const entry of updated) {
1165
+ if (!entry)
1166
+ continue;
1167
+ const id = entry.id || "";
1168
+ if (id === streamId || id.endsWith(streamId) || streamId.endsWith(id)) {
1169
+ return entry.prev || undefined;
1170
+ }
1171
+ }
1172
+ return undefined;
1173
+ }
906
1174
  static umid(db, umid) {
907
1175
  return new Promise((resolve, reject) => {
908
1176
  db.get(umid + ":umid")
@@ -1 +1 @@
1
- {"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../../src/network/endpoints.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../../src/network/endpoints.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ export declare class Host extends Home {
8
8
  readonly api: TemplatedApp;
9
9
  dbConnection: ActiveDSConnect;
10
10
  dbErrorConnection: ActiveDSConnect;
11
- private dbEventConnection;
11
+ dbEventConnection: ActiveDSConnect;
12
12
  static hasVotedAgainst(entry: ActiveDefinitions.LedgerEntry | undefined, reference: string): boolean;
13
13
  willNotCommit(umid: string): boolean;
14
14
  private processPending;
@@ -1 +1 @@
1
- {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/network/host.ts"],"names":[],"mappings":"AA4BA,OAAO,EACL,eAAe,EAKhB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAO9B,OAAO,EAGL,YAAY,EAGb,MAAM,gBAAgB,CAAC;AA8FxB,qBAAa,IAAK,SAAQ,IAAI;IAC5B,OAAO,CAAC,SAAS,CAAa;IAQ9B,OAAO,CAAC,YAAY,CAA0B;IAQ9C,SAAgB,GAAG,EAAE,YAAY,CAAC;IAQ3B,YAAY,EAAE,eAAe,CAAC;IAQ9B,iBAAiB,EAAE,eAAe,CAAC;IAQ1C,OAAO,CAAC,iBAAiB,CAAkB;WA6B7B,eAAe,CAC3B,KAAK,EAAE,iBAAiB,CAAC,WAAW,GAAG,SAAS,EAChD,SAAS,EAAE,MAAM,GAChB,OAAO;IAeH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAW3C,OAAO,CAAC,cAAc,CAEf;IAOP,OAAO,CAAC,QAAQ,CAAK;IAOrB,OAAO,CAAC,WAAW,CAAmC;IAStD,OAAO,CAAC,cAAc,CAGa;IAE5B,QAAQ,IAAI,IAAI;IAqBhB,OAAO,CACZ,KAAK,EAAE,iBAAiB,CAAC,WAAW,EACpC,UAAU,EAAE,MAAM,EAClB,QAAQ,UAAQ,EAChB,YAAY,UAAQ,EACpB,KAAK,UAAQ,GACZ,OAAO,CAAC,GAAG,CAAC;;IA4nBf,OAAO,CAAC,UAAU;IA8BlB,OAAO,CAAC,QAAQ;YAwBF,iBAAiB;IA+C/B,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,eAAe;IAuOvB,OAAO,CAAC,QAAQ,CAAS;IAOzB,OAAO,CAAC,MAAM;IAiDd,OAAO,CAAC,OAAO;IA8Bf,OAAO,CAAC,SAAS;IA2GjB,OAAO,CAAC,iBAAiB;IAuCzB,OAAO,CAAC,UAAU;IAsBlB,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,IAAI;IA+KZ,OAAO,CAAC,QAAQ;IA0BT,OAAO,CAAC,IAAI,EAAE,MAAM;IAgC3B,OAAO,CAAC,aAAa,CAAS;IAQ9B,OAAO,CAAC,YAAY;IAmEpB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,kBAAkB;IA8J1B,OAAO,CAAC,gBAAgB;IA2BxB,OAAO,CAAC,gBAAgB;YAkPV,aAAa;IAkD3B,OAAO,CAAC,aAAa;CAItB"}
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/network/host.ts"],"names":[],"mappings":"AA4BA,OAAO,EACL,eAAe,EAKhB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAO9B,OAAO,EAGL,YAAY,EAGb,MAAM,gBAAgB,CAAC;AA8FxB,qBAAa,IAAK,SAAQ,IAAI;IAC5B,OAAO,CAAC,SAAS,CAAa;IAQ9B,OAAO,CAAC,YAAY,CAA0B;IAQ9C,SAAgB,GAAG,EAAE,YAAY,CAAC;IAQ3B,YAAY,EAAE,eAAe,CAAC;IAQ9B,iBAAiB,EAAE,eAAe,CAAC;IAQnC,iBAAiB,EAAE,eAAe,CAAC;WA6B5B,eAAe,CAC3B,KAAK,EAAE,iBAAiB,CAAC,WAAW,GAAG,SAAS,EAChD,SAAS,EAAE,MAAM,GAChB,OAAO;IAeH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAW3C,OAAO,CAAC,cAAc,CAEf;IAOP,OAAO,CAAC,QAAQ,CAAK;IAOrB,OAAO,CAAC,WAAW,CAAmC;IAStD,OAAO,CAAC,cAAc,CAGa;IAE5B,QAAQ,IAAI,IAAI;IAqBhB,OAAO,CACZ,KAAK,EAAE,iBAAiB,CAAC,WAAW,EACpC,UAAU,EAAE,MAAM,EAClB,QAAQ,UAAQ,EAChB,YAAY,UAAQ,EACpB,KAAK,UAAQ,GACZ,OAAO,CAAC,GAAG,CAAC;;IA4nBf,OAAO,CAAC,UAAU;IA8BlB,OAAO,CAAC,QAAQ;YAwBF,iBAAiB;IA+C/B,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,eAAe;IA+OvB,OAAO,CAAC,QAAQ,CAAS;IAOzB,OAAO,CAAC,MAAM;IAiDd,OAAO,CAAC,OAAO;IA8Bf,OAAO,CAAC,SAAS;IA2GjB,OAAO,CAAC,iBAAiB;IAuCzB,OAAO,CAAC,UAAU;IAsBlB,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,IAAI;IA+KZ,OAAO,CAAC,QAAQ;IA0BT,OAAO,CAAC,IAAI,EAAE,MAAM;IAgC3B,OAAO,CAAC,aAAa,CAAS;IAQ9B,OAAO,CAAC,YAAY;IAmEpB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,kBAAkB;IA8J1B,OAAO,CAAC,gBAAgB;IA2BxB,OAAO,CAAC,gBAAgB;YAkPV,aAAa;IAkD3B,OAAO,CAAC,aAAa;CAItB"}
@@ -526,6 +526,7 @@ export class Host extends Home {
526
526
  if (this.hybridHosts.length) {
527
527
  this.processHybridNodes(pending.entry, m.data.entry?.$streams);
528
528
  }
529
+ Endpoints.repairHistoryAfterCommit(this, pending.entry.$umid);
529
530
  break;
530
531
  case "broadcast":
531
532
  this.broadcast(m.data.umid, m.data.early);