Use a single long-lived RPC connection when authenticated

The prior system spawned a new connection per request to enable parallelism,
yet kept hitting hyper::IncompleteMessages I couldn't track down. This
attempts to resolve those by a long-lived socket.

Halves the amount of requests per-authenticated RPC call, and accordingly is
likely still better overall.

I don't believe this is resolved yet but this is still worth pushing.
This commit is contained in:
Luke Parker
2023-11-06 23:45:39 -05:00
parent c03fb6c71b
commit 56fd11ab8d
14 changed files with 169 additions and 76 deletions

View File

@@ -191,8 +191,8 @@ fn map_rpc_err(err: RpcError) -> NetworkError {
}
impl Monero {
pub fn new(url: String) -> Monero {
Monero { rpc: HttpRpc::new(url).unwrap() }
pub async fn new(url: String) -> Monero {
Monero { rpc: HttpRpc::new(url).await.unwrap() }
}
fn view_pair(spend: EdwardsPoint) -> ViewPair {