MCPcopy Index your code
hub / github.com/blockworks-foundation/quic_geyser_plugin

github.com/blockworks-foundation/quic_geyser_plugin @solana-v1.18

Chat with this repo
repository ↗ · DeepWiki ↗ · release solana-v1.18 ↗ · + Follow
162 symbols 377 edges 50 files 6 documented · 4% updated 8mo ago★ 42
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 62
Function 59
Class 33
Enum 7
Interface 1

Languages

Rust100%

Modules by API surface

plugin/src/quic_plugin.rs14 symbols
common/src/stream_manager.rs13 symbols
server/src/quiche_server_loop.rs10 symbols
client/src/non_blocking/client.rs9 symbols
quiche/src/quiche_utils.rs8 symbols
examples/tester-client/src/main.rs8 symbols
common/src/config.rs8 symbols
plugin/src/rpc_server.rs7 symbols
common/src/filters.rs7 symbols
plugin/src/config.rs6 symbols
common/src/message.rs6 symbols
blocking_client/src/client.rs6 symbols

For agents

$ claude mcp add quic_geyser_plugin \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page