Bryan Stitt
0c990b0755
use a cancel-safe channel for stats
2023-05-12 16:02:43 -07:00
Bryan Stitt
510612d343
use kanal instead of flume or tokio channels ( #68 )
2023-05-12 15:47:01 -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
David
34ed450fab
User Balance + Referral Logic ( #44 )
...
* will implement balance topup endpoint
* will quickly fix other PR reviews
* merging from master
* will finish up godmoe
* will finish up login
* added logic to top up balance (first iteration)
* should implement additional columns soon (currency, amount, tx-hash), as well as a new table for spend
* updated migrations, will account for spend next
* get back to this later
* will merge PR from stats-v2
* stats v2
rebased all my commits and squashed them down to one
* cargo upgrade
* added migrtation for spend in accounting table. will run test-deposit next
* trying to get request from polygon
* first iteration /user/balance/:tx_hash works, needs to add accepted tokens next
* creating the referral code seems to work
* will now check if spending enough credits will lead to both parties receiving credits
* rpcstats takes care of accounting for spend data
* removed track spend from table
* Revert "removed track spend from table"
This reverts commit a50802d6ae75f786864c5ec42d0ceb2cb27124ed.
* Revert "rpcstats takes care of accounting for spend data"
This reverts commit 1cec728bf241e4cfd24351134637ed81c1a5a10b.
* removed rpc request table entity
* updated referral code to use ulid s
* credits used are aggregated
* added a bunch of fields to referrer
* added database logic whenever an aggregate stats is added. will have to iterate over this a couple times i think. go to (1) detecting accepted stables next, (2) fix influxdb bug and (3) start to write test
* removed track spend as this will occur in the database
* will first work on "balance", then referral. these should really be treated as two separate PRs (although already convoluted)
* balance logic initial commit
* breaking WIP, changing the RPC call logic functions
* will start testing next
* got rid of warnings & lint
* will proceed with subtracting / adding to balance
* added decimal points, balance tracking seems to work
* will beautify code a bit
* removed deprecated dependency, and added topic + deposit contract to app.yaml
* brownie test suite does not rely on local contract files it pulls all from polygonscan
* will continue with referral
* should perhaps (in a future revision) recordhow much the referees got for free. marking referrals seems to work rn
* user is upgraded to premium if they deposit more than 10$. we dont accept more than $10M in a single tx
* will start PR, referral seems to be fine so far, perhaps up to some numbers that still may need tweaking
* will start PR
* removed rogue comments, cleaned up payments a bit
* changes before PR
* apply stats
* added unique constraint
* some refactoring such that the user file is not too bloated
* compiling
* progress with subusers, creating a table entry seems to work
* good response type is there as well now, will work on getters from primary user and secondary user next
* subuser logic also seems fine now
* downgrade logic
* fixed bug influxdb does not support different types in same query (which makes sense)
* WIP temporary commit
* merging with PR
* Delete daemon.rs
there are multiple daemons now, so this was moved to `proxyd`
* will remove request clone to &mut
* multiple request handles for payment
* making requests still seem fine
* removed redundant commented out bits
* added deposit endpoint, added deposit amount and deposit user, untested yet
* small bug with downgrade tier id
* will add authorization so balance can be received for users
* balance history should be set now too
* will check balance over time again
* subususer can see rpc key balance if admin or owner
* stats also seems to work fine now with historical balance
* things seem to be building and working
* removed clone from OpenRequestHandle
* removed influxdb from workspace members
* changed config files
* reran sea-orm generate entities, added a foreign key, should be proper now
* removed contract from commit
* made deposit contract optional
* added topic in polygon dev
* changed deposit contract to deposit factory contract
* added selfrelation on user_tier
* added payment required
* changed chain id to u64
* add wss in polygon llamarpc
* removed origin and method from the table
* added onchain transactions naming (and forgot to add a migration before)
* changed foreign key to be the referrer (id), not the code itself
* forgot to add id as the target foreign key
* WIP adding cache to update role
* fixed merge conflicts
---------
Co-authored-by: Bryan Stitt <bryan@llamanodes.com>
Co-authored-by: Bryan Stitt <bryan@stitthappens.com>
2023-05-12 09:45:15 -07:00
Bryan Stitt
4889c3e1ce
Merge branch 'main' into devel
2023-04-18 20:38:43 -07:00
Bryan Stitt
d035049c8f
add /backups_needed endpoint for easy alerts
2023-04-13 17:15:01 -07:00
Bryan Stitt
b1120e635a
change some error codes jsonrpc error handling
2023-04-10 22:29:02 -07:00
Bryan Stitt
29c015508a
fix warnings in cargo doc
2023-04-10 15:06:40 -07:00
Bryan Stitt
7994c894bb
cargo clippy and fmt
2023-04-05 15:15:20 -07:00
Bryan Stitt
1a160a8c7d
Merge remote-tracking branch 'rorytrent/Web3ProxyError' into devel
2023-04-05 15:08:57 -07:00
yenicelik
0069e76040
latest changes from bryan
2023-04-04 14:40:22 +02:00
Rory Neithinger
f0d8a0c8c9
Merge branch 'stats_v3' of github.com:yenicelik/web3-proxy into Web3ProxyError
2023-04-01 00:04:44 -07:00
Rory Neithinger
ffdf25787f
Merge branch 'stats_v3' of github.com:yenicelik/web3-proxy into Web3ProxyError
2023-03-31 23:23:30 -07:00
yenicelik
0bb3a2dc06
simple changes around bryans comments
2023-03-31 12:43:41 +01:00
yenicelik
345fa6c513
git status
2023-03-30 13:42:56 +01:00
yenicelik
05463c7ee5
migration seems to work for the most part
2023-03-30 12:54:01 +01:00
Bryan Stitt
c0afc295ca
add hostname to status
2023-03-22 15:18:54 -07:00
Bryan Stitt
8eff48611c
more direct consensus finding code
...
this hopefully has less bugs. speed isn't super important since this isn't on the host path.
2023-03-22 13:10:15 -07:00
Rory Neithinger
e9c1d019fc
fix some incorrect error codes and log levels
2023-03-21 22:52:46 -07:00
Rory Neithinger
fe2a760c8a
more conversions to Web3ProxyError
2023-03-20 13:45:21 -07:00
Rory Neithinger
847e961eb0
remove more anyhows from app module
...
the only ones left should be in the top level spawn functions.
2023-03-20 13:07:24 -07:00
Rory Neithinger
60c1a6d382
remove anyhow from rest of frontend module
2023-03-20 12:47:57 -07:00
Rory Neithinger
3479bf9d06
add context type which preserves status code
2023-03-20 11:38:54 -07:00
Rory Neithinger
1493d73386
better error handling for ws
2023-03-19 19:14:46 -07:00
Rory Neithinger
beac7ee017
better error handling for proxy_web3_rpc()
2023-03-19 18:52:28 -07:00
Rory Neithinger
c32d12b5e0
better error handling for ip_is_authorized()
2023-03-19 15:50:25 -07:00
Rory Neithinger
f3fc4924dc
Refactor FrontendErrorResponse into Web3ProxyError
...
Renamed FrontendResponse to Web3ProxyResponse and introduced
a new generic type alias Web3ProxyResult.
Fixed a few noisy cargo warnings.
2023-03-16 22:21:20 -07:00
Bryan Stitt
b0c5d2b0eb
remove debugging headers
2023-03-10 09:45:55 -08:00
Bryan Stitt
89853e24e5
all strings for json
2023-03-09 22:53:01 -08:00
Bryan Stitt
babd215e69
add an endpoint for debugging headers
2023-03-09 22:51:23 -08:00
Bryan Stitt
d7a843cdc5
lint
2023-03-09 09:32:17 -08:00
David
d25eed0bd2
hotfix for admin address changes ( #39 )
2023-03-07 15:44:22 -08:00
Bryan Stitt
c7dcc4aac3
actually return a json result from influx
2023-03-04 20:54:24 +01:00
Bryan Stitt
eb4d05a520
stats v2
...
rebased all my commits and squashed them down to one
2023-03-04 20:48:49 +01:00
Bryan Stitt
3098791ad9
add optional kafka feature
2023-03-03 01:39:50 +00:00
Bryan Stitt
b87c988439
lint
2023-03-01 11:23:59 -08:00
yenicelik
fb5c9c8770
typo login should have been logout
2023-02-27 10:56:06 +01:00
yenicelik
a7161790f1
pull from origin, about to push
2023-02-19 21:45:58 +01:00
yenicelik
f783ff66cf
fix some errors that occurred during refactor
2023-02-19 21:43:38 +01:00
yenicelik
38ac23ca06
added admin trail when someone tries to login for godmode
2023-02-19 21:34:42 +01:00
yenicelik
85bec3aaf0
currently also have to specify the admin user calling the request. also added a tiny manual test to imitate user. will add trails next
2023-02-19 21:34:42 +01:00
yenicelik
b1f18460d1
changes from review. will test now
2023-02-19 21:34:42 +01:00
yenicelik
de8d665e40
should next write some simple end2end test
2023-02-19 21:34:42 +01:00
yenicelik
f701109aed
should write some tests next
2023-02-19 21:34:42 +01:00
yenicelik
1250b7dba2
continue rebase
2023-02-19 21:34:39 +01:00
yenicelik
6420dc6aa6
tiny refactoring and added admin entities. some bugs coming up
2023-02-19 21:27:59 +01:00
yenicelik
310df0c86d
apply rebase
2023-02-19 21:27:53 +01:00
yenicelik
9e3c3fcbe0
continue rebase
2023-02-19 21:25:29 +01:00
yenicelik
d6a7b702f8
added admin trail when someone tries to login for godmode
2023-02-15 17:10:45 +01:00
yenicelik
44ae497100
currently also have to specify the admin user calling the request. also added a tiny manual test to imitate user. will add trails next
2023-02-15 15:20:16 +01:00
yenicelik
8562fc3384
changes from review. will test now
2023-02-10 17:48:51 +00:00
yenicelik
cc41e54cbf
Merge branch 'upstream-main' into 19-admin-imitate
2023-02-10 17:12:22 +00:00
David
67765d2bd5
Merge branch 'llamanodes:main' into main
2023-02-10 16:34:10 +00:00
Bryan Stitt
0f280ce483
cargo upgrade and shorten variable names
...
also begin adding a latency tracker for rpc stats
2023-02-06 09:55:27 -08:00
yenicelik
a0e257c8cb
added endpoint to get or create the referral link for a given user
2023-02-05 14:53:41 +01:00
Bryan Stitt
1d749ed33d
block all admin_ commands
2023-02-03 10:56:19 -08:00
Bryan Stitt
9ac3ef1e3d
cache /health and cache /status for longer
2023-02-02 13:58:04 -08:00
yenicelik
4582cf3e37
should next write some simple end2end test
2023-01-31 15:08:46 +01:00
yenicelik
fadb61114a
should write some tests next
2023-01-30 20:02:28 +01:00
yenicelik
31788bb228
imitating user. login flow still needs to check for read-only at every checkpoint. also referral logic can be removed from the login_post function
2023-01-30 17:45:24 +01:00
yenicelik
04687b3392
ingested changes from upstream main. added another cli admin endpoint
2023-01-29 23:27:34 +01:00
Bryan Stitt
b9a12756b9
collect request_metadata.response_from_backup_rpc
2023-01-19 21:46:47 -08:00
Bryan Stitt
0731d92dec
use best, not fastest with websocket
2023-01-19 18:32:31 -08:00
Bryan Stitt
90d3371eee
improved rate limiting on websockets
2023-01-18 16:17:47 -08:00
Bryan Stitt
e4a223732a
add APP_USER_AGENT to the status page
2023-01-17 20:18:18 -08:00
Bryan Stitt
9ba4c288c6
quick health check script that logs to sentry
2023-01-17 15:42:25 -08:00
yenicelik
f0be397b09
tiny refactoring and added admin entities. some bugs coming up
2023-01-17 20:12:40 +01:00
yenicelik
62f89a127d
will stash wrong entities
2023-01-17 19:55:54 +01:00
yenicelik
dc11cc89f7
first commit adding admin endpoint to modify users tier. TODO: clear cache
2023-01-17 16:04:23 +01:00
Bryan Stitt
d7c75f843e
add stub try_proxy_connection
2023-01-16 22:54:40 -08:00
Bryan Stitt
8ddfd111d5
lint
2023-01-13 13:45:33 -08:00
Bryan Stitt
e4f1716f06
broadcast txs to less servers
2023-01-11 14:55:41 -08:00
Bryan Stitt
cefbfef4d0
lint
2023-01-06 16:01:10 -08:00
Bryan Stitt
fb62243c3e
Revert "cargo upgrade and use trailing slash route extra"
...
This reverts commit 5bfba3a87afbf4157c2b0bd36273e3dcc4075578.
2023-01-06 15:58:52 -08:00
Bryan Stitt
5bfba3a87a
cargo upgrade and use trailing slash route extra
2023-01-06 14:22:57 -08:00
Bryan Stitt
eb3fe0b1b5
start moving more stats from /status to /prometheus
2023-01-06 14:02:06 -08:00
Bryan Stitt
bc5ffc2366
add trailing slash for some routes
2023-01-06 13:40:10 -08:00
Bryan Stitt
664ecf5924
use None if on head block
2023-01-04 12:12:44 -08:00
Bryan Stitt
045065986a
move allowed_lag around
2023-01-04 12:07:53 -08:00
Bryan Stitt
fb56729ab1
fix key
2022-12-28 23:16:35 -08:00
Bryan Stitt
81c49d08cf
tx stats too
2022-12-28 22:21:09 -08:00
Bryan Stitt
68183c34c7
more stats and rate limit on user, not key
2022-12-28 13:50:40 -08:00
Bryan Stitt
516e130558
missing clone
2022-12-28 00:32:51 -08:00
Bryan Stitt
d9c01a59a3
salted recent ip tracking
2022-12-27 22:11:18 -08:00
Bryan Stitt
15c5ebf3bc
spawn less
2022-12-27 19:43:02 -08:00
Bryan Stitt
8c9ad4f453
trim whitespace on authorization checks
2022-12-23 19:03:30 -08:00
Bryan Stitt
4a837b35cc
improve eth_sendRawTransaction
2022-12-23 17:35:35 -08:00
Bryan Stitt
9bcbadd81a
improve some errors
2022-12-23 12:17:14 -08:00
Bryan Stitt
11a7aff8e0
don't unwrap. still might be more errors to handle though
2022-12-23 12:12:17 -08:00
Bryan Stitt
1fecfd8821
don't unwrap an error
2022-12-23 12:03:48 -08:00
Bryan Stitt
c0b457cec8
fix allow_not_ready
2022-12-20 21:47:41 -08:00
Bryan Stitt
ef64ee0a12
longer header name
2022-12-20 11:01:34 -08:00
Bryan Stitt
4d34bc629c
whitespace
2022-12-20 10:58:57 -08:00
Bryan Stitt
fd1be8a702
move more into the spawned task
2022-12-20 10:54:13 -08:00
Bryan Stitt
28510f8bba
fix warn message on 500 error codes
2022-12-19 21:39:17 -08:00
Bryan Stitt
82eb449e96
add backend nodes to the rpc response headers
...
only do this in dev?
2022-12-19 21:37:12 -08:00
Bryan Stitt
f27c764a07
more logs
2022-12-19 15:59:01 -08:00
Bryan Stitt
27a318c70e
default description to None. frontend shows a cute llama
2022-12-19 10:57:30 -08:00
Bryan Stitt
f04905698a
improve request caching
2022-12-16 20:05:01 -08:00
Bryan Stitt
1465ee355c
add support for optional db replica
...
also add cleanup of expired login data
2022-12-16 00:48:24 -08:00
Bryan Stitt
0a60ccd95e
query_user_stats caching
2022-12-15 22:32:58 -08:00
Bryan Stitt
fbafcca528
fix row and page counts
2022-12-14 18:45:54 -08:00
Bryan Stitt
081873e937
move pending logins to the database
2022-12-13 18:34:08 -08:00
Bryan Stitt
78df4177a6
consistent case
2022-12-12 11:00:15 -08:00
Bryan Stitt
4c2d3634c5
default to less detailed stats
2022-12-11 20:39:54 -08:00
Bryan Stitt
5bec8bb5b9
much smarter connection logic
2022-12-05 14:11:56 -08:00
Bryan Stitt
c8d4e1a653
todo
2022-11-28 20:00:24 +00:00
Bryan Stitt
0406b0dc8d
fix redirect. config for login domain
2022-11-28 19:59:42 +00:00
Bryan Stitt
9d7d6c2b22
fix sign in url
2022-11-28 16:37:15 +00:00
Bryan Stitt
4dfb7a5451
fix archive node detection when nodes used to be archive but than changed flags
2022-11-25 00:48:17 +00:00
Bryan Stitt
43d550190b
lower log level
2022-11-24 11:04:10 +00:00
Bryan Stitt
ae39636cd2
fix some error status codes
2022-11-21 17:49:57 +00:00
Bryan Stitt
217a7b3fd3
eth_subscribe rpc_accounting logging
2022-11-19 22:05:51 +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
2829ce7a7d
lint more
2022-11-16 07:19:56 +00:00
Bryan Stitt
ea5f791560
simple lock around database migrations
2022-11-14 18:24:52 +00:00
Bryan Stitt
0e1cf5767c
cut out tracing for now
2022-11-12 08:24:32 +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
31395c9934
rpc_key_id in the redirect. weights in the /status page
2022-11-07 22:10:19 +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
e8f2a13f5d
better stats aggregations
2022-11-02 23:14:16 +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
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
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
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
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
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
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
3f9a20c7a6
context instead of todo
2022-10-20 07:10:35 +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
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
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
a7b5f25467
unwrap less
2022-09-30 04:18: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
a80503ac48
better logging on save reverts checks
2022-09-24 07:04:11 +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
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
7f7be6aa69
flatter
2022-09-22 22:34:43 +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
abe5001792
atomic and less expires
2022-09-20 06:56:24 +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
b6275aff1e
no need for an atomic bool
2022-09-19 22:17:24 +00:00
Bryan Stitt
12b6d01434
work in progress
2022-09-15 17:57:24 +00:00
Bryan Stitt
ea8f6091f9
improve (but disable) rate limits
2022-09-14 06:41:34 +00:00
Bryan Stitt
1730b8c7a5
switch to deadpool
2022-09-14 06:18:13 +00:00
Bryan Stitt
05e94ff81c
send UNAUTHORIZED to unknown keys
2022-09-12 14:33:55 +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
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
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
e261886c60
user_address change not made yet
2022-09-05 06:29:27 +00:00
Bryan Stitt
6e12edd555
use sized Caches
2022-09-05 05:53:58 +00:00
Bryan Stitt
593eb461b8
more dashmap
2022-09-05 01:52:59 +00:00
Bryan Stitt
1c2f3e1445
dry user data caching
2022-09-03 19:43:19 +00:00
Bryan Stitt
8225285bb8
bug fix and better logs
2022-09-03 02:59:30 +00:00
Bryan Stitt
2606844c61
almost done with heaviest chain tracking
2022-09-02 05:40:56 +00:00
Bryan Stitt
e5e137f76c
fix deadlock
2022-08-30 20:01:42 +00:00
Bryan Stitt
93fe878748
more use login things
2022-08-27 05:42:25 +00:00
Bryan Stitt
8703532ed7
better logs and minor cleanup
2022-08-27 02:14:53 +00:00
Bryan Stitt
81254a24be
wip
2022-08-26 17:26:17 +00:00
Bryan Stitt
3496c828b8
rearrange code
2022-08-23 23:13:56 +00:00
Bryan Stitt
31d30b0eed
use an enum and database roles for auth checks
2022-08-23 20:42:58 +00:00
Bryan Stitt
e65edc7795
add stub verify_auth_token function
2022-08-23 19:08:47 +00:00
Bryan Stitt
8f5e4a200e
create bearer and save bearer separately
2022-08-23 18:56:19 +00:00
Bryan Stitt
0ca7b828b3
check ip rate limit on user post
2022-08-23 18:53:14 +00:00
Bryan Stitt
2989b7e91c
dry redis connections and use bearer tokens
2022-08-23 18:48:27 +00:00
Bryan Stitt
94bc6fef8c
remove unnecessary enum and try_into
2022-08-21 09:47:38 +00:00
Bryan Stitt
bda666eb6c
delete unused code after the rate limit refactor
2022-08-21 09:44:53 +00:00
Bryan Stitt
b16aa8d813
dry rate_limit_by_x
2022-08-21 09:39:38 +00:00
Bryan Stitt
748674fe7a
forgot to git add this
2022-08-21 08:30:49 +00:00
Bryan Stitt
5af834d710
it compiles
2022-08-21 08:27:52 +00:00
Bryan Stitt
9a2fe46105
multiple ways to sign
2022-08-19 20:18:12 +00:00
Bryan Stitt
29731412ea
user login almost done
2022-08-16 23:05:23 +00:00
Bryan Stitt
115657e97c
half the login page and better error handling
2022-08-16 22:52:12 +00:00
Bryan Stitt
0ccda2f40b
it compiles
2022-08-16 21:43:39 +00:00
Bryan Stitt
a61af53117
cache api keys that are not in the database
2022-08-16 21:10:09 +00:00
Bryan Stitt
305d89ddf4
error refactor for user endpoints
2022-08-16 19:29:00 +00:00
Bryan Stitt
d82fae161f
use rpm flag when creating a user
2022-08-16 17:47:04 +00:00
Bryan Stitt
d822c607d9
instrument with spans and allow skipping jsonrpc
2022-08-16 04:56:01 +00:00
Bryan Stitt
3b23ed1f8e
tower-request-id
2022-08-16 00:33:26 +00:00
Bryan Stitt
e9000d1f61
drop redis-cell in favor of simpler query
2022-08-15 22:50:56 +00:00