@activeledger/activenetwork 4.3.4 → 4.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,11 +3,16 @@ export declare class Maintain {
3
3
  private static neighbourOrder;
4
4
  private static checking;
5
5
  private static rebasing;
6
+ private static lastPairedLeft;
7
+ private static lastPairedRight;
6
8
  private static readonly interval;
7
9
  private static home;
10
+ private static timerActive;
8
11
  static init(home: Home): void;
9
12
  static healthTimer(boot?: boolean): void;
13
+ private static allNeighboursDiscovered;
10
14
  private static getInterval;
15
+ static pairNow(): void;
11
16
  private static createNetworkOrder;
12
17
  static rebaseNeighbourhood(): void;
13
18
  private static checkNeighbourhood;
@@ -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;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"}
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,cAAc,CAAuB;IACpD,OAAO,CAAC,MAAM,CAAC,eAAe,CAAuB;IAarD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CACqB;IAErD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAO;IAgB1B,OAAO,CAAC,MAAM,CAAC,WAAW,CAAkB;WAO9B,IAAI,CAAC,IAAI,EAAE,IAAI;WAiCf,WAAW,CAAC,IAAI,GAAE,OAAe;IA2C/C,OAAO,CAAC,MAAM,CAAC,uBAAuB;IA2BtC,OAAO,CAAC,MAAM,CAAC,WAAW;WAkBZ,OAAO,IAAI,IAAI;IAS7B,OAAO,CAAC,MAAM,CAAC,kBAAkB;WA+BnB,mBAAmB,IAAI,IAAI;mBA8BpB,kBAAkB;IAyDvC,OAAO,CAAC,MAAM,CAAC,OAAO;CA+EvB"}
@@ -5,32 +5,53 @@ export class Maintain {
5
5
  static neighbourOrder;
6
6
  static checking = false;
7
7
  static rebasing = false;
8
+ static lastPairedLeft = null;
9
+ static lastPairedRight = null;
8
10
  static interval = (20 + Math.floor(Math.random() * 15) + -10) * 1000;
9
11
  static home;
12
+ static timerActive = false;
10
13
  static init(home) {
11
14
  Maintain.home = home;
12
15
  Maintain.createNetworkOrder();
13
16
  Maintain.healthTimer(true);
14
17
  }
15
18
  static healthTimer(boot = false) {
19
+ if (boot) {
20
+ if (Maintain.timerActive) {
21
+ return;
22
+ }
23
+ Maintain.timerActive = true;
24
+ }
25
+ if (Maintain.allNeighboursDiscovered()) {
26
+ const home = Maintain.neighbourOrder.filter((n) => n.isHome).length;
27
+ const leaving = Maintain.neighbourOrder.filter((n) => n.graceStop).length;
28
+ ActiveLogger.info(`Neighbourhood fully discovered (${home} home, ${leaving} leaving, ${Maintain.neighbourOrder.length} configured) - routine polling stopped, health now tracked reactively`);
29
+ Maintain.timerActive = false;
30
+ return;
31
+ }
16
32
  setTimeout(() => {
17
33
  Maintain.healthTimer();
18
34
  }, Maintain.getInterval());
19
35
  if (!boot) {
20
- if (Maintain.home && Maintain.home.getStatus() !== NeighbourStatus.Stable) {
21
- ActiveLogger.debug("Checking Neighbourhood");
22
- }
36
+ ActiveLogger.debug("Checking Neighbourhood");
23
37
  Maintain.checkNeighbourhood();
24
38
  }
25
39
  }
40
+ static allNeighboursDiscovered() {
41
+ return (!!Maintain.neighbourOrder &&
42
+ Maintain.neighbourOrder.every((neighbour) => neighbour.isHome || neighbour.graceStop));
43
+ }
26
44
  static getInterval() {
27
- if (Maintain.home.getStatus() != NeighbourStatus.Stable) {
45
+ if (!Maintain.allNeighboursDiscovered()) {
28
46
  return 300;
29
47
  }
30
48
  else {
31
49
  return Maintain.interval;
32
50
  }
33
51
  }
52
+ static pairNow() {
53
+ Maintain.pairing();
54
+ }
34
55
  static createNetworkOrder() {
35
56
  let neighbours = Maintain.home.neighbourhood.get();
36
57
  let keys = Maintain.home.neighbourhood.keys();
@@ -82,8 +103,6 @@ export class Maintain {
82
103
  resolve();
83
104
  })
84
105
  .catch(() => {
85
- if (currentRef == Home.reference) {
86
- }
87
106
  resolve();
88
107
  });
89
108
  });
@@ -125,11 +144,14 @@ export class Maintain {
125
144
  if (isRight && isLeft)
126
145
  break;
127
146
  }
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");
147
+ const leftRef = isLeft?.reference ?? null;
148
+ const rightRef = isRight?.reference ?? null;
149
+ if (leftRef !== Maintain.lastPairedLeft || rightRef !== Maintain.lastPairedRight) {
150
+ Maintain.lastPairedLeft = leftRef;
151
+ Maintain.lastPairedRight = rightRef;
152
+ ActiveLogger.info(`Left/right neighbour update - left=${isLeft ? `${isLeft.host}:${isLeft.port}` : "none"} right=${isRight ? `${isRight.host}:${isRight.port}` : "none"}`);
131
153
  try {
132
- Maintain.home.setNeighbours(isLeft?.reference || null, isRight?.reference || null);
154
+ Maintain.home.setNeighbours(leftRef, rightRef);
133
155
  }
134
156
  catch {
135
157
  ActiveLogger.fatal("Problem setting Right, Try again next loop");
@@ -1 +1 @@
1
- {"version":3,"file":"maintain.js","sourceRoot":"","sources":["../../src/network/maintain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"maintain.js","sourceRoot":"","sources":["../../src/network/maintain.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ export declare class Neighbour implements ActiveDefinitions.INeighbourBase {
9
9
  p2pClient: P2PClient;
10
10
  reference: string;
11
11
  graceStop: boolean;
12
+ private recovering;
12
13
  constructor(host: string, port: number, isHome?: boolean, identity?: ActiveCrypto.KeyPair | undefined);
13
14
  getAddress(): {
14
15
  host: string;
@@ -18,6 +19,9 @@ export declare class Neighbour implements ActiveDefinitions.INeighbourBase {
18
19
  private bundle;
19
20
  private nextSend;
20
21
  knock(endpoint: string, params?: any, external?: boolean, resend?: number, bundle?: boolean): Promise<any>;
22
+ private markUnavailable;
23
+ private ensureMonitored;
24
+ private recoveryCheck;
21
25
  encryptKnock(data: any, encrypted?: boolean): any;
22
26
  }
23
27
  //# 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;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"}
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;AAexC,qBAAa,SAAU,YAAW,iBAAiB,CAAC,cAAc;IAyCvD,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,OAAO;IACf,QAAQ,CAAC;IAtCX,SAAS,EAAE,SAAS,CAAC;IAQrB,SAAS,EAAE,MAAM,CAAC;IAOlB,SAAS,EAAE,OAAO,CAAS;IAYlC,OAAO,CAAC,UAAU,CAAkB;gBAQ3B,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;IA2Nf,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,aAAa;IA+Bd,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,GAAE,OAAe,GAAG,GAAG;CAahE"}
@@ -5,6 +5,8 @@ import { ActiveClone } from "@activeledger/activeutilities";
5
5
  import { Home } from "./home";
6
6
  import { Neighbourhood } from "./neighbourhood";
7
7
  import { P2PClient } from "./p2pClient";
8
+ import { Maintain } from "./maintain";
9
+ const RECOVERY_CHECK_INTERVAL = 3 * 1000;
8
10
  export class Neighbour {
9
11
  host;
10
12
  port;
@@ -13,6 +15,7 @@ export class Neighbour {
13
15
  p2pClient;
14
16
  reference;
15
17
  graceStop = false;
18
+ recovering = false;
16
19
  constructor(host, port, isHome = false, identity) {
17
20
  this.host = host;
18
21
  this.port = port;
@@ -60,7 +63,14 @@ export class Neighbour {
60
63
  if (!params) {
61
64
  return new Promise((resolve, reject) => {
62
65
  ActiveRequest.send(`http://${this.host}:${this.port}/a/${endpoint}`, "GET", ["X-Activeledger:" + Home.reference], null, false, 60)
63
- .then(resolve)
66
+ .then((response) => {
67
+ if (response?.data === null) {
68
+ reject(new Error("Request Failed"));
69
+ }
70
+ else {
71
+ resolve(response);
72
+ }
73
+ })
64
74
  .catch(reject);
65
75
  });
66
76
  }
@@ -90,12 +100,20 @@ export class Neighbour {
90
100
  extraHeader,
91
101
  ], postData, ActiveOptions.get("gzip", true), 60)
92
102
  .then((response) => {
93
- if (!bundle) {
94
- if (response.data?.$enc && response.data.$packet) {
95
- response.data = JSON.parse(Buffer.from(Home.identity.decrypt(response.data.$packet), "base64").toString());
103
+ if (bundle) {
104
+ if (response?.data === null) {
105
+ this.markUnavailable();
106
+ reject(new Error("Bundled Request Failed"));
107
+ }
108
+ else {
109
+ resolve({ ok: 1 });
96
110
  }
97
- resolve(response);
111
+ return;
112
+ }
113
+ if (response.data?.$enc && response.data.$packet) {
114
+ response.data = JSON.parse(Buffer.from(Home.identity.decrypt(response.data.$packet), "base64").toString());
98
115
  }
116
+ resolve(response);
99
117
  })
100
118
  .catch((error) => {
101
119
  if (error && error.response && error.response.data) {
@@ -110,6 +128,7 @@ export class Neighbour {
110
128
  }
111
129
  else {
112
130
  ActiveLogger.fatal(error, `Network Error - ${this.host}:${this.port}/${endpoint}`);
131
+ this.markUnavailable();
113
132
  if (extraHeader !== "X-Bundle: 1") {
114
133
  reject("Network Communication Error");
115
134
  }
@@ -156,6 +175,40 @@ export class Neighbour {
156
175
  }
157
176
  }
158
177
  }
178
+ markUnavailable() {
179
+ if (!this.isHome || this.graceStop) {
180
+ return;
181
+ }
182
+ this.isHome = false;
183
+ ActiveLogger.warn(`Neighbour unavailable, starting recovery checks: ${this.host}:${this.port}`);
184
+ Maintain.pairNow();
185
+ this.ensureMonitored();
186
+ }
187
+ ensureMonitored() {
188
+ if (this.isHome || this.recovering || this.graceStop) {
189
+ return;
190
+ }
191
+ this.recovering = true;
192
+ this.recoveryCheck();
193
+ }
194
+ recoveryCheck() {
195
+ setTimeout(() => {
196
+ if (this.graceStop) {
197
+ this.recovering = false;
198
+ return;
199
+ }
200
+ this.knock("status")
201
+ .then(() => {
202
+ this.isHome = true;
203
+ this.recovering = false;
204
+ ActiveLogger.info(`Neighbour recovered: ${this.host}:${this.port}`);
205
+ Maintain.pairNow();
206
+ })
207
+ .catch(() => {
208
+ this.recoveryCheck();
209
+ });
210
+ }, RECOVERY_CHECK_INTERVAL);
211
+ }
159
212
  encryptKnock(data, encrypted = false) {
160
213
  if (this.reference !== Home.reference &&
161
214
  this.identity &&
@@ -1 +1 @@
1
- {"version":3,"file":"neighbour.js","sourceRoot":"","sources":["../../src/network/neighbour.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"neighbour.js","sourceRoot":"","sources":["../../src/network/neighbour.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAMtC,MAAM,uBAAuB,GAAG,CAAC,GAAG,IAAI,CAAC;AAQzC,MAAM,OAAO,SAAS;IAyCX;IACA;IACA;IACA;IAtCF,SAAS,CAAY;IAQrB,SAAS,CAAS;IAOlB,SAAS,GAAY,KAAK,CAAC;IAY1B,UAAU,GAAY,KAAK,CAAC;IAOpC,YACS,IAAY,EACZ,IAAY,EACZ,SAAkB,KAAK,EACvB,QAA+B;QAH/B,SAAI,GAAJ,IAAI,CAAQ;QACZ,SAAI,GAAJ,IAAI,CAAQ;QACZ,WAAM,GAAN,MAAM,CAAiB;QACvB,aAAQ,GAAR,QAAQ,CAAuB;QAEtC,IAAI,aAAa,CAAC,GAAG,CAAU,WAAW,EAAE,KAAK,CAAC,EAAE;YAClD,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;YAC/C,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;SAC1B;QAED,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CACxC,IAAI,GAAG,IAAI,GAAG,aAAa,CAAC,GAAG,CAAS,SAAS,EAAE,EAAE,CAAC,EACtD,MAAM,CACP,CAAC;QAGF,IACE,aAAa,CAAC,WAAW;YACzB,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EACzC;YACA,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC5D;IACH,CAAC;IAOM,UAAU;QACf,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;IACJ,CAAC;IASM,eAAe,CAAC,SAAiB,EAAE,IAAY;QACpD,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;SAC9C;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAOO,MAAM,GAAa,EAAE,CAAC;IACtB,QAAQ,CAAwB;IAYjC,KAAK,CAAC,KAAK,CAChB,QAAgB,EAChB,MAAY,EACZ,QAAkB,EAClB,MAAe,EACf,MAAgB;QAGhB,IACE,MAAM;YACN,CAAC,QAAQ;YACT,IAAI,CAAC,SAAS;YACd,IAAI,CAAC,SAAS,CAAC,KAAK;YACpB,aAAa,CAAC,GAAG,CAAU,WAAW,EAAE,KAAK,CAAC;YAC9C,QAAQ,KAAK,MAAM,EACnB;YAEA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,WAAW,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACtG,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;SACnC;aAAM;YAEL,IAAI,QAAQ,KAAK,aAAa,EAAE;gBAC9B,QAAQ,GAAG,MAAM,CAAA;aAClB;SACF;QAGD,IAAI,CAAC,MAAM,EAAE;YAEX,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,aAAa,CAAC,IAAI,CAChB,UAAU,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,MAAM,QAAQ,EAAE,EAChD,KAAK,EACL,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,EACpC,IAAI,EACJ,KAAK,EACL,EAAE,CACH;qBACE,IAAI,CAAC,CAAC,QAAa,EAAE,EAAE;oBAOtB,IAAI,QAAQ,EAAE,IAAI,KAAK,IAAI,EAAE;wBAC3B,MAAM,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;qBACrC;yBAAM;wBACL,OAAO,CAAC,QAAQ,CAAC,CAAC;qBACnB;gBACH,CAAC,CAAC;qBACD,KAAK,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC,CAAC,CAAC;SACJ;aAAM;YAEL,IAAI,GAAW,CAAC;YAChB,IAAI,IAAS,CAAC;YAGd,IAAI,QAAQ,EAAE;gBAEZ,GAAG,GAAG,UAAU,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAGrD,IAAI,GAAG,MAAM,CAAC;aACf;iBAAM;gBACL,GAAG,GAAG,UAAU,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,MAAM,QAAQ,EAAE,CAAC;gBAGvD,IAAI,GAAG;oBACL,UAAU,EAAE;wBACV,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC;qBAC7C;oBACD,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;oBACnD,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;iBACrC,CAAC;aACH;YAOD,MAAM,MAAM,GAAG,CAAC,QAAgB,EAAE,WAAmB,EAAE,EAAE,CACvD,IAAI,OAAO,CAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACnC,IAAI,OAAO,GAAG,CAAC,QAAgB,EAAE,EAAE;oBACjC,aAAa,CAAC,IAAI,CAChB,GAAG,EACH,MAAM,EACN;wBACE,iBAAiB,GAAG,IAAI,CAAC,SAAS;wBAClC,gCAAgC;wBAChC,WAAW;qBACZ,EACD,QAAQ,EACR,aAAa,CAAC,GAAG,CAAU,MAAM,EAAE,IAAI,CAAC,EACxC,EAAE,CACH;yBACE,IAAI,CAAC,CAAC,QAAa,EAAE,EAAE;wBACtB,IAAI,MAAM,EAAE;4BAUV,IAAI,QAAQ,EAAE,IAAI,KAAK,IAAI,EAAE;gCAC3B,IAAI,CAAC,eAAe,EAAE,CAAC;gCACvB,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;6BAC7C;iCAAM;gCACL,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;6BACpB;4BACD,OAAO;yBACR;wBACD,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE;4BAChD,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CACxB,MAAM,CAAC,IAAI,CACT,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAC5C,QAAQ,CACT,CAAC,QAAQ,EAAE,CACb,CAAC;yBACH;wBACD,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACpB,CAAC,CAAC;yBACD,KAAK,CAAC,CAAC,KAAU,EAAE,EAAE;wBAKpB,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE;4BAClD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;yBAC7B;6BAAM;4BACL,IACE,MAAM;gCACN,MAAM,IAAI,QAAQ;gCAClB,KAAK,CAAC,IAAI,IAAI,YAAY,EAC1B;gCAEA,YAAY,CAAC,IAAI,CACf,2DAA2D,CAC5D,CAAC;gCACF,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;6BACrB;iCAAM;gCACL,YAAY,CAAC,KAAK,CAChB,KAAK,EACL,mBAAmB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE,CACxD,CAAC;gCAQF,IAAI,CAAC,eAAe,EAAE,CAAC;gCACvB,IAAI,WAAW,KAAK,aAAa,EAAE;oCACjC,MAAM,CAAC,6BAA6B,CAAC,CAAC;iCACvC;qCAAM;oCACL,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;iCACpB;6BACF;yBACF;oBACH,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC;gBAEF,OAAO,CAAC,CAAC,CAAC,CAAC;YACb,CAAC,CAAC,CAAC;YAOL,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;gBAEvC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE;oBAE7B,IAAI,IAAI,CAAC,QAAQ,EAAE;wBACjB,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;qBACtB;oBAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACxD,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;oBACjB,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;wBACxC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;oBACtC,CAAC,CAAC,CAAC;iBACJ;qBAAM;oBACL,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;wBAClB,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE;4BAC9B,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gCAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gCACrB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gCAExD,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;gCAEjB,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;oCACxC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gCACtC,CAAC,CAAC,CAAC;6BACJ;wBACH,CAAC,EAAE,CAAC,CAAC,CAAC;qBACP;iBAGF;gBACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;aAC1B;iBAAM;gBACL,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;aAC/D;SACF;IACH,CAAC;IAUO,eAAe;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE;YAClC,OAAO;SACR;QACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,YAAY,CAAC,IAAI,CACf,oDAAoD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAC7E,CAAC;QAIF,QAAQ,CAAC,OAAO,EAAE,CAAC;QACnB,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAQO,eAAe;QACrB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE;YACpD,OAAO;SACR;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAUO,aAAa;QACnB,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,OAAO;aACR;YACD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;iBACjB,IAAI,CAAC,GAAG,EAAE;gBACT,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,YAAY,CAAC,IAAI,CACf,wBAAwB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CACjD,CAAC;gBAEF,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrB,CAAC,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE;gBAEV,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,CAAC,CAAC,CAAC;QACP,CAAC,EAAE,uBAAuB,CAAC,CAAC;IAC9B,CAAC;IAUM,YAAY,CAAC,IAAS,EAAE,YAAqB,KAAK;QAIvD,IACE,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS;YACjC,IAAI,CAAC,QAAQ;YACb,CAAC,SAAS,IAAI,aAAa,CAAC,GAAG,CAAM,UAAU,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,EACxE;YACA,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACpC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -3,11 +3,16 @@ export declare class Maintain {
3
3
  private static neighbourOrder;
4
4
  private static checking;
5
5
  private static rebasing;
6
+ private static lastPairedLeft;
7
+ private static lastPairedRight;
6
8
  private static readonly interval;
7
9
  private static home;
10
+ private static timerActive;
8
11
  static init(home: Home): void;
9
12
  static healthTimer(boot?: boolean): void;
13
+ private static allNeighboursDiscovered;
10
14
  private static getInterval;
15
+ static pairNow(): void;
11
16
  private static createNetworkOrder;
12
17
  static rebaseNeighbourhood(): void;
13
18
  private static checkNeighbourhood;
@@ -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;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"}
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,cAAc,CAAuB;IACpD,OAAO,CAAC,MAAM,CAAC,eAAe,CAAuB;IAarD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CACqB;IAErD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAO;IAgB1B,OAAO,CAAC,MAAM,CAAC,WAAW,CAAkB;WAO9B,IAAI,CAAC,IAAI,EAAE,IAAI;WAiCf,WAAW,CAAC,IAAI,GAAE,OAAe;IA2C/C,OAAO,CAAC,MAAM,CAAC,uBAAuB;IA2BtC,OAAO,CAAC,MAAM,CAAC,WAAW;WAkBZ,OAAO,IAAI,IAAI;IAS7B,OAAO,CAAC,MAAM,CAAC,kBAAkB;WA+BnB,mBAAmB,IAAI,IAAI;mBA8BpB,kBAAkB;IAyDvC,OAAO,CAAC,MAAM,CAAC,OAAO;CA+EvB"}
@@ -8,32 +8,53 @@ class Maintain {
8
8
  static neighbourOrder;
9
9
  static checking = false;
10
10
  static rebasing = false;
11
+ static lastPairedLeft = null;
12
+ static lastPairedRight = null;
11
13
  static interval = (20 + Math.floor(Math.random() * 15) + -10) * 1000;
12
14
  static home;
15
+ static timerActive = false;
13
16
  static init(home) {
14
17
  Maintain.home = home;
15
18
  Maintain.createNetworkOrder();
16
19
  Maintain.healthTimer(true);
17
20
  }
18
21
  static healthTimer(boot = false) {
22
+ if (boot) {
23
+ if (Maintain.timerActive) {
24
+ return;
25
+ }
26
+ Maintain.timerActive = true;
27
+ }
28
+ if (Maintain.allNeighboursDiscovered()) {
29
+ const home = Maintain.neighbourOrder.filter((n) => n.isHome).length;
30
+ const leaving = Maintain.neighbourOrder.filter((n) => n.graceStop).length;
31
+ activelogger_1.ActiveLogger.info(`Neighbourhood fully discovered (${home} home, ${leaving} leaving, ${Maintain.neighbourOrder.length} configured) - routine polling stopped, health now tracked reactively`);
32
+ Maintain.timerActive = false;
33
+ return;
34
+ }
19
35
  setTimeout(() => {
20
36
  Maintain.healthTimer();
21
37
  }, Maintain.getInterval());
22
38
  if (!boot) {
23
- if (Maintain.home && Maintain.home.getStatus() !== neighbourhood_1.NeighbourStatus.Stable) {
24
- activelogger_1.ActiveLogger.debug("Checking Neighbourhood");
25
- }
39
+ activelogger_1.ActiveLogger.debug("Checking Neighbourhood");
26
40
  Maintain.checkNeighbourhood();
27
41
  }
28
42
  }
43
+ static allNeighboursDiscovered() {
44
+ return (!!Maintain.neighbourOrder &&
45
+ Maintain.neighbourOrder.every((neighbour) => neighbour.isHome || neighbour.graceStop));
46
+ }
29
47
  static getInterval() {
30
- if (Maintain.home.getStatus() != neighbourhood_1.NeighbourStatus.Stable) {
48
+ if (!Maintain.allNeighboursDiscovered()) {
31
49
  return 300;
32
50
  }
33
51
  else {
34
52
  return Maintain.interval;
35
53
  }
36
54
  }
55
+ static pairNow() {
56
+ Maintain.pairing();
57
+ }
37
58
  static createNetworkOrder() {
38
59
  let neighbours = Maintain.home.neighbourhood.get();
39
60
  let keys = Maintain.home.neighbourhood.keys();
@@ -85,8 +106,6 @@ class Maintain {
85
106
  resolve();
86
107
  })
87
108
  .catch(() => {
88
- if (currentRef == home_1.Home.reference) {
89
- }
90
109
  resolve();
91
110
  });
92
111
  });
@@ -128,11 +147,14 @@ class Maintain {
128
147
  if (isRight && isLeft)
129
148
  break;
130
149
  }
131
- if ((isLeft && home_1.Home.left.reference != isLeft.reference) ||
132
- home_1.Home.right.reference != isRight?.reference) {
133
- activelogger_1.ActiveLogger.debug({ left: isLeft?.reference, right: isRight?.reference }, "New Neighbour Update");
150
+ const leftRef = isLeft?.reference ?? null;
151
+ const rightRef = isRight?.reference ?? null;
152
+ if (leftRef !== Maintain.lastPairedLeft || rightRef !== Maintain.lastPairedRight) {
153
+ Maintain.lastPairedLeft = leftRef;
154
+ Maintain.lastPairedRight = rightRef;
155
+ activelogger_1.ActiveLogger.info(`Left/right neighbour update - left=${isLeft ? `${isLeft.host}:${isLeft.port}` : "none"} right=${isRight ? `${isRight.host}:${isRight.port}` : "none"}`);
134
156
  try {
135
- Maintain.home.setNeighbours(isLeft?.reference || null, isRight?.reference || null);
157
+ Maintain.home.setNeighbours(leftRef, rightRef);
136
158
  }
137
159
  catch {
138
160
  activelogger_1.ActiveLogger.fatal("Problem setting Right, Try again next loop");
@@ -1 +1 @@
1
- {"version":3,"file":"maintain.js","sourceRoot":"","sources":["../../src/network/maintain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"maintain.js","sourceRoot":"","sources":["../../src/network/maintain.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ export declare class Neighbour implements ActiveDefinitions.INeighbourBase {
9
9
  p2pClient: P2PClient;
10
10
  reference: string;
11
11
  graceStop: boolean;
12
+ private recovering;
12
13
  constructor(host: string, port: number, isHome?: boolean, identity?: ActiveCrypto.KeyPair | undefined);
13
14
  getAddress(): {
14
15
  host: string;
@@ -18,6 +19,9 @@ export declare class Neighbour implements ActiveDefinitions.INeighbourBase {
18
19
  private bundle;
19
20
  private nextSend;
20
21
  knock(endpoint: string, params?: any, external?: boolean, resend?: number, bundle?: boolean): Promise<any>;
22
+ private markUnavailable;
23
+ private ensureMonitored;
24
+ private recoveryCheck;
21
25
  encryptKnock(data: any, encrypted?: boolean): any;
22
26
  }
23
27
  //# 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;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"}
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;AAexC,qBAAa,SAAU,YAAW,iBAAiB,CAAC,cAAc;IAyCvD,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,OAAO;IACf,QAAQ,CAAC;IAtCX,SAAS,EAAE,SAAS,CAAC;IAQrB,SAAS,EAAE,MAAM,CAAC;IAOlB,SAAS,EAAE,OAAO,CAAS;IAYlC,OAAO,CAAC,UAAU,CAAkB;gBAQ3B,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;IA2Nf,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,aAAa;IA+Bd,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,GAAE,OAAe,GAAG,GAAG;CAahE"}
@@ -8,6 +8,8 @@ const activeutilities_1 = require("@activeledger/activeutilities");
8
8
  const home_1 = require("./home");
9
9
  const neighbourhood_1 = require("./neighbourhood");
10
10
  const p2pClient_1 = require("./p2pClient");
11
+ const maintain_1 = require("./maintain");
12
+ const RECOVERY_CHECK_INTERVAL = 3 * 1000;
11
13
  class Neighbour {
12
14
  host;
13
15
  port;
@@ -16,6 +18,7 @@ class Neighbour {
16
18
  p2pClient;
17
19
  reference;
18
20
  graceStop = false;
21
+ recovering = false;
19
22
  constructor(host, port, isHome = false, identity) {
20
23
  this.host = host;
21
24
  this.port = port;
@@ -63,7 +66,14 @@ class Neighbour {
63
66
  if (!params) {
64
67
  return new Promise((resolve, reject) => {
65
68
  activeoptions_1.ActiveRequest.send(`http://${this.host}:${this.port}/a/${endpoint}`, "GET", ["X-Activeledger:" + home_1.Home.reference], null, false, 60)
66
- .then(resolve)
69
+ .then((response) => {
70
+ if (response?.data === null) {
71
+ reject(new Error("Request Failed"));
72
+ }
73
+ else {
74
+ resolve(response);
75
+ }
76
+ })
67
77
  .catch(reject);
68
78
  });
69
79
  }
@@ -93,12 +103,20 @@ class Neighbour {
93
103
  extraHeader,
94
104
  ], postData, activeoptions_1.ActiveOptions.get("gzip", true), 60)
95
105
  .then((response) => {
96
- if (!bundle) {
97
- if (response.data?.$enc && response.data.$packet) {
98
- response.data = JSON.parse(Buffer.from(home_1.Home.identity.decrypt(response.data.$packet), "base64").toString());
106
+ if (bundle) {
107
+ if (response?.data === null) {
108
+ this.markUnavailable();
109
+ reject(new Error("Bundled Request Failed"));
110
+ }
111
+ else {
112
+ resolve({ ok: 1 });
99
113
  }
100
- resolve(response);
114
+ return;
115
+ }
116
+ if (response.data?.$enc && response.data.$packet) {
117
+ response.data = JSON.parse(Buffer.from(home_1.Home.identity.decrypt(response.data.$packet), "base64").toString());
101
118
  }
119
+ resolve(response);
102
120
  })
103
121
  .catch((error) => {
104
122
  if (error && error.response && error.response.data) {
@@ -113,6 +131,7 @@ class Neighbour {
113
131
  }
114
132
  else {
115
133
  activelogger_1.ActiveLogger.fatal(error, `Network Error - ${this.host}:${this.port}/${endpoint}`);
134
+ this.markUnavailable();
116
135
  if (extraHeader !== "X-Bundle: 1") {
117
136
  reject("Network Communication Error");
118
137
  }
@@ -159,6 +178,40 @@ class Neighbour {
159
178
  }
160
179
  }
161
180
  }
181
+ markUnavailable() {
182
+ if (!this.isHome || this.graceStop) {
183
+ return;
184
+ }
185
+ this.isHome = false;
186
+ activelogger_1.ActiveLogger.warn(`Neighbour unavailable, starting recovery checks: ${this.host}:${this.port}`);
187
+ maintain_1.Maintain.pairNow();
188
+ this.ensureMonitored();
189
+ }
190
+ ensureMonitored() {
191
+ if (this.isHome || this.recovering || this.graceStop) {
192
+ return;
193
+ }
194
+ this.recovering = true;
195
+ this.recoveryCheck();
196
+ }
197
+ recoveryCheck() {
198
+ setTimeout(() => {
199
+ if (this.graceStop) {
200
+ this.recovering = false;
201
+ return;
202
+ }
203
+ this.knock("status")
204
+ .then(() => {
205
+ this.isHome = true;
206
+ this.recovering = false;
207
+ activelogger_1.ActiveLogger.info(`Neighbour recovered: ${this.host}:${this.port}`);
208
+ maintain_1.Maintain.pairNow();
209
+ })
210
+ .catch(() => {
211
+ this.recoveryCheck();
212
+ });
213
+ }, RECOVERY_CHECK_INTERVAL);
214
+ }
162
215
  encryptKnock(data, encrypted = false) {
163
216
  if (this.reference !== home_1.Home.reference &&
164
217
  this.identity &&
@@ -1 +1 @@
1
- {"version":3,"file":"neighbour.js","sourceRoot":"","sources":["../../src/network/neighbour.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"neighbour.js","sourceRoot":"","sources":["../../src/network/neighbour.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.3.4",
3
+ "version": "4.4.0",
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.3.4",
47
- "@activeledger/activedefinitions": "^4.3.4",
48
- "@activeledger/activelogger": "^4.3.4",
49
- "@activeledger/activeoptions": "^4.3.4",
50
- "@activeledger/activeprotocol": "^4.3.4",
51
- "@activeledger/activequery": "^4.3.4",
52
- "@activeledger/activeutilities": "^4.3.4",
46
+ "@activeledger/activecrypto": "^4.4.0",
47
+ "@activeledger/activedefinitions": "^4.4.0",
48
+ "@activeledger/activelogger": "^4.4.0",
49
+ "@activeledger/activeoptions": "^4.4.0",
50
+ "@activeledger/activeprotocol": "^4.4.0",
51
+ "@activeledger/activequery": "^4.4.0",
52
+ "@activeledger/activeutilities": "^4.4.0",
53
53
  "uWebSockets.js": "github:uNetworking/uWebSockets.js#v20.67.0"
54
54
  },
55
- "gitHead": "5912a3608e14942a333e4f95de4c64af2dba9bd3"
55
+ "gitHead": "2c327d8ce47f605246ca8f5144a4c444f81f6638"
56
56
  }