@activeledger/activenetwork 4.5.7 → 4.5.9
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/network/endpoints.d.ts +15 -0
- package/es/network/endpoints.d.ts.map +1 -1
- package/es/network/endpoints.js +180 -153
- package/es/network/endpoints.js.map +1 -1
- package/lib/network/endpoints.d.ts +15 -0
- package/lib/network/endpoints.d.ts.map +1 -1
- package/lib/network/endpoints.js +180 -153
- package/lib/network/endpoints.js.map +1 -1
- package/package.json +9 -9
|
@@ -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;
|
|
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;WAkIa,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;WAsJrD,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"}
|
package/es/network/endpoints.js
CHANGED
|
@@ -124,72 +124,36 @@ export class Endpoints {
|
|
|
124
124
|
host.neighbourhood.count() -
|
|
125
125
|
1);
|
|
126
126
|
if (networkStreams.length >= consensusReached) {
|
|
127
|
-
const
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
if (
|
|
131
|
-
|
|
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(
|
|
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
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
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,130 @@ 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
|
+
let forked = false;
|
|
392
|
+
const candidates = Object.keys(revisions);
|
|
393
|
+
for (let x = candidates.length; x--;) {
|
|
394
|
+
const rev = candidates[x];
|
|
395
|
+
if (revisions[rev].votes < consensusReached) {
|
|
396
|
+
continue;
|
|
397
|
+
}
|
|
398
|
+
if (revisions[rev].votes > max) {
|
|
399
|
+
max = revisions[rev].votes;
|
|
400
|
+
winner = rev;
|
|
401
|
+
}
|
|
402
|
+
else if (revisions[rev].votes === max) {
|
|
403
|
+
if (Endpoints.revPosition(rev) > Endpoints.revPosition(winner)) {
|
|
404
|
+
winner = rev;
|
|
405
|
+
}
|
|
406
|
+
else if (Endpoints.revPosition(rev) === Endpoints.revPosition(winner) &&
|
|
407
|
+
rev !== winner) {
|
|
408
|
+
forked = true;
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
if (forked) {
|
|
413
|
+
abstained[id] =
|
|
414
|
+
"forked - two revisions at the same position, needs a human";
|
|
415
|
+
}
|
|
416
|
+
else if (winner) {
|
|
417
|
+
winners[id] = { rev: winner, votes: max, doc: revisions[winner].doc };
|
|
418
|
+
}
|
|
419
|
+
else {
|
|
420
|
+
abstained[id] = "no revision reached consensus";
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
return { winners, abstained };
|
|
424
|
+
}
|
|
425
|
+
static revPosition(rev) {
|
|
426
|
+
const position = parseInt((rev || "").split("-")[0], 10);
|
|
427
|
+
return isNaN(position) ? 0 : position;
|
|
428
|
+
}
|
|
429
|
+
static shouldSelfRepairPosition(nodes, homeReference, spiError, spi404Error) {
|
|
430
|
+
if (!spiError) {
|
|
431
|
+
return spi404Error;
|
|
432
|
+
}
|
|
433
|
+
let posCount = 0;
|
|
434
|
+
let myPos = false;
|
|
435
|
+
const references = Object.keys(nodes || {});
|
|
436
|
+
for (let i = references.length; i--;) {
|
|
437
|
+
const node = nodes[references[i]] || {};
|
|
438
|
+
if (node.commit) {
|
|
439
|
+
return true;
|
|
440
|
+
}
|
|
441
|
+
const nodeError = node.error;
|
|
442
|
+
if (typeof nodeError === "string" &&
|
|
443
|
+
nodeError.indexOf("Stream Position Incorrect") !== -1) {
|
|
444
|
+
posCount++;
|
|
445
|
+
if (references[i] === homeReference) {
|
|
446
|
+
myPos = true;
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
return posCount >= 1 && myPos;
|
|
451
|
+
}
|
|
452
|
+
static bulkWriteFailed(response) {
|
|
453
|
+
if (response === false || response === null || response === undefined) {
|
|
454
|
+
return true;
|
|
455
|
+
}
|
|
456
|
+
if (Array.isArray(response)) {
|
|
457
|
+
return response.some((result) => result && result.error);
|
|
458
|
+
}
|
|
459
|
+
return response.ok === false;
|
|
460
|
+
}
|
|
373
461
|
static shouldTriggerSpiLookup(errors, selfError) {
|
|
374
462
|
const spiErrorCount = errors?.filter((e) => e.indexOf("Stream Position Incorrect") !== -1)
|
|
375
463
|
.length || 0;
|
|
@@ -455,28 +543,7 @@ export class Endpoints {
|
|
|
455
543
|
if (spiError || spi404Error) {
|
|
456
544
|
rewrote.set(tx.$umid, 1);
|
|
457
545
|
ActiveLogger.warn(tx.$umid, "SPI NON Origin - Position Incorrect or 404");
|
|
458
|
-
|
|
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)) {
|
|
546
|
+
if (Endpoints.shouldSelfRepairPosition(ledger.data.$nodes, Home.reference, spiError, spi404Error)) {
|
|
480
547
|
ActiveLogger.warn(tx.$umid, "SPI NON Origin - Must Check");
|
|
481
548
|
const streams = [
|
|
482
549
|
...new Set([
|
|
@@ -502,80 +569,44 @@ export class Endpoints {
|
|
|
502
569
|
ActiveLogger.warn(`SPI Skipped not enough returned for consensus yet (${networkStreams.length}/${consensusReached})`);
|
|
503
570
|
return;
|
|
504
571
|
}
|
|
505
|
-
const
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
if (
|
|
509
|
-
|
|
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
|
-
}
|
|
572
|
+
const agreed = Endpoints.spiConsensus(networkStreams, consensusReached);
|
|
573
|
+
const undecided = Object.keys(agreed.abstained);
|
|
574
|
+
for (let a = undecided.length; a--;) {
|
|
575
|
+
if (!rewrote.has(undecided[a])) {
|
|
576
|
+
ActiveLogger.warn(`SPI NOWINNER #2 - ${undecided[a]} (${agreed.abstained[undecided[a]]})`);
|
|
526
577
|
}
|
|
527
578
|
}
|
|
528
|
-
const docs = Object.keys(
|
|
579
|
+
const docs = Object.keys(agreed.winners);
|
|
529
580
|
for (let g = docs.length; g--;) {
|
|
530
|
-
const doc = consensus[docs[g]];
|
|
531
581
|
if (rewrote.has(docs[g])) {
|
|
532
582
|
continue;
|
|
533
583
|
}
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
584
|
+
const winningDoc = agreed.winners[docs[g]].doc;
|
|
585
|
+
ActiveLogger.warn(`SPI ${agreed.winners[docs[g]].votes} >= ${consensusReached} for ${docs[g]}@${agreed.winners[docs[g]].rev}`);
|
|
586
|
+
rewrote.set(tx.$umid, true);
|
|
587
|
+
rewrote.set(winningDoc._id, winningDoc._rev);
|
|
588
|
+
const dblCheck = await host.dbConnection.get(winningDoc._id);
|
|
589
|
+
if (dblCheck._rev !== winningDoc._rev) {
|
|
590
|
+
ActiveLogger.error(`SPI REWRITING #2 ${winningDoc._id} @ ${winningDoc._rev} NOT ${dblCheck._rev} : ${tx.$umid} CACHE : ${rewrote.get(winningDoc._id)}`);
|
|
591
|
+
if (!dblCheck._rev) {
|
|
592
|
+
try {
|
|
593
|
+
await host.dbConnection.put(winningDoc);
|
|
594
|
+
ActiveLogger.warn(`SPI 404 - Create Base for ${winningDoc._id}`);
|
|
542
595
|
}
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
const [wPos] = winner.split("-");
|
|
546
|
-
if (+xPos > +wPos) {
|
|
547
|
-
ActiveLogger.warn(`SPI matching max (${max}) but has higher position`);
|
|
548
|
-
winner = x;
|
|
549
|
-
}
|
|
596
|
+
catch {
|
|
597
|
+
ActiveLogger.error(`SPI 404 - Failed to create ${winningDoc._id}`);
|
|
550
598
|
}
|
|
551
599
|
}
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
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;
|
|
600
|
+
const written = await host.dbConnection.bulkDocs([winningDoc], {
|
|
601
|
+
new_edits: true,
|
|
602
|
+
force_rev: winningDoc._rev,
|
|
603
|
+
});
|
|
604
|
+
if (Endpoints.bulkWriteFailed(written)) {
|
|
605
|
+
ActiveLogger.error(`SPI REWRITE FAILED #2 ${winningDoc._id} @ ${winningDoc._rev} : ${tx.$umid} - this node is still out of date`);
|
|
606
|
+
rewrote.delete(winningDoc._id);
|
|
574
607
|
}
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
if (!rewrote.has(docs[g])) {
|
|
578
|
-
ActiveLogger.warn(`SPI NOWINNER #2 - ${docs[g]}`);
|
|
608
|
+
else {
|
|
609
|
+
canRetry = true;
|
|
579
610
|
}
|
|
580
611
|
}
|
|
581
612
|
}
|
|
@@ -771,6 +802,7 @@ export class Endpoints {
|
|
|
771
802
|
return new Promise((resolve, reject) => {
|
|
772
803
|
if (body.$streams) {
|
|
773
804
|
const fetchStream = [];
|
|
805
|
+
const unavailable = [];
|
|
774
806
|
for (let i = body.$streams.length; i--;) {
|
|
775
807
|
if (body.$streams[i].indexOf(":volatile") !== -1) {
|
|
776
808
|
return reject({
|
|
@@ -779,16 +811,11 @@ export class Endpoints {
|
|
|
779
811
|
});
|
|
780
812
|
}
|
|
781
813
|
const holdValue = body.$streams[i].replace(":stream", "");
|
|
782
|
-
if (Locker.
|
|
783
|
-
|
|
784
|
-
Locker.release(holdValue, "SPI");
|
|
785
|
-
}, 1000);
|
|
786
|
-
fetchStream.push(db.get(body.$streams[i]));
|
|
814
|
+
if (Locker.has(holdValue)) {
|
|
815
|
+
unavailable.push({ _id: body.$streams[i], locked: true });
|
|
787
816
|
}
|
|
788
817
|
else {
|
|
789
|
-
|
|
790
|
-
fetchStream.push(db.get(body.$streams[i]));
|
|
791
|
-
}
|
|
818
|
+
fetchStream.push(db.get(body.$streams[i]));
|
|
792
819
|
}
|
|
793
820
|
}
|
|
794
821
|
if (fetchStream.length) {
|
|
@@ -802,20 +829,20 @@ export class Endpoints {
|
|
|
802
829
|
}
|
|
803
830
|
return resolve({
|
|
804
831
|
statusCode: 200,
|
|
805
|
-
content: streams,
|
|
832
|
+
content: streams.concat(unavailable),
|
|
806
833
|
});
|
|
807
834
|
})
|
|
808
835
|
.catch(() => {
|
|
809
836
|
return resolve({
|
|
810
837
|
statusCode: 200,
|
|
811
|
-
content:
|
|
838
|
+
content: unavailable,
|
|
812
839
|
});
|
|
813
840
|
});
|
|
814
841
|
}
|
|
815
842
|
else {
|
|
816
843
|
return resolve({
|
|
817
844
|
statusCode: 200,
|
|
818
|
-
content:
|
|
845
|
+
content: unavailable,
|
|
819
846
|
});
|
|
820
847
|
}
|
|
821
848
|
}
|
|
@@ -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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"}
|