* cargo upgrade --incompatible and update
* first draft at suprisingly_large_refactor_to_get_ids_everywhere
* put app in a task_local
* ref cleanup
* use a OnceLock instead of a tokio local
* test more methods
* APP isn't set in all tests
* it compiles. tests fail. todos still open
* use the app only when necessary
* more tests. less panic
* less verbose debug impl
* short enum names
* move kafka and secrets to their own files
* main tests pass
* add debug chain block time
* helper for stats that ignores internal stats
* Update Jenkinsfile (#223)
* more tests
---------
Co-authored-by: Pewxz <124064710+pewxz@users.noreply.github.com>
* streaming responses compile, still small TODOs & cleanup
* refactor to allow short curcuits on uncacheable requests (#220)
* refactor to allow short curcuits on uncacheable requests
* handle error inside an Arc from moka
* arc instead of box
* lint
* more lint
* add bonus rate limits and keep all semaphores after rate limits (#221)
* add bonus rate limits and keep all semaphores after rate limits
* remove stale todos
* better function names
* cargo upgrade and update
* make some panics warn. more todo
* pass request_metadata through so streaming responses include their final size
* remove stale TODO
* remove more stale todos
* add file i missed
* make to_json_string work well enough
* check config for free_subscriptions
---------
Co-authored-by: Rory Neithinger <rory@llamanodes.com>
* dont migrate on start. just connect
* it compiles
* that log is loud
* get transaction from a local clone
* import the trait
* put the test app into a thread instead of tokio::spawn
* fix one test
* try db before rpcs
* db connection is too slow. need to wait for it
* do db setup once while spawning
* add more columns to handle uncled transactions
* handle payment uncles
* put relations back
* include all the new columns
* lower log levels
* improve block caching
if we have a block with a number, its canonical. uncles don't get returned
* improve disconnect logic
* lint
* clear first changed for new_top_config_receiver
* better logs around config changing
* i guess we do want one apply top_config at the start
* check correct variable for data limits
* wip
* AsRef finally works like i wanted
* actually return the block
* start adding async trait
* remove stale import
* include id in the error response when possible
* remove stale comments
* quick cache and allocate less
* improve /status cache
* prepare to cache raw transaction hashes so we dont dos our backends
* simple benchmark for /health and /status
* mut not needed with atomics
* DRY all the status pages
* use u64 instead of bytes for subscriptions
* fix setting earliest_retry_at and improve logs
* Revert "use kanal instead of flume or tokio channels (#68)"
This reverts commit 510612d343fc51338a8a4282dcc229b50097835b.
* fix automatic retries
* put relaxed back
* convert error message time to seconds
* assert instead of debug_assert while we debug
* ns instead of seconds
* disable peak_latency for now
* null is the default
* cargo fmt
* comments
* remove request caching for now
* log on exit
* unit weigher for now
* make cache smaller. we need a weigher for prod. just debugging
* oops. we need async
* add todo
* no need for to_string on a RawValue
* 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