From 33c0acb21e674d1a4ee899c386b0bf8b50f9190f Mon Sep 17 00:00:00 2001 From: maciejhirsz Date: Wed, 25 Jul 2018 18:24:51 +0200 Subject: [PATCH] Throttle updates from syncing nodes --- packages/backend/src/Node.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/backend/src/Node.ts b/packages/backend/src/Node.ts index 8c7ebae..b940c60 100644 --- a/packages/backend/src/Node.ts +++ b/packages/backend/src/Node.ts @@ -43,6 +43,7 @@ export default class Node { private blockTimes: Array = new Array(BLOCK_TIME_HISTORY); private lastBlockAt: Maybe = null; private pingStart = 0 as Types.Timestamp; + private throttle = false; constructor( ip: string, @@ -260,7 +261,16 @@ export default class Node { this.blockTimes[height % BLOCK_TIME_HISTORY] = blockTime; this.blockTime = blockTime; - this.events.emit('block'); + if (blockTime > 100) { + this.events.emit('block'); + } else if (!this.throttle) { + this.throttle = true; + + setTimeout(() => { + this.events.emit('block'); + this.throttle = false; + }, 1000); + } } }