nwaku/tests
NagyZoltanPeter ba418ab5ba
feat: DOS protection of non relay protocols - rate limit phase3 (#2897)
* DOS protection of non relay protocols - rate limit phase3:
- Enhanced TokenBucket to be able to add compensation tokens based on previous usage percentage,
- per peer rate limiter 'PeerRateLimier' applied on waku_filter_v2 with opinionated default of acceptable request rate
- Add traffic metrics to filter message push
- RequestRateLimiter added to combine simple token bucket limiting of request numbers but consider per peer usage over time and prevent some peers to over use the service
  (although currently rule violating peers will not be disconnected by this time only their requests will get not served)
- TimedMap utility created (inspired and taken from libp2p TimedCache) which serves as forgiving feature for peers had been overusing the service.
- Added more tests
- Fix rebase issues
- Applied new RequestRateLimiter for store and legacy_store and lightpush
* Incorporate review comments, typos, file/class naming and placement changes.
* Add issue link reference of the original issue with nim-chronos TokenBucket
* Make TimedEntry of TimedMap private and not mixable with similar named in libp2p
* Fix review comments, renamings, const instead of values and more comments.
2024-07-16 15:46:21 +02:00
..
common feat: DOS protection of non relay protocols - rate limit phase3 (#2897) 2024-07-16 15:46:21 +02:00
factory chore: refactor relative path to better absolute (#2861) 2024-07-06 00:03:38 +02:00
incentivization chore: refactor relative path to better absolute (#2861) 2024-07-06 00:03:38 +02:00
node chore(archive): archive and drivers refactor (#2761) 2024-07-12 18:19:12 +02:00
resources Generic re-style with nph 0.5.1 (#2396) 2024-03-16 00:08:47 +01:00
testlib chore(archive): archive and drivers refactor (#2761) 2024-07-12 18:19:12 +02:00
waku_archive chore(archive): archive and drivers refactor (#2761) 2024-07-12 18:19:12 +02:00
waku_archive_legacy chore(archive): archive and drivers refactor (#2761) 2024-07-12 18:19:12 +02:00
waku_core chore: deprecating named sharding (#2723) 2024-07-09 18:36:12 +03:00
waku_discv5 chore: refactor relative path to better absolute (#2861) 2024-07-06 00:03:38 +02:00
waku_enr chore: refactor relative path to better absolute (#2861) 2024-07-06 00:03:38 +02:00
waku_filter_v2 feat: DOS protection of non relay protocols - rate limit phase3 (#2897) 2024-07-16 15:46:21 +02:00
waku_lightpush feat: DOS protection of non relay protocols - rate limit phase3 (#2897) 2024-07-16 15:46:21 +02:00
waku_peer_exchange chore: refactor relative path to better absolute (#2861) 2024-07-06 00:03:38 +02:00
waku_relay chore: deprecating named sharding (#2723) 2024-07-09 18:36:12 +03:00
waku_rln_relay fix(rln_keystore_generator): improve error handling for unrecoverable failure (#2881) 2024-07-10 19:12:49 +02:00
waku_store chore(archive): archive and drivers refactor (#2761) 2024-07-12 18:19:12 +02:00
waku_store_legacy chore(archive): archive and drivers refactor (#2761) 2024-07-12 18:19:12 +02:00
wakunode2 chore: refactor relative path to better absolute (#2861) 2024-07-06 00:03:38 +02:00
wakunode_rest feat: DOS protection of non relay protocols - rate limit phase3 (#2897) 2024-07-16 15:46:21 +02:00
all_tests_common.nim feat(coverage): Add simple coverage (#2067) 2023-09-27 15:53:23 +02:00
all_tests_waku.nim chore(archive): archive and drivers refactor (#2761) 2024-07-12 18:19:12 +02:00
all_tests_wakunode2.nim feat(coverage): Add simple coverage (#2067) 2023-09-27 15:53:23 +02:00
nim.cfg chore: refactor relative path to better absolute (#2861) 2024-07-06 00:03:38 +02:00
postgres-docker-compose.yml feat: Postgres partition implementation (#2506) 2024-03-06 20:50:22 +01:00
test_all.nim Generic re-style with nph 0.5.1 (#2396) 2024-03-16 00:08:47 +01:00
test_helpers.nim Generic re-style with nph 0.5.1 (#2396) 2024-03-16 00:08:47 +01:00
test_message_cache.nim chore: refactor relative path to better absolute (#2861) 2024-07-06 00:03:38 +02:00
test_peer_manager.nim chore: refactor relative path to better absolute (#2861) 2024-07-06 00:03:38 +02:00
test_peer_storage.nim chore: refactor relative path to better absolute (#2861) 2024-07-06 00:03:38 +02:00
test_peer_store_extended.nim chore: refactor relative path to better absolute (#2861) 2024-07-06 00:03:38 +02:00
test_relay_peer_exchange.nim chore: refactor relative path to better absolute (#2861) 2024-07-06 00:03:38 +02:00
test_utils_compat.nim chore: refactor relative path to better absolute (#2861) 2024-07-06 00:03:38 +02:00
test_waku_dnsdisc.nim chore: refactor relative path to better absolute (#2861) 2024-07-06 00:03:38 +02:00
test_waku_enr.nim chore: refactor relative path to better absolute (#2861) 2024-07-06 00:03:38 +02:00
test_waku_keepalive.nim chore: refactor relative path to better absolute (#2861) 2024-07-06 00:03:38 +02:00
test_waku_keystore.nim chore: refactor relative path to better absolute (#2861) 2024-07-06 00:03:38 +02:00
test_waku_keystore_keyfile.nim chore: refactor relative path to better absolute (#2861) 2024-07-06 00:03:38 +02:00
test_waku_metadata.nim chore: refactor relative path to better absolute (#2861) 2024-07-06 00:03:38 +02:00
test_waku_netconfig.nim chore: refactor relative path to better absolute (#2861) 2024-07-06 00:03:38 +02:00
test_waku_noise.nim chore: refactor relative path to better absolute (#2861) 2024-07-06 00:03:38 +02:00
test_waku_noise_sessions.nim chore: refactor relative path to better absolute (#2861) 2024-07-06 00:03:38 +02:00
test_waku_protobufs.nim chore: refactor relative path to better absolute (#2861) 2024-07-06 00:03:38 +02:00
test_waku_rendezvous.nim chore: refactor relative path to better absolute (#2861) 2024-07-06 00:03:38 +02:00
test_waku_switch.nim chore: refactor relative path to better absolute (#2861) 2024-07-06 00:03:38 +02:00
test_wakunode.nim chore: deprecating named sharding (#2723) 2024-07-09 18:36:12 +03:00
test_wakunode_lightpush.nim chore: refactor relative path to better absolute (#2861) 2024-07-06 00:03:38 +02:00