Go to file
godmodegalactus 1752a17189
building blocks with accounts, changing defaults
2024-09-23 13:02:35 +02:00
block-builder many minor changes 2024-07-10 18:02:46 +02:00
blocking_client fixing unit tests in main branch 2024-08-25 03:43:22 +02:00
client Adding more logs and testing 2024-09-11 10:42:19 +02:00
common building blocks with accounts, changing defaults 2024-09-23 13:02:35 +02:00
examples adding more logs to debug the issues 2024-08-26 12:46:34 +02:00
plugin adding prometheus metrics 2024-09-20 17:24:21 +02:00
proxy many minor changes 2024-07-10 18:02:46 +02:00
quiche fixing performance issues for big messages 2024-09-23 10:11:42 +02:00
server adding prometheus metrics 2024-09-20 17:24:21 +02:00
snapshot removing throtlling by partial responses 2024-07-29 09:00:29 +02:00
.gitignore Creating 3 libraries, for plugin, client and common code between them 2024-05-10 11:46:04 +02:00
Cargo.lock adding prometheus metrics 2024-09-20 17:24:21 +02:00
Cargo.toml adding prometheus metrics 2024-09-20 17:24:21 +02:00
README.md Creating seperate filters for all accounts subscription and all transactions subscription 2024-05-19 19:35:35 +02:00
config.json encode base64 snapshot response 2024-07-15 16:13:03 +02:00
run_clippy_fmt.sh moving clippy to stable 1.76.0 2024-06-21 09:41:42 +02:00
rust-toolchain.toml Updating solana to v1.18.16 2024-06-11 10:18:11 +02:00

README.md

QUIC GEYSER PLUGIN

Solana geyser plugin which implements quic frontend for faster http-3 access of solana data.

Running Geyser

Compile and start the geyser plugin on a validator, and example config file is provided in config.json.

// To start a validator with geyser plugin add following argument to the solana validator
--geyser-plugin-config config.json

Client

Client can be configured like this :

use quic_geyser_client::client::Client;

let url = "127.0.0.1:10800"; // Address of quic plugin on the RPC
let client = Client::new( url, &Keypair::new(), ConnectionParameters::default())
        .await
        .unwrap();

// to subscribe updates for stake program, slots and blockmeta
client.subscribe(vec![
            Filter::Account(AccountFilter {
                owner: Some("Stake11111111111111111111111111111111111111"),
                accounts: None,
            }),
            Filter::Slot,
            Filter::BlockMeta,
        ])
        .await
        .unwrap();

You can also subscibe to all the account updates by using filter Filter::AccountsAll Similarly you can also subscibe to all transaction update by setting filter : Filter::TransactionsAll,.

Tester

Tester is an example program, which gets all the possible updates from quic server and tests the bandwidth used and lags wrt rest of the cluster.

You can run tester with following command.

cargo run --bin geyser-quic-plugin-tester --release -- -u ip_address:10800 -r rpc_address