lisk-framework
Version:
Lisk blockchain application platform
34 lines • 1.16 kB
JavaScript
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
;