Commit Graph

448 Commits

Author SHA1 Message Date
Bryan Stitt 92fe4b858a stricter test 2022-11-21 17:49:57 +00:00
Bryan Stitt 311f6f1ac6 more ArcBlock 2022-11-21 17:49:57 +00:00
Bryan Stitt a5fb6479e0 improve error when loading configs 2022-11-21 17:49:57 +00:00
Bryan Stitt ae39636cd2 fix some error status codes 2022-11-21 17:49:57 +00:00
Bryan Stitt 4018121e51 cargo upgrade 2022-11-21 17:49:57 +00:00
Bryan Stitt f56d53a221 block erigon_cacheCheck 2022-11-21 17:49:41 +00:00
Bryan Stitt 217a7b3fd3 eth_subscribe rpc_accounting logging 2022-11-19 22:05:51 +00:00
Bryan Stitt eb96ab0a6c actually save 2022-11-16 21:21:27 +00:00
Bryan Stitt 893bf31fec positional instead of options 2022-11-16 20:18:10 +00:00
Bryan Stitt 4d5ed64ac3 cargo upgrade 2022-11-16 20:17:50 +00:00
Bryan Stitt 5886db20dd cache status page for 1 second 2022-11-16 20:17:33 +00:00
Bryan Stitt 4d8808b886 a little bit more trace logging 2022-11-16 08:34:17 +00:00
Bryan Stitt 50a572bc00 upgrade uuid 2022-11-16 07:27:16 +00:00
Bryan Stitt 2829ce7a7d lint more 2022-11-16 07:19:56 +00:00
Bryan Stitt 186218b8b9 more cli 2022-11-16 07:19:42 +00:00
Bryan Stitt 0460d74c2f optional config in web3_proxy_cli 2022-11-14 19:35:33 +00:00
Bryan Stitt ee35c15ff4 drop migration lock emergency helper command 2022-11-14 19:13:42 +00:00
Bryan Stitt ea5f791560 simple lock around database migrations 2022-11-14 18:24:52 +00:00
Bryan Stitt 0f16fdb97a comments 2022-11-13 21:25:58 +00:00
Bryan Stitt 96a486866c add optional display name 2022-11-13 21:05:37 +00:00
Bryan Stitt fc7e310f58 env_logger 2022-11-12 09:26:05 +00:00
Bryan Stitt b17894c2d6 deprecated function 2022-11-12 09:25:14 +00:00
Bryan Stitt 0e1cf5767c cut out tracing for now 2022-11-12 08:24:32 +00:00
Bryan Stitt 9ae2337d1d thread fast rng 2022-11-12 06:11:58 +00:00
Bryan Stitt 8e3547bbd0 add test for checking the example.toml 2022-11-11 21:16:32 +00:00
Bryan Stitt 22fa5136a8 allow no allowed_origin_requests_per_period 2022-11-11 19:24:57 +00:00
Bryan Stitt 1329084621 cargo upgrade 2022-11-11 18:40:52 +00:00
Bryan Stitt c35dd96cfb save rpc_key_id or origin. needs some testing 2022-11-11 06:19:14 +00:00
Bryan Stitt c33342d9dd simplify authorization types so we can pass them deeper easily 2022-11-11 06:19:12 +00:00
Bryan Stitt 2c4586302d clean up rpc_key_id template change 2022-11-10 22:17:22 +00:00
Bryan Stitt b800b862ee bump version 2022-11-07 23:06:14 +00:00
Bryan Stitt f694200329 rpc_secret_key should be optional 2022-11-07 23:03:35 +00:00
Bryan Stitt d3542c914f lint 2022-11-07 22:30:02 +00:00
Bryan Stitt e01f8505fd log params too
i'm not sure we want this, but maybe
2022-11-07 22:25:52 +00:00
Bryan Stitt cb69a2d132 cargo upgrade (requires rust 1.65+) 2022-11-07 22:23:55 +00:00
Bryan Stitt 31395c9934 rpc_key_id in the redirect. weights in the /status page 2022-11-07 22:10:19 +00:00
Bryan Stitt fc8beb52b0 maybe fix next_upstream_server 2022-11-06 21:05:03 +00:00
Bryan Stitt 058dfa6d8e send_head_block_result more places 2022-11-06 20:52:11 +00:00
Bryan Stitt bde240c18a more auth when only rpc_key_id is set 2022-11-04 22:58:15 +00:00
Bryan Stitt 4f7339c01d refactor shutdown_receiver 2022-11-04 19:52:46 +00:00
Bryan Stitt bc317ef1e9 remove old file 2022-11-04 19:52:15 +00:00
Bryan Stitt 7127779182 query_window -> query_window_timestamp 2022-11-04 19:01:17 +00:00
Bryan Stitt 7d426413aa cleanup 2022-11-04 04:40:39 +00:00
Bryan Stitt ef09a44f0e dry stats 2022-11-04 04:32:09 +00:00
Bryan Stitt 1989ec92f4 fix joins for user_stats_aggregate_get 2022-11-04 03:40:43 +00:00
Bryan Stitt f3e9f6c387 bug fixes 2022-11-03 22:16:27 +00:00
Bryan Stitt e8f2a13f5d better stats aggregations 2022-11-02 23:14:16 +00:00
Bryan Stitt f2268dbb1b this works, but its not super fast 2022-11-01 20:51:33 +00:00
Bryan Stitt f859ed56fc period instead of minute in variable names 2022-11-01 19:24:29 +00:00
Bryan Stitt bb9e4f99ef fix some auth 2022-11-01 19:12:57 +00:00
Bryan Stitt 8b35bf5e63 clean up migration 2022-11-01 18:54:39 +00:00
Bryan Stitt 1d22291737 wip. add user tiers 2022-10-31 20:51:50 +00:00
Bryan Stitt 2540182b7c put or post for user key management 2022-10-31 20:51:06 +00:00
Bryan Stitt 91eb907a2d fix lints with better types 2022-10-31 20:05:58 +00:00
Bryan Stitt 234289965d cargo upgrade 2022-10-31 19:34:29 +00:00
Bryan Stitt a534eae968 trace everything 2022-10-28 22:52:47 +00:00
Bryan Stitt 366f2c8f84 rename api_key to rpc_key 2022-10-27 00:12:42 +00:00
Bryan Stitt 0c3194f445 upgrades and todo cleanup 2022-10-26 22:38:04 +00:00
Bryan Stitt 8f3e5c0146 user post endpoint 2022-10-26 21:39:26 +00:00
Bryan Stitt 928fc7e9b0 more user stuff 2022-10-26 00:22:58 +00:00
Bryan Stitt 00f53f95f3 stale imports 2022-10-25 21:12:56 +00:00
Bryan Stitt 8230172366 more user endpoints 2022-10-25 21:11:19 +00:00
Bryan Stitt d31484467d return user keys as a mapping 2022-10-25 19:03:11 +00:00
Bryan Stitt a67b85a327 concurrency limits on bearer token actions 2022-10-25 18:27:06 +00:00
Bryan Stitt 21956afe73 delete unused imports 2022-10-25 17:21:51 +00:00
Bryan Stitt 9ec8abdf49 only require invite_code on first login 2022-10-25 17:21:15 +00:00
Bryan Stitt 6e356cf9a7 alphabetical 2022-10-25 04:37:19 +00:00
Bryan Stitt 337f5bc1f8 sort configs 2022-10-25 04:34:24 +00:00
Bryan Stitt bdc6915387 no need for const_new 2022-10-25 04:31:18 +00:00
Bryan Stitt 1d24955d6f finish basic ProtectedAction 2022-10-25 04:12:24 +00:00
Bryan Stitt 618bfeb861 semafore cleanup 2022-10-25 04:01:41 +00:00
Bryan Stitt 4ccbcb8af4 update sea-orm and entities 2022-10-25 03:41:59 +00:00
Bryan Stitt a0056ca881 optional tracing-sentry 2022-10-24 21:07:29 +00:00
Bryan Stitt 13ab659060 actually we dont need this /rpc endpoint at all 2022-10-21 21:13:50 +00:00
Bryan Stitt d574ac9add have / work for the public rpc 2022-10-21 21:12:05 +00:00
Bryan Stitt 9422a335a7 allow origins on public entrypoints 2022-10-21 20:59:05 +00:00
Bryan Stitt f83eb0d0d2 include user id in login 2022-10-21 19:50:07 +00:00
Bryan Stitt b7259192e8 more context. don't use unix timestamps 2022-10-20 23:50:23 +00:00
Bryan Stitt 94f205900a missing loop 2022-10-20 23:50:06 +00:00
Bryan Stitt 12ee26a2b3 wait on background threads 2022-10-20 22:51:56 +00:00
Bryan Stitt 6c9189ef76 remove unused variables 2022-10-20 20:26:14 +00:00
Bryan Stitt 94c5b0479a copypasta query window seconds 2022-10-20 19:01:14 +00:00
Bryan Stitt 4f1885306f
Update user_queries.rs 2022-10-20 10:43:31 -07:00
Bryan Stitt 17cac2d726 grammar 2022-10-20 08:37:56 +00:00
Bryan Stitt c2f648626d delete on successful login 2022-10-20 08:36:53 +00:00
Bryan Stitt 15b4328e31 try both verification methods 2022-10-20 08:25:02 +00:00
Bryan Stitt 9614682e30 more robust login 2022-10-20 08:14:38 +00:00
Bryan Stitt 6c1a128802 cargo upgrade --workspace 2022-10-20 07:16:07 +00:00
Bryan Stitt 3f9a20c7a6 context instead of todo 2022-10-20 07:10:35 +00:00
Bryan Stitt 848eb61349 null private transactions instead of empty 2022-10-20 07:03:58 +00:00
Bryan Stitt 1da730daa2 less unwrap 2022-10-20 06:54:45 +00:00
Bryan Stitt a3d0803618 DRYer user queries 2022-10-20 06:17:27 +00:00
Bryan Stitt 33d15509cd query_window_seconds 2022-10-20 04:44:33 +00:00
Bryan Stitt 7b5d50a577 more stats 2022-10-19 23:02:34 +00:00
Bryan Stitt 445ce9949e more debug and placeholders 2022-10-19 22:26:33 +00:00
Bryan Stitt e520d85c43 aggregate users or everybody on the same endpoint 2022-10-19 22:20:34 +00:00
Bryan Stitt 8278fe006b cleanup 2022-10-19 21:34:05 +00:00
Bryan Stitt e7e949a53e user_login_get does not need params 2022-10-19 18:51:14 +00:00
Bryan Stitt 8a23efd048 optional params like this do not work. need hashmap 2022-10-19 18:50:16 +00:00
Bryan Stitt e9abcf883f query params and grouping for user stats 2022-10-19 18:38:00 +00:00
Bryan Stitt 3793bdff67 aggregate stats endpoint 2022-10-19 00:57:22 +00:00
Bryan Stitt f6c2d29d0e stricter configs 2022-10-18 23:27:33 +00:00
Bryan Stitt 69a090522b more todo 2022-10-17 23:16:09 +00:00
Bryan Stitt 848af3d8b3 more docs 2022-10-17 21:47:58 +00:00
Bryan Stitt 76c8f1ef96 i think it works 2022-10-11 21:31:34 +00:00
Bryan Stitt 552f3dbffc proper sizes for caches and emit all stats 2022-10-11 19:58:25 +00:00
Bryan Stitt 8f3d31869f less locks and fix some stats 2022-10-11 17:34:25 +00:00
Bryan Stitt cfd26940a9 this might be too many columns 2022-10-11 05:13:00 +00:00
Bryan Stitt da2bd0b0a5 wait on invalidating 2022-10-10 05:44:04 +00:00
Bryan Stitt 825370b5d9 stats almost work
just need to update the migration to match our new ideas for columns.

