diff --git a/package.json b/package.json index a67a7c2d..4d4d7301 100644 --- a/package.json +++ b/package.json @@ -102,7 +102,7 @@ "@typescript-eslint/parser": "^3.0.2", "aegir": "^37.2.0", "benchmark": "^2.1.4", - "datastore-core": "^7.0.1", + "datastore-core": "^8.0.1", "delay": "^5.0.0", "detect-node": "^2.1.0", "eslint": "^7.1.0", diff --git a/src/index.ts b/src/index.ts index 5e539b3b..4032e533 100644 --- a/src/index.ts +++ b/src/index.ts @@ -2327,7 +2327,8 @@ export class GossipSub extends EventEmitter implements Initiali // NodeJS setInterval function is innexact, calls drift by a few miliseconds on each call. // To run the heartbeat precisely setTimeout() must be used recomputing the delay on every loop. - let msToNextHeartbeat = (Date.now() - this.status.hearbeatStartMs) % this.opts.heartbeatInterval + let msToNextHeartbeat = + this.opts.heartbeatInterval - ((Date.now() - this.status.hearbeatStartMs) % this.opts.heartbeatInterval) // If too close to next heartbeat, skip one if (msToNextHeartbeat < this.opts.heartbeatInterval * 0.25) {