bitcore-node-zcash/plugins/ratelimiter.js

36 lines
891 B
JavaScript

var logger = require('../lib/logger').logger;
var preconditions = require('preconditions').singleton();
var limiter = require('connect-ratelimit');
var ONE_HOUR = 60 * 60 * 1000;
module.exports.init = function(app, config) {
preconditions.checkArgument(app);
logger.info('Using ratelimiter plugin');
config = config || {};
config.whitelistRPH = config.whitelistRPH || 500000;
config.normalRPH = config.normalRPH || 10000;
config.blacklistRPH = config.blacklistRPH || 0;
app.use(limiter({
whitelist: [],
end: true,
blacklist: [], // 'example.com'
categories: {
whitelist: {
totalRequests: config.whitelistRPH,
every: ONE_HOUR
},
blacklist: {
totalRequests: config.blacklistRPH,
every: ONE_HOUR
},
normal: {
totalRequests: config.normalRPH,
every: ONE_HOUR
}
}
}));
};