From 21f2a78612775640976731d3b0edc3e70f30c2a2 Mon Sep 17 00:00:00 2001 From: Bryan Stitt Date: Wed, 16 Nov 2022 20:18:37 +0000 Subject: [PATCH] comments and todos --- TODO.md | 25 ++++++++++++++----------- deferred-rate-limiter/src/lib.rs | 2 ++ 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/TODO.md b/TODO.md index c4382839..6dd4e419 100644 --- a/TODO.md +++ b/TODO.md @@ -239,19 +239,15 @@ These are roughly in order of completition - [x] add locking around running migrations - [x] cli tool for checking config - [x] web3_proxy_cli command should read database settings from config -- [-] add configurable size limits to all the Caches - - instead of configuring each cache with MB sizes, have one value for total memory footprint and then percentages for each cache -- [-] more trace logging -- [ ] add more to web3_proxy_cli -- [ ] add block timestamp to the /status page -- [ ] cache the status page for a second -- [ ] probably need to turn more sentry log integrations (like anyhow) on! -- [ ] tests should use `test-env-log = "0.2.8"` +- [x] cli command to change user_tier by key +- [x] cache the status page for a second +- [ ] request accounting for websockets - [ ] weighted random choice should still prioritize non-archive servers - maybe shuffle randomly and then sort by (block_limit, random_index)? - maybe sum available_requests grouped by archive/non-archive. only limit to non-archive if they have enough? -- [ ] cli commands to search users by key -- [ ] cli command to change user_tier by key +- [ ] add block timestamp to the /status page +- [ ] probably need to turn more sentry log integrations (like anyhow) on! +- [ ] tests should use `test-env-log = "0.2.8"` - [ ] change invite codes to set the user_tier - [ ] actually block unauthenticated requests instead of emitting warning of "allowing without auth during development!" @@ -260,6 +256,11 @@ These are roughly in order of completition These are not yet ordered. There might be duplicates. We might not actually need all of these. +- [ ] cli commands to search users by key +- [-] more trace logging +- [-] add configurable size limits to all the Caches + - instead of configuring each cache with MB sizes, have one value for total memory footprint and then percentages for each cache + - https://github.com/moka-rs/moka/issues/201 - [ ] cli flag to set prometheus port - [ ] flamegraphs show 25% of the time to be in moka-housekeeper. tune that - [ ] remove the "metered" crate now that we save aggregate queries? @@ -528,4 +529,6 @@ in another repo: event subscriber - [ ] if redis is not set and login page is visited, users get a 502. should be 501 - [ ] allow passing the authorization header to the anonymous rpc endpoint - [ ] sentry profiling - +- [ ] use Stretto instead of Moka +- [ ] support alchemy_minedTransactions +- [ ] debug print of user::Model's address is a big vec of numbers. make that hex somehow diff --git a/deferred-rate-limiter/src/lib.rs b/deferred-rate-limiter/src/lib.rs index 276b759d..2ed891c8 100644 --- a/deferred-rate-limiter/src/lib.rs +++ b/deferred-rate-limiter/src/lib.rs @@ -34,6 +34,7 @@ where K: Copy + Debug + Display + Hash + Eq + Send + Sync + 'static, { pub fn new( + // TODO: change this to cache_size in bytes cache_size: u64, prefix: &str, rrl: RedisRateLimiter, @@ -42,6 +43,7 @@ where let ttl = rrl.period as u64; // TODO: time to live is not exactly right. we want this ttl counter to start only after redis is down. this works for now + // TODO: what do these weigh? let local_cache = Cache::builder() .time_to_live(Duration::from_secs(ttl)) .max_capacity(cache_size)