Commit Graph

32 Commits

Author SHA1 Message Date
Bryan Stitt a1aa63fe55 more SeqCst 2023-11-14 13:56:18 -08:00
Bryan Stitt f696195fed add todo 2023-10-11 20:55:13 -07:00
Bryan Stitt b234265458
Premium tier changes (#170)
* lower premium concurrency in preparation for key+IP limits

* include the ip in the user semaphore

* 3, not 5

this is our current limit for free

* per user_id+ip rate limiting
2023-07-07 15:15:41 -07:00
Bryan Stitt fd661689a3
Tracing (#144)
* tracing

* add tracing and features to match

* use just one hostname crate

* cargo upgrade

* set up pretty logger and sentry layer
2023-06-23 16:28:45 -07:00
Bryan Stitt c37b320286 add cache names and actually serialize 2023-06-07 17:55:34 -07:00
Bryan Stitt 40bee30730 back to moka 2023-06-07 17:30:05 -07:00
Bryan Stitt c1eba556a5 fix missing ttl send and add name to cache 2023-05-29 17:19:05 -07:00
Bryan Stitt bb50efb7f9
quick cache ttl max item size, better function names, and tests (#97)
* Revert "remove cache on /status and /health for now"

This reverts commit 166b0d810c.

* Revert "remove cache on backups needed, too"

This reverts commit 4597967def.

* add tests

* add max_item_weight

* comment

* add some helper functions, max weights, and tests
2023-05-29 15:48:22 -07:00
Bryan Stitt b61675e928 replace all moka with quick_cache_ttl 2023-05-18 13:34:22 -07:00
Bryan Stitt 0f367d9035 more quick cache ttl 2023-05-18 00:04:30 -07:00
Bryan Stitt c54970da0a change ordering and move fetch_add and fetch_sub 2023-05-12 23:00:03 -07:00
Bryan Stitt 8a097dabbe
Bryan devel 2023-05-12 (#67)
* add minor todo

* BadRequest instead of web3_context

* more bad request error codes

* use tokio-uring for the tcp listener

* clear block instead of panic

* clone earlier

* more watch channels instead of rwlocks

* drop uring for now (its single threaded) and combine get/post/put routes

* clean up iter vs into_iter and unnecessary collect

* arcswap instead of rwlock for Web3Rpcs.by_name

* cargo upgrade

* uuid fast-rng and alphabetize

* if protected rpcs, only use protected rpcs

* listenfd

* make connectinfo optional

* try_get_with_by_ref instead of try_get_with

* anyhow ensure. and try_get_with_as_ref isn't actually needed

* fix feature flags

* more refs and less clone

* automatic retry for eth_getTransactionReceipt and eth_getTransactionByHash

thanks for the report Lefteris @ Rotki

* ArcSwap for provider

* set archive_request to true on transaction retrying

* merge durable stats

* Revert "ArcSwap for provider"

This reverts commit 166d77f204cde9fa7722c0cefecbb27008749d47.

* comments

* less clones

* more refs

* fix test

* add optional mimalloc feature

* remove stale dependency

* sort

* cargo upgrade

* lint constants

* add todo

* another todo

* lint

* anyhow::ensure instead of panic

* allow rpc_accounting_v2 entries for requests without an rpc key
2023-05-12 15:15:32 -07:00
Bryan Stitt 8868c35e95 comment 2022-12-28 13:53:36 -08:00
Bryan Stitt d9c01a59a3 salted recent ip tracking 2022-12-27 22:11:18 -08:00
Bryan Stitt 4683eadc89 fix overflow 2022-12-23 16:14:10 -08:00
Bryan Stitt 21f2a78612 comments and todos 2022-11-16 20:18:37 +00:00
Bryan Stitt 0e1cf5767c cut out tracing for now 2022-11-12 08:24:32 +00:00
Bryan Stitt 1329084621 cargo upgrade 2022-11-11 18:40:52 +00:00
Bryan Stitt f859ed56fc period instead of minute in variable names 2022-11-01 19:24:29 +00:00
Bryan Stitt 81deb1103c login needs its own rate limiter 2022-09-24 03:59:21 +00:00
Bryan Stitt abe5001792 atomic and less expires 2022-09-20 06:56:24 +00:00
Bryan Stitt 739947792a instrument more. add max_wait to wait_for_request_handle 2022-09-20 06:00:27 +00:00
Bryan Stitt dfd6aed6e6 no timeouts here, we already have a timeout on requests 2022-09-20 03:26:12 +00:00
Bryan Stitt 6ae24b1ff9 use cache's expiration and race-free get_with
when this was a dashmap, we needed our own expiration and parallel requests would do the same query.

with moka, we can use their expiration code and get_with
2022-09-20 01:33:39 +00:00
Bryan Stitt 8785cb6d2d no idle timeout or max lifetime 2022-09-19 22:41:53 +00:00
Bryan Stitt 3e3a9fcf64 larger max_capacity now that there is a weigher 2022-09-19 22:24:56 +00:00
Bryan Stitt b6275aff1e no need for an atomic bool 2022-09-19 22:17:24 +00:00
Bryan Stitt 05af0551c9 use ahash
this might actually be slower. do real benchmarks
2022-09-17 02:17:20 +00:00
Bryan Stitt 3d4bfbfde0 use ahash. allow no redis 2022-09-17 01:19:11 +00:00
Bryan Stitt 6182b5f8e6 need a mutex, not a cell 2022-09-17 01:06:10 +00:00
Bryan Stitt 5cc4ca8d9e it compiles, but theres something wrong with moves 2022-09-16 23:02:55 +00:00
Bryan Stitt 12b6d01434 work in progress 2022-09-15 17:57:24 +00:00