dd5ad1b875 | ||
---|---|---|
.. | ||
src | ||
tests | ||
Cargo.toml | ||
README.md |
README.md
+------------+ +------------+ +------------+ +------------+
| | | | | | | |
| bench | ---1---> | lite-rpc | ---2---> | proxy | ---3---> | validator |
| | | | | | | |
+------------+ +------------+ +------------+ +------------+
1. rpc request
2. tpu forward proxy request (QUIC): transactions, tpu address and tpu identity
3. tpu call (QUIC), transactions:
Local Development / Testing
- run test-validator (tested with 1.16.1)
RUST_LOG="error,solana_streamer::nonblocking::quic=debug" solana-test-validator --log
- run quic proxy
RUST_LOG=debug cargo run --bin solana-lite-rpc-quic-forward-proxy -- --proxy-listen-addr 0.0.0.0:11111 --identity-keypair /pathto-test-ledger/validator-keypair.json
- run lite-rpc
RUST_LOG=debug cargo run --bin lite-rpc -- --experimental-quic-proxy-addr 127.0.0.1:11111
- run rust bench tool in lite-rpc
cd bench; cargo run -- --tx-count=10
Example Output from Solana Validator:
(note: the peer type is Staked)
[2023-06-26T15:16:18.430602000Z INFO solana_streamer::nonblocking::quic] Got a connection 127.0.0.1:8058
[2023-06-26T15:16:18.430633000Z DEBUG solana_streamer::nonblocking::quic] Peer public key is EPLzGRhibYmZ7qysF9BiPmSTRaL8GiLhrQdFTfL8h2fy
[2023-06-26T15:16:18.430839000Z DEBUG solana_streamer::nonblocking::quic] Peer type: Staked, stake 999999997717120, total stake 999999997717120, max streams 2048 receive_window Ok(12320) from peer 127.0.0.1:8058
[2023-06-26T15:16:18.430850000Z DEBUG solana_streamer::nonblocking::quic] quic new connection 127.0.0.1:8058 streams: 0 connections: 1
[2023-06-26T15:16:18.430854000Z DEBUG solana_streamer::nonblocking::quic] stream error: ApplicationClosed(ApplicationClose { error_code: 0, reason: b"done" })
QUIC/QUINN Endpoint and Connection specifics
- keep-alive and idle timeout: both values must be aligned AND they must be configured on both endpoints (see docs)
- tune or disable max_concurrent_uni_streams respectively