should also make the shutdown smarter so that nothing gets lost
2022-10-10 05:35:25 +00:00
Bryan Stitt 25aa68a5bf add per-user rpc accounting 2022-10-10 04:15:49 +00:00
Bryan Stitt ecd3dc29fc shorter strings 2022-10-07 02:21:34 +00:00
Bryan Stitt 44adffcd32 no pipe needed 2022-10-07 02:21:24 +00:00
Bryan Stitt c8fbf46885 stats in redis that actually work
we should still investigate a real time series db, but stats in redis is much simpler for now
2022-10-07 02:15:53 +00:00
Bryan Stitt 875ae457ef emit our first stats-- cache hits and misses 2022-10-03 20:02:05 +00:00
Bryan Stitt 25d34da98d add stat emitter 2022-10-03 18:08:01 +00:00
Bryan Stitt a7b5f25467 unwrap less 2022-09-30 04:18:18 +00:00
Bryan Stitt 9cc34f7aa8 move warning 2022-09-28 17:01:11 +00:00
Bryan Stitt 2b03372e6b error instead of todo 2022-09-28 16:35:18 +00:00
Bryan Stitt 53f9551180 finish adding semaphores 2022-09-28 03:35:55 +00:00
Bryan Stitt 0c7a2b05ec start adding semaphores 2022-09-27 02:01:45 +00:00
Bryan Stitt a199f13426 not everything needs to be under /rpc 2022-09-25 16:37:45 +00:00
Bryan Stitt 28dcfca47b add sensitive-headers 2022-09-25 16:35:01 +00:00
Bryan Stitt 7ed7f96a2f very permissive cors policy 2022-09-25 04:26:13 +00:00
Bryan Stitt 2c69b0ce9a fix method and param for saving reverts 2022-09-24 07:36:25 +00:00
Bryan Stitt 3074d6f76f left pad addresses 2022-09-24 07:18:33 +00:00
Bryan Stitt a80503ac48 better logging on save reverts checks 2022-09-24 07:04:11 +00:00
Bryan Stitt 7da8864a1d improve --address flag on user_create 2022-09-24 07:03:42 +00:00
Bryan Stitt bbaa32e7b5 release 0.2.0 2022-09-24 05:54:38 +00:00
Bryan Stitt 5df2469d53 ULID or UUID. Prefer ULID 2022-09-24 05:53:45 +00:00
Bryan Stitt b254cb7d26 check for bearer token on /rpc 2022-09-24 04:31:06 +00:00
Bryan Stitt 81deb1103c login needs its own rate limiter 2022-09-24 03:59:21 +00:00
Bryan Stitt c12e25a210 no need for this clone 2022-09-24 02:48:23 +00:00
Bryan Stitt 8459dcd1f1 let the frontend handle their own cookies 2022-09-24 02:47:44 +00:00
Bryan Stitt dbd8ea2429 add logout endpoint and prefix with /rpc 2022-09-23 21:49:18 +00:00
Bryan Stitt 961ccf7cf2 ip, origin, referer, and user agent checks 2022-09-23 05:22:33 +00:00
Bryan Stitt d55aea2d98 even flatter 2022-09-22 22:42:44 +00:00
Bryan Stitt 7f7be6aa69 flatter 2022-09-22 22:34:43 +00:00
Bryan Stitt 987ed181cd comments 2022-09-22 22:16:28 +00:00
Bryan Stitt 6d23071640 less clones, but still some 2022-09-22 22:14:24 +00:00
Bryan Stitt 8d011e0cd1 pass db conn through 2022-09-22 22:10:28 +00:00
Bryan Stitt 3854312674 we need to clone :'( 2022-09-22 21:51:52 +00:00
Bryan Stitt 2ed2408ed3 even more authorized_request 2022-09-22 21:04:03 +00:00
Bryan Stitt 43846a7051 pass authorized_request through a bunch of places 2022-09-22 20:27:14 +00:00
Bryan Stitt 6905e9fd46 create a struct for authenticated requests that we need for per-key stats 2022-09-22 19:57:21 +00:00
Bryan Stitt 8481f6d44c wip 2022-09-21 23:50:55 +00:00
Bryan Stitt 339bd41f50 change rpm to u64 and create RevertLogs table 2022-09-21 19:55:43 +00:00
Bryan Stitt 37a1aa554b revert error saving and extract blockHash from requests 2022-09-21 04:48:21 +00:00
Bryan Stitt 6054c3f340 we do need fetch_sub 2022-09-21 02:48:02 +00:00
Bryan Stitt d98b6aeff3 split error counts 2022-09-20 06:59:10 +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 e35a4119e7 context is really handy 2022-09-20 01:37:15 +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 90fed885bc add ttl to user_cache 2022-09-19 23:09:31 +00:00
Bryan Stitt 8785cb6d2d no idle timeout or max lifetime 2022-09-19 22:41:53 +00:00
Bryan Stitt b2adc73b50 upgrade tokio-stream 2022-09-19 22:25:45 +00:00
Bryan Stitt 3e3a9fcf64 larger max_capacity now that there is a weigher 2022-09-19 22:24:56 +00:00
Bryan Stitt a7761a0430 add a weigher function to sized caches 2022-09-19 22:17:35 +00:00
Bryan Stitt b6275aff1e no need for an atomic bool 2022-09-19 22:17:24 +00:00
Bryan Stitt 28fa424c2a start weighers 2022-09-17 02:30:06 +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 12b6d01434 work in progress 2022-09-15 17:57:24 +00:00
Bryan Stitt 7a1433e3c9 no longer need to use total difficulty on ETH 2.0 2022-09-14 19:39:08 +00:00
Bryan Stitt 31227d8c0c drop in flight. throughput is enough 2022-09-14 07:08:48 +00:00
Bryan Stitt 731a255d2f add old block to log and more todos 2022-09-14 06:57:24 +00:00
Bryan Stitt ea8f6091f9 improve (but disable) rate limits 2022-09-14 06:41:34 +00:00
Bryan Stitt ed505cdd23 fix check for http providers
even the websocket providers have an http_client set. maybe drop that?
2022-09-14 06:38:53 +00:00
Bryan Stitt 1730b8c7a5 switch to deadpool 2022-09-14 06:18:13 +00:00
Bryan Stitt 789672be43 try fixing warning about missing blocks 2022-09-14 05:26:46 +00:00
Bryan Stitt a5ccec76c7 silence some warnings and make private rpcs an option 2022-09-14 04:27:18 +00:00
Bryan Stitt 1d4d5844d0 reconnect -> connect 2022-09-14 03:32:38 +00:00
Bryan Stitt 612f5a48c1 minor polish to error 2022-09-14 03:01:58 +00:00
Bryan Stitt 5a16b9eed8 fix reconnect for http clients 2022-09-14 02:11:48 +00:00
Bryan Stitt 7eaf6f3540 retrying reconnect 2022-09-14 01:43:09 +00:00
Bryan Stitt 73a2fcaf72 add FAQ 2022-09-14 01:42:48 +00:00
Bryan Stitt 519c312e8d reconnect needs to clear more state 2022-09-12 23:00:10 +00:00
Bryan Stitt dc30bdcef3 cargo upgrade 2022-09-12 14:36:26 +00:00
Bryan Stitt 05e94ff81c send UNAUTHORIZED to unknown keys 2022-09-12 14:33:55 +00:00
Bryan Stitt 7ff319e9b0 reconnect sooner 2022-09-12 14:33:19 +00:00
Bryan Stitt 88661fa865 return UnknownKey instead of error 2022-09-10 03:46:02 +00:00
Bryan Stitt d98886db14 simple status json and prometheus 2022-09-10 02:59:07 +00:00
Bryan Stitt 501f2b0b24 improve logging 2022-09-10 00:58:33 +00:00
Bryan Stitt 879c6e49f2 dry errors so that rate limits dont log so much 2022-09-10 00:12:14 +00:00
Bryan Stitt c8da98d12e even more metrics 2022-09-09 03:53:16 +00:00
Bryan Stitt cae034afb3 better metrics and spawn 2022-09-08 21:01:36 +00:00
Bryan Stitt cfca16319b lower uncle log level 2022-09-07 20:24:45 +00:00
Bryan Stitt 2c41cad452 more counts to the status page 2022-09-07 04:11:47 +00:00
Bryan Stitt c9b2c0c0d2 dry cache code 2022-09-07 03:54:16 +00:00
Bryan Stitt 5eef5173a1 disable redis rate limits 2022-09-06 22:55:17 +00:00
Bryan Stitt e4d25b207d better default connection counts 2022-09-06 20:50:37 +00:00
Bryan Stitt c89295ef7e we should use retry_at 2022-09-06 20:33:25 +00:00
Bryan Stitt c34e8ef383 improve rate limiting and request counters 2022-09-06 20:13:07 +00:00
Bryan Stitt 98265424bb set response id in another spot. this is too fragile 2022-09-06 17:56:49 +00:00
Bryan Stitt 041dd5f317 more logs and beginning of a health check 2022-09-06 16:49:07 +00:00
Bryan Stitt 83a7b03dea improve no-op subscription
can still be improved more
2022-09-06 13:14:15 +00:00
Bryan Stitt bb96757452 None instead of Block::default() more places 2022-09-06 12:29:37 +00:00
Bryan Stitt e8977d203b use None more 2022-09-06 03:26:23 +00:00