@activeledger/activenetwork 2.15.7 → 4.3.3

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 (79) hide show
  1. package/es/network/cpus.d.ts +1 -0
  2. package/es/network/cpus.d.ts.map +1 -1
  3. package/es/network/cpus.js +26 -15
  4. package/es/network/cpus.js.map +1 -1
  5. package/es/network/endpoints.d.ts +7 -3
  6. package/es/network/endpoints.d.ts.map +1 -1
  7. package/es/network/endpoints.js +685 -172
  8. package/es/network/endpoints.js.map +1 -1
  9. package/es/network/home.d.ts.map +1 -1
  10. package/es/network/home.js +41 -19
  11. package/es/network/home.js.map +1 -1
  12. package/es/network/host.d.ts +15 -7
  13. package/es/network/host.d.ts.map +1 -1
  14. package/es/network/host.js +631 -240
  15. package/es/network/host.js.map +1 -1
  16. package/es/network/locker.d.ts +10 -5
  17. package/es/network/locker.d.ts.map +1 -1
  18. package/es/network/locker.js +50 -17
  19. package/es/network/locker.js.map +1 -1
  20. package/es/network/maintain.d.ts.map +1 -1
  21. package/es/network/maintain.js +42 -42
  22. package/es/network/maintain.js.map +1 -1
  23. package/es/network/neighbour.d.ts +8 -4
  24. package/es/network/neighbour.d.ts.map +1 -1
  25. package/es/network/neighbour.js +82 -18
  26. package/es/network/neighbour.js.map +1 -1
  27. package/es/network/neighbourhood.d.ts +1 -1
  28. package/es/network/neighbourhood.d.ts.map +1 -1
  29. package/es/network/neighbourhood.js +39 -42
  30. package/es/network/neighbourhood.js.map +1 -1
  31. package/es/network/p2pClient.d.ts +20 -0
  32. package/es/network/p2pClient.d.ts.map +1 -0
  33. package/es/network/p2pClient.js +84 -0
  34. package/es/network/p2pClient.js.map +1 -0
  35. package/es/network/process.js +99 -65
  36. package/es/network/process.js.map +1 -1
  37. package/es/network/utils.d.ts.map +1 -1
  38. package/es/network/utils.js +17 -21
  39. package/es/network/utils.js.map +1 -1
  40. package/lib/network/cpus.d.ts +1 -0
  41. package/lib/network/cpus.d.ts.map +1 -1
  42. package/lib/network/cpus.js +26 -15
  43. package/lib/network/cpus.js.map +1 -1
  44. package/lib/network/endpoints.d.ts +7 -3
  45. package/lib/network/endpoints.d.ts.map +1 -1
  46. package/lib/network/endpoints.js +684 -171
  47. package/lib/network/endpoints.js.map +1 -1
  48. package/lib/network/home.d.ts.map +1 -1
  49. package/lib/network/home.js +41 -19
  50. package/lib/network/home.js.map +1 -1
  51. package/lib/network/host.d.ts +15 -7
  52. package/lib/network/host.d.ts.map +1 -1
  53. package/lib/network/host.js +630 -239
  54. package/lib/network/host.js.map +1 -1
  55. package/lib/network/locker.d.ts +10 -5
  56. package/lib/network/locker.d.ts.map +1 -1
  57. package/lib/network/locker.js +50 -17
  58. package/lib/network/locker.js.map +1 -1
  59. package/lib/network/maintain.d.ts.map +1 -1
  60. package/lib/network/maintain.js +42 -42
  61. package/lib/network/maintain.js.map +1 -1
  62. package/lib/network/neighbour.d.ts +8 -4
  63. package/lib/network/neighbour.d.ts.map +1 -1
  64. package/lib/network/neighbour.js +82 -18
  65. package/lib/network/neighbour.js.map +1 -1
  66. package/lib/network/neighbourhood.d.ts +1 -1
  67. package/lib/network/neighbourhood.d.ts.map +1 -1
  68. package/lib/network/neighbourhood.js +39 -42
  69. package/lib/network/neighbourhood.js.map +1 -1
  70. package/lib/network/p2pClient.d.ts +20 -0
  71. package/lib/network/p2pClient.d.ts.map +1 -0
  72. package/lib/network/p2pClient.js +88 -0
  73. package/lib/network/p2pClient.js.map +1 -0
  74. package/lib/network/process.js +98 -64
  75. package/lib/network/process.js.map +1 -1
  76. package/lib/network/utils.d.ts.map +1 -1
  77. package/lib/network/utils.js +17 -21
  78. package/lib/network/utils.js.map +1 -1
  79. package/package.json +10 -8
