Opened 10 years ago

Closed 9 years ago

#43 closed enhancement (fixed)

Implement rate-limits

Reported by: welterde Owned by:
Priority: major Milestone: 0.7.14
Component: streaming Version:
Keywords: Cc:
Parent Tickets: Sensitive: no

Description

Due to certain recent events, rate-limits are clearly missing from the streaming lib.
Option for limiting concurrent connections would be: i2p.streaming.limit.concurrentStreams

Subtickets

Change History (4)

comment:1 Changed 10 years ago by postman@…

Proposal for ratelimiting:

Don't look at concurrent connections alone, but make it a real limiter
with a defined limit for connections/minute,hour,day from the same
destination

The values for could be part of the extended configuration options
like:

….. .servertunnelx.useRateLimiter=true
….. .servertunnelx.RateLimits?=½/10

if the ratelimit hits the offending client should be held for a random amount
of seconds (up to 15) and then be treated like the service is not active/reachable.
Sorry for not using the right lingo…

postman

comment:2 Changed 10 years ago by sponge <sponge@…>

Even better, do this as an I2CP option, so that applications can have access to the feature.

comment:3 Changed 10 years ago by zzz

Maybe, maybe not. Is connection rate limiting "clearly" a feature for the streaming lib and not something to be solved at the application level? Depending on how it's done it could be fairly complex and resource-intensive too.

As a crude alternative I've implemented blocking by dest hash. Details at http://zzz.i2p/topics/614

One problem with any connection option is you can't change them on-the-fly, so you have to stop and restart the tunnel to take effect. This goes for the blocking option too.

comment:4 Changed 9 years ago by welterde

Milestone: 0.80.7.14
Resolution: fixed
Status: newclosed

already implemented in 0.7.14

Note: See TracTickets for help on using tickets.