UNPKG

lisk-framework

Version:

Lisk blockchain application platform

34 lines 1.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BaseNetworkEndpoint = exports.DEFAULT_RATE_RESET_TIME = void 0; exports.DEFAULT_RATE_RESET_TIME = 10000; class BaseNetworkEndpoint { constructor(network) { this._rateTracker = {}; this.network = network; } start() { this._limitResetInterval = setInterval(() => { this._rateTracker = {}; }, exports.DEFAULT_RATE_RESET_TIME); } stop() { clearInterval(this._limitResetInterval); } addRateLimit(procedure, peerId, limit) { if (this._rateTracker[procedure] === undefined) { this._rateTracker[procedure] = { [peerId]: 0 }; } this._rateTracker[procedure][peerId] = this._rateTracker[procedure][peerId] ? this._rateTracker[procedure][peerId] + 1 : 1; if (this._rateTracker[procedure][peerId] > limit) { this.network.applyPenaltyOnPeer({ peerId, penalty: 10, }); } } } exports.BaseNetworkEndpoint = BaseNetworkEndpoint; //# sourceMappingURL=base_network_endpoint.js.map