@@ -1 +1 @@
1
- {"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/network/host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/network/host.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,18 @@
1
1
  export declare class Locker {
2
2
  private static cell;
3
3
  private static timer;
4
- static hold(stream: string): boolean;
5
- static hold(stream: string[]): boolean;
6
- static release(stream: string): boolean;
7
- static release(stream: string[]): boolean;
4
+ static has(stream: string): boolean;
5
+ static is(stream: string, umid: string): boolean;
6
+ static hold(stream: string, umid: string): boolean;
7
+ static hold(stream: string[], umid: string): boolean;
8
+ static release(stream: string, umid: string): boolean;
9
+ static release(stream: string[], umid: string): boolean;
8
10
  static checker(): void;
9
11
  static getLocks(): {
10
- [stream: string]: number | boolean;
12
+ [stream: string]: {
13
+ umid: string;
14
+ time: number;
15
+ };
11
16
  };
12
17
  static checkLocks(releaseTime?: number): void;
13
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"locker.d.ts","sourceRoot":"","sources":["../../src/network/locker.ts"],"names":[],"mappings":"AAgCA,qBAAa,MAAM;IAajB,OAAO,CAAC,MAAM,CAAC,IAAI,CAA8C;IASjE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAwB;WAS9B,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;WAC7B,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO;WAqC/B,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;WAChC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO;WAmBlC,OAAO;WAiBP,QAAQ,IAAI;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;KAAE;WAUlD,UAAU,CAAC,WAAW,GAAC,MAA0B;CAYhE"}
1
+ {"version":3,"file":"locker.d.ts","sourceRoot":"","sources":["../../src/network/locker.ts"],"names":[],"mappings":"AAkCA,qBAAa,MAAM;IAgBjB,OAAO,CAAC,MAAM,CAAC,IAAI,CAML;IASd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAwB;WAS9B,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;WAY5B,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;WAezC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;WAC3C,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;WA8D7C,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;WAC9C,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;WA0BhD,OAAO;WAoBP,QAAQ,IAAI;QACxB,CAAC,MAAM,EAAE,MAAM,GAAG;YAChB,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;KACH;WAea,UAAU,CAAC,WAAW,GAAE,MAA0B;CAgBjE"}
@@ -1,38 +1,71 @@
1
- const CHECKER_TIMER = 3 * 1000 * 60;
2
- const AUTO_RELEASE_TIME = 5 * 1000 * 60;
1
+ import { ActiveLogger } from "@activeledger/activelogger";
2
+ const CHECKER_TIMER = 1 * 1000 * 60;
3
+ const AUTO_RELEASE_TIME = 3 * 1000 * 60;
3
4
  export class Locker {
4
- static hold(stream) {
5
+ static cell = new Map();
6
+ static timer;
7
+ static has(stream) {
8
+ return this.cell.has(stream);
9
+ }
10
+ static is(stream, umid) {
11
+ if (this.has(stream)) {
12
+ return this.cell.get(stream).umid === umid;
13
+ }
14
+ return false;
15
+ }
16
+ static hold(stream, umid) {
5
17
  if (Array.isArray(stream)) {
6
18
  let i = stream.length;
7
19
  let success = true;
20
+ const time = Date.now();
8
21
  while (i--) {
9
- if (!Locker.hold(stream[i])) {
10
- success = false;
11
- break;
22
+ if (stream[i].length > 60) {
23
+ if (!this.cell.has(stream[i])) {
24
+ this.cell.set(stream[i], {
25
+ umid,
26
+ time,
27
+ });
28
+ }
29
+ else {
30
+ ActiveLogger.info(`RR - ${umid} - LD - ${this.cell.get(stream[i]).umid}`);
31
+ success = false;
32
+ break;
33
+ }
12
34
  }
13
35
  }
36
+ if (!success) {
37
+ Locker.release(stream, umid);
38
+ }
14
39
  return success;
15
40
  }
16
41
  else {
17
42
  if (stream.length < 60) {
18
43
  return true;
19
44
  }
20
- if (!this.cell[stream]) {
21
- this.cell[stream] = Date.now();
45
+ if (!this.cell.has(stream)) {
46
+ this.cell.set(stream, {
47
+ umid,
48
+ time: Date.now(),
49
+ });
22
50
  return true;
23
51
  }
52
+ ActiveLogger.info(`Lock busy for ${stream}. Held by ${this.cell.get(stream).umid}, requested by ${umid}.`);
24
53
  return false;
25
54
  }
26
55
  }
27
- static release(stream) {
56
+ static release(stream, umid) {
28
57
  if (Array.isArray(stream)) {
29
58
  let i = stream.length;
30
59
  while (i--) {
31
- Locker.release(stream[i]);
60
+ if (this.cell.get(stream[i])?.umid === umid) {
61
+ this.cell.delete(stream[i]);
62
+ }
32
63
  }
33
64
  }
34
65
  else {
35
- delete this.cell[stream];
66
+ if (this.cell.get(stream)?.umid === umid) {
67
+ this.cell.delete(stream);
68
+ }
36
69
  }
37
70
  return true;
38
71
  }
@@ -46,18 +79,18 @@ export class Locker {
46
79
  }
47
80
  }
48
81
  static getLocks() {
49
- return this.cell;
82
+ return Object.fromEntries(this.cell);
50
83
  }
51
84
  static checkLocks(releaseTime = AUTO_RELEASE_TIME) {
52
- const locks = Object.keys(this.cell);
85
+ const locks = Array.from(this.cell.entries());
53
86
  for (let i = locks.length; i--;) {
54
- if (this.cell[locks[i]] &&
55
- Date.now() - this.cell[locks[i]] >= releaseTime) {
56
- Locker.release(locks[i]);
87
+ const [stream, entry] = locks[i];
88
+ if (this.cell.has(stream) && Date.now() - entry.time >= releaseTime) {
89
+ ActiveLogger.warn(`Auto-releasing stuck lock for stream ${stream} held by ${entry.umid}`);
90
+ Locker.release(stream, entry.umid);
57
91
  }
58
92
  }
59
93
  }
60
94
  }
61
- Locker.cell = {};
62
95
  Locker.checker();
63
96
  //# sourceMappingURL=locker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"locker.js","sourceRoot":"","sources":["../../src/network/locker.ts"],"names":[],"mappings":"AAuBA,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;AACpC,MAAM,iBAAiB,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;AAQxC,MAAM,OAAO,MAAM;IAiCV,MAAM,CAAC,IAAI,CAAC,MAAyB;QAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAEzB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;YACtB,IAAI,OAAO,GAAG,IAAI,CAAC;YACnB,OAAO,CAAC,EAAE,EAAE;gBACV,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;oBAE3B,OAAO,GAAG,KAAK,CAAC;oBAChB,MAAM;iBACP;aACF;YAGD,OAAO,OAAO,CAAC;SAChB;aAAM;YAEL,IAAG,MAAM,CAAC,MAAM,GAAG,EAAE,EAAC;gBACpB,OAAO,IAAI,CAAC;aACb;YAGD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC/B,OAAO,IAAI,CAAC;aACb;YACD,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IAUM,MAAM,CAAC,OAAO,CAAC,MAAyB;QAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACzB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;YACtB,OAAO,CAAC,EAAE,EAAE;gBACV,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3B;SACF;aAAM;YACL,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;SACzB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAQM,MAAM,CAAC,OAAO;QACnB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACjB,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC7B,IAAI,CAAC,UAAU,EAAE,CAAC;gBAElB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gBAClB,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,CAAC,EAAE,aAAa,CAAC,CAAC;SACnB;IACH,CAAC;IAQM,MAAM,CAAC,QAAQ;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAQM,MAAM,CAAC,UAAU,CAAC,cAAqB,iBAAiB;QAE7D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,GAAI;YAChC,IACE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,GAAG,EAAE,GAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAY,IAAI,WAAW,EAC3D;gBACA,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aAC1B;SACF;IACH,CAAC;;AAlHc,WAAI,GAA2C,EAAE,CAAC;AAsHnE,MAAM,CAAC,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"locker.js","sourceRoot":"","sources":["../../src/network/locker.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"maintain.d.ts","sourceRoot":"","sources":["../../src/network/maintain.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAW9B,qBAAa,QAAQ;IAQnB,OAAO,CAAC,MAAM,CAAC,cAAc,CAAc;IAQ3C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkB;IAQzC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkB;IAazC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CACqB;IAErD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAO;WAOZ,IAAI,CAAC,IAAI,EAAE,IAAI;WAiBf,WAAW,CAAC,IAAI,GAAE,OAAe;IAiB/C,OAAO,CAAC,MAAM,CAAC,WAAW;IAa1B,OAAO,CAAC,MAAM,CAAC,kBAAkB;WA+BnB,mBAAmB,IAAI,IAAI;mBA8BpB,kBAAkB;IAwDvC,OAAO,CAAC,MAAM,CAAC,OAAO;CAiFvB"}
1
+ {"version":3,"file":"maintain.d.ts","sourceRoot":"","sources":["../../src/network/maintain.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAW9B,qBAAa,QAAQ;IAQnB,OAAO,CAAC,MAAM,CAAC,cAAc,CAAc;IAQ3C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkB;IAQzC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkB;IAazC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CACqB;IAErD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAO;WAOZ,IAAI,CAAC,IAAI,EAAE,IAAI;WAiBf,WAAW,CAAC,IAAI,GAAE,OAAe;IAmB/C,OAAO,CAAC,MAAM,CAAC,WAAW;IAa1B,OAAO,CAAC,MAAM,CAAC,kBAAkB;WA+BnB,mBAAmB,IAAI,IAAI;mBA8BpB,kBAAkB;IAyDvC,OAAO,CAAC,MAAM,CAAC,OAAO;CAmEvB"}
@@ -2,16 +2,24 @@ import { ActiveLogger } from "@activeledger/activelogger";
2
2
  import { Home } from "./home";
3
3
  import { NeighbourStatus } from "./neighbourhood";
4
4
  export class Maintain {
5
+ static neighbourOrder;
6
+ static checking = false;
7
+ static rebasing = false;
8
+ static interval = (20 + Math.floor(Math.random() * 15) + -10) * 1000;
9
+ static home;
5
10
  static init(home) {
6
11
  Maintain.home = home;
7
12
  Maintain.createNetworkOrder();
13
+ Maintain.healthTimer(true);
8
14
  }
9
15
  static healthTimer(boot = false) {
10
16
  setTimeout(() => {
11
17
  Maintain.healthTimer();
12
18
  }, Maintain.getInterval());
13
19
  if (!boot) {
14
- ActiveLogger.debug("Checking Neighbourhood");
20
+ if (Maintain.home && Maintain.home.getStatus() !== NeighbourStatus.Stable) {
21
+ ActiveLogger.debug("Checking Neighbourhood");
22
+ }
15
23
  Maintain.checkNeighbourhood();
16
24
  }
17
25
  }
@@ -40,10 +48,10 @@ export class Maintain {
40
48
  });
41
49
  }
42
50
  static rebaseNeighbourhood() {
43
- ActiveLogger.debug("Rebase Request");
44
51
  if ((!Maintain.rebasing &&
45
52
  Maintain.home.getStatus() == NeighbourStatus.Recognised) ||
46
53
  Maintain.home.getStatus() == NeighbourStatus.Unrecognised) {
54
+ ActiveLogger.debug("Rebase Request");
47
55
  Maintain.rebasing = true;
48
56
  if (Maintain.checking) {
49
57
  ActiveLogger.debug("Waiting to Rebase");
@@ -75,7 +83,6 @@ export class Maintain {
75
83
  })
76
84
  .catch(() => {
77
85
  if (currentRef == Home.reference) {
78
- neighbour.isHome = false;
79
86
  }
80
87
  resolve();
81
88
  });
@@ -90,53 +97,46 @@ export class Maintain {
90
97
  }
91
98
  }
92
99
  static pairing() {
93
- let i = Maintain.neighbourOrder.length;
94
- let whereHomeIs;
95
- let isRight;
96
- let isleft;
97
- while (i--) {
98
- if (Maintain.home.reference == Maintain.neighbourOrder[i].reference) {
99
- whereHomeIs = i;
100
- break;
101
- }
102
- }
103
- if (whereHomeIs == undefined) {
100
+ const order = Maintain.neighbourOrder;
101
+ const orderLength = order.length;
102
+ const homeIndex = order.findIndex((n) => n.reference === Maintain.home.reference);
103
+ if (homeIndex === -1) {
104
104
  Maintain.checking = false;
105
105
  Maintain.rebasing = false;
106
106
  return;
107
107
  }
108
- i = whereHomeIs;
109
- while (!isRight) {
110
- if (++i >= Maintain.neighbourOrder.length)
111
- i = 0;
112
- if (Maintain.neighbourOrder[i] &&
113
- !Maintain.neighbourOrder[i].graceStop &&
114
- Maintain.neighbourOrder[i].isHome)
115
- isRight = Maintain.neighbourOrder[i];
116
- if (!Maintain.neighbourOrder[i])
117
- return;
118
- }
119
- i = whereHomeIs;
120
- while (!isleft) {
121
- if (--i == -1)
122
- i = Maintain.neighbourOrder.length - 1;
123
- if (Maintain.neighbourOrder[i] &&
124
- !Maintain.neighbourOrder[i].graceStop &&
125
- Maintain.neighbourOrder[i].isHome)
126
- isleft = Maintain.neighbourOrder[i];
127
- if (!Maintain.neighbourOrder[i])
128
- return;
108
+ let isRight;
109
+ let isLeft;
110
+ for (let i = 1; i < orderLength; i++) {
111
+ if (!isRight) {
112
+ const rightIndex = (homeIndex + i) % orderLength;
113
+ const potentialRight = order[rightIndex];
114
+ if (potentialRight && !potentialRight.graceStop && potentialRight.isHome) {
115
+ isRight = potentialRight;
116
+ }
117
+ }
118
+ if (!isLeft) {
119
+ const leftIndex = (homeIndex - i + orderLength) % orderLength;
120
+ const potentialLeft = order[leftIndex];
121
+ if (potentialLeft && !potentialLeft.graceStop && potentialLeft.isHome) {
122
+ isLeft = potentialLeft;
123
+ }
124
+ }
125
+ if (isRight && isLeft)
126
+ break;
129
127
  }
130
- if (Home.left.reference != isleft.reference ||
131
- Home.right.reference != isRight.reference) {
132
- ActiveLogger.debug({ left: isleft.reference, right: isRight.reference }, "New Neighbour Update");
133
- Maintain.home.setNeighbours(isleft.reference, isRight.reference);
128
+ if ((isLeft && Home.left.reference != isLeft.reference) ||
129
+ Home.right.reference != isRight?.reference) {
130
+ ActiveLogger.debug({ left: isLeft?.reference, right: isRight?.reference }, "New Neighbour Update");
131
+ try {
132
+ Maintain.home.setNeighbours(isLeft?.reference || null, isRight?.reference || null);
133
+ }
134
+ catch {
135
+ ActiveLogger.fatal("Problem setting Right, Try again next loop");
136
+ }
134
137
  }
135
138
  Maintain.checking = false;
136
139
  Maintain.rebasing = false;
137
140
  }
138
141
  }
139
- Maintain.checking = false;
140
- Maintain.rebasing = false;
141
- Maintain.interval = (20 + Math.floor(Math.random() * 15) + -10) * 1000;
142
142
  //# sourceMappingURL=maintain.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"maintain.js","sourceRoot":"","sources":["../../src/network/maintain.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAUlD,MAAM,OAAO,QAAQ;IA+CZ,MAAM,CAAC,IAAI,CAAC,IAAU;QAE3B,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;QAGrB,QAAQ,CAAC,kBAAkB,EAAE,CAAC;IAIhC,CAAC;IAQM,MAAM,CAAC,WAAW,CAAC,OAAgB,KAAK;QAC7C,UAAU,CAAC,GAAG,EAAE;YACd,QAAQ,CAAC,WAAW,EAAE,CAAC;QACzB,CAAC,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,EAAE;YACT,YAAY,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC7C,QAAQ,CAAC,kBAAkB,EAAE,CAAC;SAC/B;IACH,CAAC;IASO,MAAM,CAAC,WAAW;QACxB,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,eAAe,CAAC,MAAM,EAAE;YACvD,OAAO,GAAG,CAAC;SACZ;aAAM;YACL,OAAO,QAAQ,CAAC,QAAQ,CAAC;SAC1B;IACH,CAAC;IAOO,MAAM,CAAC,kBAAkB;QAE/B,IAAI,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;QAGnD,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC9C,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QAGpB,IAAI,SAAS,GAAgB,EAAE,CAAC;QAGhC,OAAO,CAAC,EAAE,EAAE;YAEV,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE;gBAClC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACrC;SACF;QAGD,QAAQ,CAAC,cAAc,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAU,EAAE;YACxD,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS;gBAAE,OAAO,CAAC,CAAC;YACxC,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC;IAOM,MAAM,CAAC,mBAAmB;QAE/B,YAAY,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACrC,IACE,CAAC,CAAC,QAAQ,CAAC,QAAQ;YACjB,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,eAAe,CAAC,UAAU,CAAC;YAC1D,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,eAAe,CAAC,YAAY,EACzD;YACA,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;YAEzB,IAAI,QAAQ,CAAC,QAAQ,EAAE;gBACrB,YAAY,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBACxC,UAAU,CAAC,GAAG,EAAE;oBACd,QAAQ,CAAC,mBAAmB,EAAE,CAAC;gBACjC,CAAC,EAAE,IAAI,CAAC,CAAC;aACV;iBAAM;gBACL,YAAY,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBACtC,QAAQ,CAAC,kBAAkB,EAAE,CAAC;gBAC9B,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;aAC3B;SACF;IACH,CAAC;IASO,MAAM,CAAC,KAAK,CAAC,kBAAkB,CACrC,QAAiB,KAAK;QAEtB,IAAI,QAAQ,CAAC,QAAQ,IAAI,CAAC,KAAK;YAAE,OAAO;QAGxC,IAAI,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAGhC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;QAGzB,MAAM,OAAO,CAAC,GAAG,CACf,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,SAAoB,EAAE,EAAE;YACnD,OAAO,IAAI,OAAO,CAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;gBACjD,SAAS;qBACN,KAAK,CAAC,QAAQ,CAAC;qBACf,IAAI,CAAC,GAAG,EAAE;oBAET,IAAI,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE;wBAEhC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;qBACzB;oBAED,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC;qBACD,KAAK,CAAC,GAAG,EAAE;oBAEV,IAAI,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE;wBAEhC,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC;qBAC1B;oBAED,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CACH,CAAC;QAGF,IAAI,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE;YAChC,QAAQ,CAAC,OAAO,EAAE,CAAC;SACpB;aAAM;YACL,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;YAC1B,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;SAC3B;IACH,CAAC;IAUO,MAAM,CAAC,OAAO;QAEpB,IAAI,CAAC,GAAW,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC;QAI/C,IAAI,WAA+B,CAAC;QAIpC,IAAI,OAA8B,CAAC;QACnC,IAAI,MAA6B,CAAC;QAGlC,OAAO,CAAC,EAAE,EAAE;YAEV,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE;gBACnE,WAAW,GAAG,CAAC,CAAC;gBAChB,MAAM;aACP;SACF;QAID,IAAI,WAAW,IAAI,SAAS,EAAE;YAE5B,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;YAC1B,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;YAC1B,OAAO;SACR;QAGD,CAAC,GAAG,WAAqB,CAAC;QAC1B,OAAO,CAAC,OAAO,EAAE;YAEf,IAAI,EAAE,CAAC,IAAI,QAAQ,CAAC,cAAc,CAAC,MAAM;gBAAE,CAAC,GAAG,CAAC,CAAC;YAEjD,IACE,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;gBAC1B,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS;gBACrC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM;gBAEjC,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YAGvC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;gBAAE,OAAO;SACzC;QAGD,CAAC,GAAG,WAAqB,CAAC;QAC1B,OAAO,CAAC,MAAM,EAAE;YAEd,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;gBAAE,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;YAEtD,IACE,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;gBAC1B,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS;gBACrC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM;gBAEjC,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YAGtC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;gBAAE,OAAO;SACzC;QAED,IACE,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS;YACvC,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,EACzC;YAEA,YAAY,CAAC,KAAK,CAChB,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,EACpD,sBAAsB,CACvB,CAAC;YACF,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;SAClE;QAGD,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC1B,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC5B,CAAC;;AAnRc,iBAAQ,GAAY,KAAK,CAAC;AAQ1B,iBAAQ,GAAY,KAAK,CAAC;AAajB,iBAAQ,GAC9B,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"maintain.js","sourceRoot":"","sources":["../../src/network/maintain.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
1
  import { ActiveCrypto } from "@activeledger/activecrypto";
2
2
  import { ActiveDefinitions } from "@activeledger/activedefinitions";
3
+ import { P2PClient } from "./p2pClient";
3
4
  export declare class Neighbour implements ActiveDefinitions.INeighbourBase {
4
- protected host: string;
5
- protected port: number;
5
+ host: string;
6
+ port: number;
6
7
  isHome: boolean;
7
- private identity?;
8
+ identity?: ActiveCrypto.KeyPair | undefined;
9
+ p2pClient: P2PClient;
8
10
  reference: string;
9
11
  graceStop: boolean;
10
12
  constructor(host: string, port: number, isHome?: boolean, identity?: ActiveCrypto.KeyPair | undefined);
@@ -13,7 +15,9 @@ export declare class Neighbour implements ActiveDefinitions.INeighbourBase {
13
15
  port: number;
14
16
  };
15
17
  verifySignature(signature: string, data: string): boolean;
16
- knock(endpoint: string, params?: any, external?: boolean, resend?: number): Promise<any>;
18
+ private bundle;
19
+ private nextSend;
20
+ knock(endpoint: string, params?: any, external?: boolean, resend?: number, bundle?: boolean): Promise<any>;
17
21
  encryptKnock(data: any, encrypted?: boolean): any;
18
22
  }
19
23
  //# sourceMappingURL=neighbour.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"neighbour.d.ts","sourceRoot":"","sources":["../../src/network/neighbour.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAUpE,qBAAa,SAAU,YAAW,iBAAiB,CAAC,cAAc;IAsB9D,SAAS,CAAC,IAAI,EAAE,MAAM;IACtB,SAAS,CAAC,IAAI,EAAE,MAAM;IACf,MAAM,EAAE,OAAO;IACtB,OAAO,CAAC,QAAQ,CAAC;IAlBZ,SAAS,EAAE,MAAM,CAAC;IAOlB,SAAS,EAAE,OAAO,CAAS;gBAQtB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACf,MAAM,GAAE,OAAe,EACtB,QAAQ,CAAC,kCAAsB;IAqBlC,UAAU,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAc5C,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAiBzD,KAAK,CACV,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,GAAG,EACZ,QAAQ,CAAC,EAAE,OAAO,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,GAAG,CAAC;IAmHR,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,GAAE,OAAe,GAAG,GAAG;CAahE"}
1
+ {"version":3,"file":"neighbour.d.ts","sourceRoot":"","sources":["../../src/network/neighbour.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAIpE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAQxC,qBAAa,SAAU,YAAW,iBAAiB,CAAC,cAAc;IA6BvD,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,OAAO;IACf,QAAQ,CAAC;IA1BX,SAAS,EAAE,SAAS,CAAC;IAQrB,SAAS,EAAE,MAAM,CAAC;IAOlB,SAAS,EAAE,OAAO,CAAS;gBAQzB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,OAAe,EACvB,QAAQ,CAAC,kCAAsB;IA0BjC,UAAU,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAc5C,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAYhE,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,QAAQ,CAAwB;IAY3B,KAAK,CAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,GAAG,EACZ,QAAQ,CAAC,EAAE,OAAO,EAClB,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,GAAG,CAAC;IAoLR,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,GAAE,OAAe,GAAG,GAAG;CAahE"}