@activeledger/activenetwork 4.5.6 → 4.5.8

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.
@@ -4,6 +4,21 @@ import { Host } from "./host";
4
4
  export declare class Endpoints {
5
5
  static rebaseThrottle: number;
6
6
  static ExternalInitalise(host: Host, body: any, ip: string, db: ActiveDSConnect): Promise<any>;
7
+ static spiConsensus(networkStreams: any[], consensusReached: number): {
8
+ winners: {
9
+ [id: string]: {
10
+ rev: string;
11
+ votes: number;
12
+ doc: any;
13
+ };
14
+ };
15
+ abstained: {
16
+ [id: string]: string;
17
+ };
18
+ };
19
+ static revPosition(rev: string): number;
20
+ static shouldSelfRepairPosition(nodes: any, homeReference: string, spiError: boolean, spi404Error: boolean): boolean;
21
+ static bulkWriteFailed(response: any): boolean;
7
22
  static shouldTriggerSpiLookup(errors: string[] | undefined, selfError?: string): boolean;
8
23
  static labelOrKey(txIO: any): string[];
9
24
  static filterPrefix(streamId: string): string;
@@ -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;AAKrC,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;WAknBD,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;IA8Zf,OAAO,CAAC,MAAM,CAAC,uBAAuB;WAyExB,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;WAyEnD,OAAO,CAAC,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;WAyIrD,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":";AAuBA,OAAO,EAEL,eAAe,EAGhB,MAAM,6BAA6B,CAAC;AAKrC,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;WA0oBD,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;WAiHa,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;WAKhC,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;IAwVf,OAAO,CAAC,MAAM,CAAC,uBAAuB;WAyExB,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;WAyEnD,OAAO,CAAC,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;WAgKrD,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"}
@@ -124,72 +124,36 @@ export class Endpoints {
124
124
  host.neighbourhood.count() -
125
125
  1);
126
126
  if (networkStreams.length >= consensusReached) {
127
- const consensus = {};
128
- for (let i = networkStreams.length; i--;) {
129
- const nodeStreams = networkStreams[i];
130
- if (nodeStreams?.length) {
131
- for (let ii = nodeStreams.length; ii--;) {
132
- const streamDoc = nodeStreams[ii];
133
- if (streamDoc && streamDoc._id && streamDoc._rev) {
134
- if (!consensus[streamDoc._id]) {
135
- consensus[streamDoc._id] = {};
136
- }
137
- if (consensus[streamDoc._id][streamDoc._rev]) {
138
- consensus[streamDoc._id][streamDoc._rev].votes++;
139
- }
140
- else {
141
- consensus[streamDoc._id][streamDoc._rev] = {
142
- votes: 1,
143
- doc: streamDoc,
144
- };
145
- }
146
- }
147
- }
127
+ const agreed = Endpoints.spiConsensus(networkStreams, consensusReached);
128
+ const undecided = Object.keys(agreed.abstained);
129
+ for (let a = undecided.length; a--;) {
130
+ if (!rewrote.has(undecided[a])) {
131
+ ActiveLogger.warn(`SPI NOWINNER #1 - ${undecided[a]} (${agreed.abstained[undecided[a]]})`);
148
132
  }
149
133
  }
150
- const docs = Object.keys(consensus);
134
+ const docs = Object.keys(agreed.winners);
151
135
  for (let g = docs.length; g--;) {
152
- const doc = consensus[docs[g]];
153
136
  if (rewrote.has(docs[g])) {
154
137
  continue;
155
138
  }
156
- let max = 0;
157
- let winner = "";
158
- for (let x in doc) {
159
- if (doc[x].votes >= consensusReached) {
160
- ActiveLogger.warn(`SPI ${doc[x].votes} >= ${consensusReached} for ${docs[g]}@${x}`);
161
- if (doc[x].votes > max) {
162
- max = doc[x].votes;
163
- winner = x;
164
- }
165
- else if (doc[x].votes === max) {
166
- const [xPos] = x.split("-");
167
- const [wPos] = winner.split("-");
168
- if (+xPos > +wPos) {
169
- ActiveLogger.warn(`SPI matching max (${max}) but has higher position`);
170
- winner = x;
171
- }
172
- }
139
+ const winningDoc = agreed.winners[docs[g]].doc;
140
+ ActiveLogger.warn(`SPI ${agreed.winners[docs[g]].votes} >= ${consensusReached} for ${docs[g]}@${agreed.winners[docs[g]].rev}`);
141
+ rewrote.set(winningDoc._id, winningDoc._rev);
142
+ const dblCheck = await host.dbConnection.get(winningDoc._id);
143
+ if (dblCheck._rev !== winningDoc._rev) {
144
+ ActiveLogger.error(`SPI REWRITING #1 ${winningDoc._id} @ ${winningDoc._rev} NOT ${dblCheck._rev} : ${tx.$umid} CACHE : ${rewrote.get(winningDoc._id)}`);
145
+ const written = await host.dbConnection.bulkDocs([winningDoc], {
146
+ new_edits: true,
147
+ force_rev: winningDoc._rev,
148
+ });
149
+ if (Endpoints.bulkWriteFailed(written)) {
150
+ ActiveLogger.error(`SPI REWRITE FAILED #1 ${winningDoc._id} @ ${winningDoc._rev} : ${tx.$umid} - this node is still out of date`);
151
+ rewrote.delete(winningDoc._id);
173
152
  }
174
- }
175
- if (winner && !rewrote.has(docs[g])) {
176
- const winningDoc = doc[winner].doc;
177
- rewrote.set(winningDoc._id, winningDoc._rev);
178
- const dblCheck = await host.dbConnection.get(winningDoc._id);
179
- if (dblCheck._rev !== winningDoc._rev) {
180
- ActiveLogger.error(`SPI REWRITING #1 ${winningDoc._id} @ ${winningDoc._rev} NOT ${dblCheck._rev} : ${tx.$umid} CACHE : ${rewrote.get(winningDoc._id)}`);
181
- await host.dbConnection.bulkDocs([winningDoc], {
182
- new_edits: true,
183
- force_rev: winningDoc._rev,
184
- });
153
+ else {
185
154
  rewroteSomething = true;
186
155
  }
187
156
  }
188
- else {
189
- if (!rewrote.has(docs[g])) {
190
- ActiveLogger.warn(`SPI NOWINNER #1 - ${docs[g]}`);
191
- }
192
- }
193
157
  }
194
158
  if (rewroteSomething) {
195
159
  delete initTx.$nodes;
@@ -370,6 +334,121 @@ export class Endpoints {
370
334
  }
371
335
  });
372
336
  }
337
+ static spiConsensus(networkStreams, consensusReached) {
338
+ const tally = {};
339
+ const unreported = {};
340
+ for (let i = networkStreams.length; i--;) {
341
+ const nodeStreams = networkStreams[i];
342
+ if (!nodeStreams || !nodeStreams.length) {
343
+ continue;
344
+ }
345
+ const voted = {};
346
+ for (let ii = nodeStreams.length; ii--;) {
347
+ const streamDoc = nodeStreams[ii];
348
+ if (!streamDoc || !streamDoc._id) {
349
+ continue;
350
+ }
351
+ if (streamDoc.locked) {
352
+ if (!voted[streamDoc._id]) {
353
+ voted[streamDoc._id] = true;
354
+ unreported[streamDoc._id] = (unreported[streamDoc._id] || 0) + 1;
355
+ }
356
+ continue;
357
+ }
358
+ if (!streamDoc._rev || voted[streamDoc._id]) {
359
+ continue;
360
+ }
361
+ voted[streamDoc._id] = true;
362
+ if (!tally[streamDoc._id]) {
363
+ tally[streamDoc._id] = {};
364
+ }
365
+ tally[streamDoc._id][streamDoc._rev]
366
+ ? tally[streamDoc._id][streamDoc._rev].votes++
367
+ : (tally[streamDoc._id][streamDoc._rev] = {
368
+ votes: 1,
369
+ doc: streamDoc,
370
+ });
371
+ }
372
+ }
373
+ const winners = {};
374
+ const abstained = {};
375
+ const ids = Object.keys(tally);
376
+ const lockedIds = Object.keys(unreported);
377
+ for (let i = lockedIds.length; i--;) {
378
+ if (ids.indexOf(lockedIds[i]) === -1) {
379
+ ids.push(lockedIds[i]);
380
+ }
381
+ }
382
+ for (let g = ids.length; g--;) {
383
+ const id = ids[g];
384
+ if (unreported[id]) {
385
+ abstained[id] = `sample incomplete, ${unreported[id]} node(s) could not report`;
386
+ continue;
387
+ }
388
+ const revisions = tally[id] || {};
389
+ let winner = "";
390
+ let max = 0;
391
+ const candidates = Object.keys(revisions);
392
+ for (let x = candidates.length; x--;) {
393
+ const rev = candidates[x];
394
+ if (revisions[rev].votes < consensusReached) {
395
+ continue;
396
+ }
397
+ if (revisions[rev].votes > max) {
398
+ max = revisions[rev].votes;
399
+ winner = rev;
400
+ }
401
+ else if (revisions[rev].votes === max) {
402
+ if (Endpoints.revPosition(rev) > Endpoints.revPosition(winner)) {
403
+ winner = rev;
404
+ }
405
+ }
406
+ }
407
+ if (winner) {
408
+ winners[id] = { rev: winner, votes: max, doc: revisions[winner].doc };
409
+ }
410
+ else {
411
+ abstained[id] = "no revision reached consensus";
412
+ }
413
+ }
414
+ return { winners, abstained };
415
+ }
416
+ static revPosition(rev) {
417
+ const position = parseInt((rev || "").split("-")[0], 10);
418
+ return isNaN(position) ? 0 : position;
419
+ }
420
+ static shouldSelfRepairPosition(nodes, homeReference, spiError, spi404Error) {
421
+ if (!spiError) {
422
+ return spi404Error;
423
+ }
424
+ let posCount = 0;
425
+ let myPos = false;
426
+ const references = Object.keys(nodes || {});
427
+ for (let i = references.length; i--;) {
428
+ const node = nodes[references[i]] || {};
429
+ if (node.commit) {
430
+ return true;
431
+ }
432
+ const nodeError = node.error;
433
+ if (typeof nodeError === "string" &&
434
+ nodeError.indexOf("Stream Position Incorrect") !== -1) {
435
+ posCount++;
436
+ if (references[i] === homeReference) {
437
+ myPos = true;
438
+ }
439
+ }
440
+ }
441
+ return posCount >= 1 && myPos;
442
+ }
443
+ static bulkWriteFailed(response) {
444
+ if (response === false || response === null || response === undefined) {
445
+ return true;
446
+ }
447
+ if (Array.isArray(response)) {
448
+ return response.some((result) => result && result.error);
449
+ }
450
+ return response.ok === false;
451
+ }
373
452
  static shouldTriggerSpiLookup(errors, selfError) {
374
453
  const spiErrorCount = errors?.filter((e) => e.indexOf("Stream Position Incorrect") !== -1)
375
454
  .length || 0;
@@ -455,28 +534,7 @@ export class Endpoints {
455
534
  if (spiError || spi404Error) {
456
535
  rewrote.set(tx.$umid, 1);
457
536
  ActiveLogger.warn(tx.$umid, "SPI NON Origin - Position Incorrect or 404");
458
- let check = false;
459
- let posCount = 0;
460
- let myPos = false;
461
- if (spiError) {
462
- const nodes = Object.keys(ledger.data.$nodes);
463
- for (let i = nodes.length; i--;) {
464
- if (ledger.data.$nodes[nodes[i]].commit) {
465
- check = true;
466
- break;
467
- }
468
- if (ledger.data.$nodes[nodes[i]].error?.indexOf("Stream Position Incorrect") !== -1) {
469
- posCount++;
470
- if (nodes[i] === Home.reference) {
471
- myPos = true;
472
- }
473
- }
474
- }
475
- }
476
- else {
477
- check = spi404Error;
478
- }
479
- if (check || (posCount >= 1 && myPos)) {
537
+ if (Endpoints.shouldSelfRepairPosition(ledger.data.$nodes, Home.reference, spiError, spi404Error)) {
480
538
  ActiveLogger.warn(tx.$umid, "SPI NON Origin - Must Check");
481
539
  const streams = [
482
540
  ...new Set([
@@ -502,80 +560,44 @@ export class Endpoints {
502
560
  ActiveLogger.warn(`SPI Skipped not enough returned for consensus yet (${networkStreams.length}/${consensusReached})`);
503
561
  return;
504
562
  }
505
- const consensus = {};
506
- for (let i = networkStreams.length; i--;) {
507
- const nodeStreams = networkStreams[i];
508
- if (nodeStreams?.length) {
509
- for (let ii = nodeStreams.length; ii--;) {
510
- const streamDoc = nodeStreams[ii];
511
- if (streamDoc && streamDoc._id && streamDoc._rev) {
512
- if (!consensus[streamDoc._id]) {
513
- consensus[streamDoc._id] = {};
514
- }
515
- if (consensus[streamDoc._id][streamDoc._rev]) {
516
- consensus[streamDoc._id][streamDoc._rev].votes++;
517
- }
518
- else {
519
- consensus[streamDoc._id][streamDoc._rev] = {
520
- votes: 1,
521
- doc: streamDoc,
522
- };
523
- }
524
- }
525
- }
563
+ const agreed = Endpoints.spiConsensus(networkStreams, consensusReached);
564
+ const undecided = Object.keys(agreed.abstained);
565
+ for (let a = undecided.length; a--;) {
566
+ if (!rewrote.has(undecided[a])) {
567
+ ActiveLogger.warn(`SPI NOWINNER #2 - ${undecided[a]} (${agreed.abstained[undecided[a]]})`);
526
568
  }
527
569
  }
528
- const docs = Object.keys(consensus);
570
+ const docs = Object.keys(agreed.winners);
529
571
  for (let g = docs.length; g--;) {
530
- const doc = consensus[docs[g]];
531
572
  if (rewrote.has(docs[g])) {
532
573
  continue;
533
574
  }
534
- let max = 0;
535
- let winner = "";
536
- for (let x in doc) {
537
- if (doc[x].votes >= consensusReached) {
538
- ActiveLogger.warn(`SPI ${doc[x].votes} >= ${consensusReached} for ${docs[g]}@${x}`);
539
- if (doc[x].votes > max) {
540
- max = doc[x].votes;
541
- winner = x;
575
+ const winningDoc = agreed.winners[docs[g]].doc;
576
+ ActiveLogger.warn(`SPI ${agreed.winners[docs[g]].votes} >= ${consensusReached} for ${docs[g]}@${agreed.winners[docs[g]].rev}`);
577
+ rewrote.set(tx.$umid, true);
578
+ rewrote.set(winningDoc._id, winningDoc._rev);
579
+ const dblCheck = await host.dbConnection.get(winningDoc._id);
580
+ if (dblCheck._rev !== winningDoc._rev) {
581
+ ActiveLogger.error(`SPI REWRITING #2 ${winningDoc._id} @ ${winningDoc._rev} NOT ${dblCheck._rev} : ${tx.$umid} CACHE : ${rewrote.get(winningDoc._id)}`);
582
+ if (!dblCheck._rev) {
583
+ try {
584
+ await host.dbConnection.put(winningDoc);
585
+ ActiveLogger.warn(`SPI 404 - Create Base for ${winningDoc._id}`);
542
586
  }
543
- else if (doc[x].votes === max) {
544
- const [xPos] = x.split("-");
545
- const [wPos] = winner.split("-");
546
- if (+xPos > +wPos) {
547
- ActiveLogger.warn(`SPI matching max (${max}) but has higher position`);
548
- winner = x;
549
- }
587
+ catch {
588
+ ActiveLogger.error(`SPI 404 - Failed to create ${winningDoc._id}`);
550
589
  }
551
590
  }
552
- }
553
- if (winner && !rewrote.has(docs[g])) {
554
- const winningDoc = doc[winner].doc;
555
- rewrote.set(tx.$umid, true);
556
- rewrote.set(winningDoc._id, winningDoc._rev);
557
- const dblCheck = await host.dbConnection.get(winningDoc._id);
558
- if (dblCheck._rev !== winningDoc._rev) {
559
- ActiveLogger.error(`SPI REWRITING #2 ${winningDoc._id} @ ${winningDoc._rev} NOT ${dblCheck._rev} : ${tx.$umid} CACHE : ${rewrote.get(winningDoc._id)}`);
560
- if (!dblCheck._rev) {
561
- try {
562
- await host.dbConnection.put(winningDoc);
563
- ActiveLogger.warn(`SPI 404 - Create Base for ${winningDoc._id}`);
564
- }
565
- catch {
566
- ActiveLogger.error(`SPI 404 - Failed to create ${winningDoc._id}`);
567
- }
568
- }
569
- await host.dbConnection.bulkDocs([winningDoc], {
570
- new_edits: true,
571
- force_rev: winningDoc._rev,
572
- });
573
- canRetry = true;
591
+ const written = await host.dbConnection.bulkDocs([winningDoc], {
592
+ new_edits: true,
593
+ force_rev: winningDoc._rev,
594
+ });
595
+ if (Endpoints.bulkWriteFailed(written)) {
596
+ ActiveLogger.error(`SPI REWRITE FAILED #2 ${winningDoc._id} @ ${winningDoc._rev} : ${tx.$umid} - this node is still out of date`);
597
+ rewrote.delete(winningDoc._id);
574
598
  }
575
- }
576
- else {
577
- if (!rewrote.has(docs[g])) {
578
- ActiveLogger.warn(`SPI NOWINNER #2 - ${docs[g]}`);
599
+ else {
600
+ canRetry = true;
579
601
  }
580
602
  }
581
603
  }
@@ -771,6 +793,7 @@ export class Endpoints {
771
793
  return new Promise((resolve, reject) => {
772
794
  if (body.$streams) {
773
795
  const fetchStream = [];
796
+ const unavailable = [];
774
797
  for (let i = body.$streams.length; i--;) {
775
798
  if (body.$streams[i].indexOf(":volatile") !== -1) {
776
799
  return reject({
@@ -789,6 +812,9 @@ export class Endpoints {
789
812
  if (Locker.is(holdValue, "SPI")) {
790
813
  fetchStream.push(db.get(body.$streams[i]));
791
814
  }
815
+ else {
816
+ unavailable.push({ _id: body.$streams[i], locked: true });
817
+ }
792
818
  }
793
819
  }
794
820
  if (fetchStream.length) {
@@ -802,20 +828,20 @@ export class Endpoints {
802
828
  }
803
829
  return resolve({
804
830
  statusCode: 200,
805
- content: streams,
831
+ content: streams.concat(unavailable),
806
832
  });
807
833
  })
808
834
  .catch(() => {
809
835
  return resolve({
810
836
  statusCode: 200,
811
- content: [],
837
+ content: unavailable,
812
838
  });
813
839
  });
814
840
  }
815
841
  else {
816
842
  return resolve({
817
843
  statusCode: 200,
818
- content: [],
844
+ content: unavailable,
819
845
  });
820
846
  }
821
847
  }
@@ -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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"}
@@ -4,6 +4,21 @@ import { Host } from "./host";
4
4
  export declare class Endpoints {
5
5
  static rebaseThrottle: number;
6
6
  static ExternalInitalise(host: Host, body: any, ip: string, db: ActiveDSConnect): Promise<any>;
7
+ static spiConsensus(networkStreams: any[], consensusReached: number): {
8
+ winners: {
9
+ [id: string]: {
10
+ rev: string;
11
+ votes: number;
12
+ doc: any;
13
+ };
14
+ };
15
+ abstained: {
16
+ [id: string]: string;
17
+ };
18
+ };
19
+ static revPosition(rev: string): number;
20
+ static shouldSelfRepairPosition(nodes: any, homeReference: string, spiError: boolean, spi404Error: boolean): boolean;
21
+ static bulkWriteFailed(response: any): boolean;
7
22
  static shouldTriggerSpiLookup(errors: string[] | undefined, selfError?: string): boolean;
8
23
  static labelOrKey(txIO: any): string[];
9
24
  static filterPrefix(streamId: string): string;
@@ -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;AAKrC,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;WAknBD,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;IA8Zf,OAAO,CAAC,MAAM,CAAC,uBAAuB;WAyExB,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;WAyEnD,OAAO,CAAC,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;WAyIrD,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":";AAuBA,OAAO,EAEL,eAAe,EAGhB,MAAM,6BAA6B,CAAC;AAKrC,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;WA0oBD,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;WAiHa,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;WAKhC,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;IAwVf,OAAO,CAAC,MAAM,CAAC,uBAAuB;WAyExB,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;WAyEnD,OAAO,CAAC,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;WAgKrD,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"}
@@ -127,72 +127,36 @@ class Endpoints {
127
127
  host.neighbourhood.count() -
128
128
  1);
129
129
  if (networkStreams.length >= consensusReached) {
130
- const consensus = {};
131
- for (let i = networkStreams.length; i--;) {
132
- const nodeStreams = networkStreams[i];
133
- if (nodeStreams?.length) {
134
- for (let ii = nodeStreams.length; ii--;) {
135
- const streamDoc = nodeStreams[ii];
136
- if (streamDoc && streamDoc._id && streamDoc._rev) {
137
- if (!consensus[streamDoc._id]) {
138
- consensus[streamDoc._id] = {};
139
- }
140
- if (consensus[streamDoc._id][streamDoc._rev]) {
141
- consensus[streamDoc._id][streamDoc._rev].votes++;
142
- }
143
- else {
144
- consensus[streamDoc._id][streamDoc._rev] = {
145
- votes: 1,
146
- doc: streamDoc,
147
- };
148
- }
149
- }
150
- }
130
+ const agreed = Endpoints.spiConsensus(networkStreams, consensusReached);
131
+ const undecided = Object.keys(agreed.abstained);
132
+ for (let a = undecided.length; a--;) {
133
+ if (!rewrote.has(undecided[a])) {
134
+ activelogger_1.ActiveLogger.warn(`SPI NOWINNER #1 - ${undecided[a]} (${agreed.abstained[undecided[a]]})`);
151
135
  }
152
136
  }
153
- const docs = Object.keys(consensus);
137
+ const docs = Object.keys(agreed.winners);
154
138
  for (let g = docs.length; g--;) {
155
- const doc = consensus[docs[g]];
156
139
  if (rewrote.has(docs[g])) {
157
140
  continue;
158
141
  }
159
- let max = 0;
160
- let winner = "";
161
- for (let x in doc) {
162
- if (doc[x].votes >= consensusReached) {
163
- activelogger_1.ActiveLogger.warn(`SPI ${doc[x].votes} >= ${consensusReached} for ${docs[g]}@${x}`);
164
- if (doc[x].votes > max) {
165
- max = doc[x].votes;
166
- winner = x;
167
- }
168
- else if (doc[x].votes === max) {
169
- const [xPos] = x.split("-");
170
- const [wPos] = winner.split("-");
171
- if (+xPos > +wPos) {
172
- activelogger_1.ActiveLogger.warn(`SPI matching max (${max}) but has higher position`);
173
- winner = x;
174
- }
175
- }
142
+ const winningDoc = agreed.winners[docs[g]].doc;
143
+ activelogger_1.ActiveLogger.warn(`SPI ${agreed.winners[docs[g]].votes} >= ${consensusReached} for ${docs[g]}@${agreed.winners[docs[g]].rev}`);
144
+ rewrote.set(winningDoc._id, winningDoc._rev);
145
+ const dblCheck = await host.dbConnection.get(winningDoc._id);
146
+ if (dblCheck._rev !== winningDoc._rev) {
147
+ activelogger_1.ActiveLogger.error(`SPI REWRITING #1 ${winningDoc._id} @ ${winningDoc._rev} NOT ${dblCheck._rev} : ${tx.$umid} CACHE : ${rewrote.get(winningDoc._id)}`);
148
+ const written = await host.dbConnection.bulkDocs([winningDoc], {
149
+ new_edits: true,
150
+ force_rev: winningDoc._rev,
151
+ });
152
+ if (Endpoints.bulkWriteFailed(written)) {
153
+ activelogger_1.ActiveLogger.error(`SPI REWRITE FAILED #1 ${winningDoc._id} @ ${winningDoc._rev} : ${tx.$umid} - this node is still out of date`);
154
+ rewrote.delete(winningDoc._id);
176
155
  }
177
- }
178
- if (winner && !rewrote.has(docs[g])) {
179
- const winningDoc = doc[winner].doc;
180
- rewrote.set(winningDoc._id, winningDoc._rev);
181
- const dblCheck = await host.dbConnection.get(winningDoc._id);
182
- if (dblCheck._rev !== winningDoc._rev) {
183
- activelogger_1.ActiveLogger.error(`SPI REWRITING #1 ${winningDoc._id} @ ${winningDoc._rev} NOT ${dblCheck._rev} : ${tx.$umid} CACHE : ${rewrote.get(winningDoc._id)}`);
184
- await host.dbConnection.bulkDocs([winningDoc], {
185
- new_edits: true,
186
- force_rev: winningDoc._rev,
187
- });
156
+ else {
188
157
  rewroteSomething = true;
189
158
  }
190
159
  }
191
- else {
192
- if (!rewrote.has(docs[g])) {
193
- activelogger_1.ActiveLogger.warn(`SPI NOWINNER #1 - ${docs[g]}`);
194
- }
195
- }
196
160
  }
197
161
  if (rewroteSomething) {
198
162
  delete initTx.$nodes;
@@ -373,6 +337,121 @@ class Endpoints {
373
337
  }
374
338
  });
375
339
  }
340
+ static spiConsensus(networkStreams, consensusReached) {
341
+ const tally = {};
342
+ const unreported = {};
343
+ for (let i = networkStreams.length; i--;) {
344
+ const nodeStreams = networkStreams[i];
345
+ if (!nodeStreams || !nodeStreams.length) {
346
+ continue;
347
+ }
348
+ const voted = {};
349
+ for (let ii = nodeStreams.length; ii--;) {
350
+ const streamDoc = nodeStreams[ii];
351
+ if (!streamDoc || !streamDoc._id) {
352
+ continue;
353
+ }
354
+ if (streamDoc.locked) {
355
+ if (!voted[streamDoc._id]) {
356
+ voted[streamDoc._id] = true;
357
+ unreported[streamDoc._id] = (unreported[streamDoc._id] || 0) + 1;
358
+ }
359
+ continue;
360
+ }
361
+ if (!streamDoc._rev || voted[streamDoc._id]) {
362
+ continue;
363
+ }
364
+ voted[streamDoc._id] = true;
365
+ if (!tally[streamDoc._id]) {
366
+ tally[streamDoc._id] = {};
367
+ }
368
+ tally[streamDoc._id][streamDoc._rev]
369
+ ? tally[streamDoc._id][streamDoc._rev].votes++
370
+ : (tally[streamDoc._id][streamDoc._rev] = {
371
+ votes: 1,
372
+ doc: streamDoc,
373
+ });
374
+ }
375
+ }
376
+ const winners = {};
377
+ const abstained = {};
378
+ const ids = Object.keys(tally);
379
+ const lockedIds = Object.keys(unreported);
380
+ for (let i = lockedIds.length; i--;) {
381
+ if (ids.indexOf(lockedIds[i]) === -1) {
382
+ ids.push(lockedIds[i]);
383
+ }
384
+ }
385
+ for (let g = ids.length; g--;) {
386
+ const id = ids[g];
387
+ if (unreported[id]) {
388
+ abstained[id] = `sample incomplete, ${unreported[id]} node(s) could not report`;
389
+ continue;
390
+ }
391
+ const revisions = tally[id] || {};
392
+ let winner = "";
393
+ let max = 0;
394
+ const candidates = Object.keys(revisions);
395
+ for (let x = candidates.length; x--;) {
396
+ const rev = candidates[x];
397
+ if (revisions[rev].votes < consensusReached) {
398
+ continue;
399
+ }
400
+ if (revisions[rev].votes > max) {
401
+ max = revisions[rev].votes;
402
+ winner = rev;
403
+ }
404
+ else if (revisions[rev].votes === max) {
405
+ if (Endpoints.revPosition(rev) > Endpoints.revPosition(winner)) {
406
+ winner = rev;
407
+ }
408
+ }
409
+ }
410
+ if (winner) {
411
+ winners[id] = { rev: winner, votes: max, doc: revisions[winner].doc };
412
+ }
413
+ else {
414
+ abstained[id] = "no revision reached consensus";
415
+ }
416
+ }
417
+ return { winners, abstained };
418
+ }
419
+ static revPosition(rev) {
420
+ const position = parseInt((rev || "").split("-")[0], 10);
421
+ return isNaN(position) ? 0 : position;
422
+ }
423
+ static shouldSelfRepairPosition(nodes, homeReference, spiError, spi404Error) {
424
+ if (!spiError) {
425
+ return spi404Error;
426
+ }
427
+ let posCount = 0;
428
+ let myPos = false;
429
+ const references = Object.keys(nodes || {});
430
+ for (let i = references.length; i--;) {
431
+ const node = nodes[references[i]] || {};
432
+ if (node.commit) {
433
+ return true;
434
+ }
435
+ const nodeError = node.error;
436
+ if (typeof nodeError === "string" &&
437
+ nodeError.indexOf("Stream Position Incorrect") !== -1) {
438
+ posCount++;
439
+ if (references[i] === homeReference) {
440
+ myPos = true;
441
+ }
442
+ }
443
+ }
444
+ return posCount >= 1 && myPos;
445
+ }
446
+ static bulkWriteFailed(response) {
447
+ if (response === false || response === null || response === undefined) {
448
+ return true;
449
+ }
450
+ if (Array.isArray(response)) {
451
+ return response.some((result) => result && result.error);
452
+ }
453
+ return response.ok === false;
454
+ }
376
455
  static shouldTriggerSpiLookup(errors, selfError) {
377
456
  const spiErrorCount = errors?.filter((e) => e.indexOf("Stream Position Incorrect") !== -1)
378
457
  .length || 0;
@@ -458,28 +537,7 @@ class Endpoints {
458
537
  if (spiError || spi404Error) {
459
538
  rewrote.set(tx.$umid, 1);
460
539
  activelogger_1.ActiveLogger.warn(tx.$umid, "SPI NON Origin - Position Incorrect or 404");
461
- let check = false;
462
- let posCount = 0;
463
- let myPos = false;
464
- if (spiError) {
465
- const nodes = Object.keys(ledger.data.$nodes);
466
- for (let i = nodes.length; i--;) {
467
- if (ledger.data.$nodes[nodes[i]].commit) {
468
- check = true;
469
- break;
470
- }
471
- if (ledger.data.$nodes[nodes[i]].error?.indexOf("Stream Position Incorrect") !== -1) {
472
- posCount++;
473
- if (nodes[i] === home_1.Home.reference) {
474
- myPos = true;
475
- }
476
- }
477
- }
478
- }
479
- else {
480
- check = spi404Error;
481
- }
482
- if (check || (posCount >= 1 && myPos)) {
540
+ if (Endpoints.shouldSelfRepairPosition(ledger.data.$nodes, home_1.Home.reference, spiError, spi404Error)) {
483
541
  activelogger_1.ActiveLogger.warn(tx.$umid, "SPI NON Origin - Must Check");
484
542
  const streams = [
485
543
  ...new Set([
@@ -505,80 +563,44 @@ class Endpoints {
505
563
  activelogger_1.ActiveLogger.warn(`SPI Skipped not enough returned for consensus yet (${networkStreams.length}/${consensusReached})`);
506
564
  return;
507
565
  }
508
- const consensus = {};
509
- for (let i = networkStreams.length; i--;) {
510
- const nodeStreams = networkStreams[i];
511
- if (nodeStreams?.length) {
512
- for (let ii = nodeStreams.length; ii--;) {
513
- const streamDoc = nodeStreams[ii];
514
- if (streamDoc && streamDoc._id && streamDoc._rev) {
515
- if (!consensus[streamDoc._id]) {
516
- consensus[streamDoc._id] = {};
517
- }
518
- if (consensus[streamDoc._id][streamDoc._rev]) {
519
- consensus[streamDoc._id][streamDoc._rev].votes++;
520
- }
521
- else {
522
- consensus[streamDoc._id][streamDoc._rev] = {
523
- votes: 1,
524
- doc: streamDoc,
525
- };
526
- }
527
- }
528
- }
566
+ const agreed = Endpoints.spiConsensus(networkStreams, consensusReached);
567
+ const undecided = Object.keys(agreed.abstained);
568
+ for (let a = undecided.length; a--;) {
569
+ if (!rewrote.has(undecided[a])) {
570
+ activelogger_1.ActiveLogger.warn(`SPI NOWINNER #2 - ${undecided[a]} (${agreed.abstained[undecided[a]]})`);
529
571
  }
530
572
  }
531
- const docs = Object.keys(consensus);
573
+ const docs = Object.keys(agreed.winners);
532
574
  for (let g = docs.length; g--;) {
533
- const doc = consensus[docs[g]];
534
575
  if (rewrote.has(docs[g])) {
535
576
  continue;
536
577
  }
537
- let max = 0;
538
- let winner = "";
539
- for (let x in doc) {
540
- if (doc[x].votes >= consensusReached) {
541
- activelogger_1.ActiveLogger.warn(`SPI ${doc[x].votes} >= ${consensusReached} for ${docs[g]}@${x}`);
542
- if (doc[x].votes > max) {
543
- max = doc[x].votes;
544
- winner = x;
578
+ const winningDoc = agreed.winners[docs[g]].doc;
579
+ activelogger_1.ActiveLogger.warn(`SPI ${agreed.winners[docs[g]].votes} >= ${consensusReached} for ${docs[g]}@${agreed.winners[docs[g]].rev}`);
580
+ rewrote.set(tx.$umid, true);
581
+ rewrote.set(winningDoc._id, winningDoc._rev);
582
+ const dblCheck = await host.dbConnection.get(winningDoc._id);
583
+ if (dblCheck._rev !== winningDoc._rev) {
584
+ activelogger_1.ActiveLogger.error(`SPI REWRITING #2 ${winningDoc._id} @ ${winningDoc._rev} NOT ${dblCheck._rev} : ${tx.$umid} CACHE : ${rewrote.get(winningDoc._id)}`);
585
+ if (!dblCheck._rev) {
586
+ try {
587
+ await host.dbConnection.put(winningDoc);
588
+ activelogger_1.ActiveLogger.warn(`SPI 404 - Create Base for ${winningDoc._id}`);
545
589
  }
546
- else if (doc[x].votes === max) {
547
- const [xPos] = x.split("-");
548
- const [wPos] = winner.split("-");
549
- if (+xPos > +wPos) {
550
- activelogger_1.ActiveLogger.warn(`SPI matching max (${max}) but has higher position`);
551
- winner = x;
552
- }
590
+ catch {
591
+ activelogger_1.ActiveLogger.error(`SPI 404 - Failed to create ${winningDoc._id}`);
553
592
  }
554
593
  }
555
- }
556
- if (winner && !rewrote.has(docs[g])) {
557
- const winningDoc = doc[winner].doc;
558
- rewrote.set(tx.$umid, true);
559
- rewrote.set(winningDoc._id, winningDoc._rev);
560
- const dblCheck = await host.dbConnection.get(winningDoc._id);
561
- if (dblCheck._rev !== winningDoc._rev) {
562
- activelogger_1.ActiveLogger.error(`SPI REWRITING #2 ${winningDoc._id} @ ${winningDoc._rev} NOT ${dblCheck._rev} : ${tx.$umid} CACHE : ${rewrote.get(winningDoc._id)}`);
563
- if (!dblCheck._rev) {
564
- try {
565
- await host.dbConnection.put(winningDoc);
566
- activelogger_1.ActiveLogger.warn(`SPI 404 - Create Base for ${winningDoc._id}`);
567
- }
568
- catch {
569
- activelogger_1.ActiveLogger.error(`SPI 404 - Failed to create ${winningDoc._id}`);
570
- }
571
- }
572
- await host.dbConnection.bulkDocs([winningDoc], {
573
- new_edits: true,
574
- force_rev: winningDoc._rev,
575
- });
576
- canRetry = true;
594
+ const written = await host.dbConnection.bulkDocs([winningDoc], {
595
+ new_edits: true,
596
+ force_rev: winningDoc._rev,
597
+ });
598
+ if (Endpoints.bulkWriteFailed(written)) {
599
+ activelogger_1.ActiveLogger.error(`SPI REWRITE FAILED #2 ${winningDoc._id} @ ${winningDoc._rev} : ${tx.$umid} - this node is still out of date`);
600
+ rewrote.delete(winningDoc._id);
577
601
  }
578
- }
579
- else {
580
- if (!rewrote.has(docs[g])) {
581
- activelogger_1.ActiveLogger.warn(`SPI NOWINNER #2 - ${docs[g]}`);
602
+ else {
603
+ canRetry = true;
582
604
  }
583
605
  }
584
606
  }
@@ -774,6 +796,7 @@ class Endpoints {
774
796
  return new Promise((resolve, reject) => {
775
797
  if (body.$streams) {
776
798
  const fetchStream = [];
799
+ const unavailable = [];
777
800
  for (let i = body.$streams.length; i--;) {
778
801
  if (body.$streams[i].indexOf(":volatile") !== -1) {
779
802
  return reject({
@@ -792,6 +815,9 @@ class Endpoints {
792
815
  if (locker_1.Locker.is(holdValue, "SPI")) {
793
816
  fetchStream.push(db.get(body.$streams[i]));
794
817
  }
818
+ else {
819
+ unavailable.push({ _id: body.$streams[i], locked: true });
820
+ }
795
821
  }
796
822
  }
797
823
  if (fetchStream.length) {
@@ -805,20 +831,20 @@ class Endpoints {
805
831
  }
806
832
  return resolve({
807
833
  statusCode: 200,
808
- content: streams,
834
+ content: streams.concat(unavailable),
809
835
  });
810
836
  })
811
837
  .catch(() => {
812
838
  return resolve({
813
839
  statusCode: 200,
814
- content: [],
840
+ content: unavailable,
815
841
  });
816
842
  });
817
843
  }
818
844
  else {
819
845
  return resolve({
820
846
  statusCode: 200,
821
- content: [],
847
+ content: unavailable,
822
848
  });
823
849
  }
824
850
  }
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@activeledger/activenetwork",
3
- "version": "4.5.6",
3
+ "version": "4.5.8",
4
4
  "description": "This package manages the network communication of the Activeledger nodes.",
5
5
  "keywords": [
6
6
  "blockchain",
@@ -43,14 +43,14 @@
43
43
  "jsnext:main": "./es/index.js",
44
44
  "module": "./es/index.js",
45
45
  "dependencies": {
46
- "@activeledger/activecrypto": "^4.5.6",
47
- "@activeledger/activedefinitions": "^4.5.6",
48
- "@activeledger/activelogger": "^4.5.6",
49
- "@activeledger/activeoptions": "^4.5.6",
50
- "@activeledger/activeprotocol": "^4.5.6",
51
- "@activeledger/activequery": "^4.5.6",
52
- "@activeledger/activeutilities": "^4.5.6",
46
+ "@activeledger/activecrypto": "4.5.8",
47
+ "@activeledger/activedefinitions": "4.5.8",
48
+ "@activeledger/activelogger": "4.5.8",
49
+ "@activeledger/activeoptions": "4.5.8",
50
+ "@activeledger/activeprotocol": "4.5.8",
51
+ "@activeledger/activequery": "4.5.8",
52
+ "@activeledger/activeutilities": "4.5.8",
53
53
  "uWebSockets.js": "github:uNetworking/uWebSockets.js#v20.67.0"
54
54
  },
55
- "gitHead": "5877478282025dfb3d297e2dda2d8f82bdabcca5"
55
+ "gitHead": "97d00fee97ee62c41fbaf08f167cbb3ff9157be6"
56
56
  }