Compare commits
2 Commits
c1ca3e2e67
...
e9eb3ecdc5
Author | SHA1 | Date |
---|---|---|
GroovieGermanikus | e9eb3ecdc5 | |
GroovieGermanikus | 1d2937ad95 |
|
@ -4156,8 +4156,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "yellowstone-grpc-client"
|
||||
version = "1.14.0+solana.1.17.28"
|
||||
source = "git+https://github.com/rpcpool/yellowstone-grpc.git?tag=v1.13.0+solana.1.17.28#aafd827df872f093535c425ded4eca423929a3d0"
|
||||
version = "1.14.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1f4f6d836d214cb8789002d039412da354049e9ffe983c643ec492c4d934698f"
|
||||
dependencies = [
|
||||
"bytes",
|
||||
"futures",
|
||||
|
@ -4170,8 +4171,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "yellowstone-grpc-proto"
|
||||
version = "1.13.0+solana.1.17.28"
|
||||
source = "git+https://github.com/rpcpool/yellowstone-grpc.git?tag=v1.13.0+solana.1.17.28#aafd827df872f093535c425ded4eca423929a3d0"
|
||||
version = "1.13.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9c00b66d40d85c405f14b420d7674e98c70d06f6b673f36c9e0285f81b9b797d"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"bincode",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "geyser-grpc-connector"
|
||||
version = "0.10.1+yellowstone.1.12"
|
||||
version = "0.10.4+yellowstone.1.13"
|
||||
edition = "2021"
|
||||
|
||||
description = "Multiplexing and Reconnection on Yellowstone gRPC Geyser client streaming"
|
||||
|
@ -9,9 +9,8 @@ authors = ["GroovieGermanikus <groovie@mango.markets>"]
|
|||
repository = "https://github.com/blockworks-foundation/geyser-grpc-connector"
|
||||
|
||||
[dependencies]
|
||||
yellowstone-grpc-client = { version = "1.14.0", git = "https://github.com/rpcpool/yellowstone-grpc.git", tag = "v1.13.0+solana.1.17.28" }
|
||||
yellowstone-grpc-proto = { version = "1.13.0", git = "https://github.com/rpcpool/yellowstone-grpc.git", tag = "v1.13.0+solana.1.17.28" }
|
||||
|
||||
yellowstone-grpc-client = "~1.14.0"
|
||||
yellowstone-grpc-proto = "~1.13.0"
|
||||
|
||||
# required for CommitmentConfig
|
||||
solana-sdk = "1"
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
use futures::Stream;
|
||||
use log::{info, warn};
|
||||
use solana_sdk::clock::Slot;
|
||||
use solana_sdk::commitment_config::CommitmentConfig;
|
||||
use std::env;
|
||||
use std::pin::pin;
|
||||
|
||||
use base64::Engine;
|
||||
use itertools::Itertools;
|
||||
|
@ -23,10 +21,10 @@ use tokio::sync::mpsc::Receiver;
|
|||
use yellowstone_grpc_proto::geyser::SubscribeUpdateBlock;
|
||||
|
||||
use geyser_grpc_connector::grpc_subscription_autoreconnect_tasks::{
|
||||
create_geyser_autoconnection_task, create_geyser_autoconnection_task_with_mpsc,
|
||||
create_geyser_autoconnection_task_with_mpsc,
|
||||
};
|
||||
use geyser_grpc_connector::grpcmultiplex_fastestwins::{
|
||||
create_multiplexed_stream, FromYellowstoneExtractor,
|
||||
FromYellowstoneExtractor,
|
||||
};
|
||||
use geyser_grpc_connector::{GeyserFilter, GrpcConnectionTimeouts, GrpcSourceConfig, Message};
|
||||
use tokio::time::{sleep, Duration};
|
||||
|
|
|
@ -14,7 +14,6 @@ use tracing::warn;
|
|||
use yellowstone_grpc_proto::geyser::subscribe_update::UpdateOneof;
|
||||
use yellowstone_grpc_proto::geyser::SubscribeUpdate;
|
||||
use yellowstone_grpc_proto::prost::Message as _;
|
||||
use csv::Writer;
|
||||
|
||||
#[allow(dead_code)]
|
||||
fn start_example_blockmini_consumer(
|
||||
|
|
|
@ -5,9 +5,10 @@ use log::{debug, info, log, trace, warn, Level};
|
|||
use std::time::Duration;
|
||||
use tokio::task::JoinHandle;
|
||||
use tokio::time::{sleep, timeout};
|
||||
use yellowstone_grpc_client::{GeyserGrpcClient, GeyserGrpcClientResult};
|
||||
use yellowstone_grpc_client::GeyserGrpcClientResult;
|
||||
use yellowstone_grpc_proto::geyser::{SubscribeRequest, SubscribeUpdate};
|
||||
use yellowstone_grpc_proto::tonic::Status;
|
||||
use crate::yellowstone_grpc_util::{connect_with_timeout_with_buffers, GeyserGrpcClientBufferConfig};
|
||||
|
||||
enum ConnectionState<S: Stream<Item = Result<SubscribeUpdate, Status>>> {
|
||||
NotConnected(Attempt),
|
||||
|
@ -45,12 +46,16 @@ pub fn create_geyser_reconnecting_stream(
|
|||
log!(if attempt > 1 { Level::Warn } else { Level::Debug }, "Connecting attempt #{} to {}", attempt, addr);
|
||||
async move {
|
||||
|
||||
let connect_result = GeyserGrpcClient::connect_with_timeout(
|
||||
addr, token, config,
|
||||
connect_timeout,
|
||||
request_timeout,
|
||||
false)
|
||||
.await;
|
||||
let connect_result = connect_with_timeout_with_buffers(
|
||||
addr,
|
||||
token,
|
||||
config,
|
||||
connect_timeout,
|
||||
request_timeout,
|
||||
GeyserGrpcClientBufferConfig::optimize_for_subscription(&subscribe_filter),
|
||||
)
|
||||
.await;
|
||||
|
||||
let mut client = connect_result?;
|
||||
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ pub mod channel_plugger;
|
|||
pub mod grpc_subscription_autoreconnect_streams;
|
||||
pub mod grpc_subscription_autoreconnect_tasks;
|
||||
pub mod grpcmultiplex_fastestwins;
|
||||
mod yellowstone_grpc_util;
|
||||
pub mod yellowstone_grpc_util;
|
||||
mod obfuscate;
|
||||
|
||||
// 1-based attempt counter
|
||||
|
|
|
@ -104,7 +104,7 @@ pub async fn connect_with_timeout_with_buffers<E, T>(
|
|||
let interceptor = InterceptorXToken { x_token };
|
||||
|
||||
let channel = endpoint.connect_lazy();
|
||||
let mut client = GeyserGrpcClient::new(
|
||||
let client = GeyserGrpcClient::new(
|
||||
HealthClient::with_interceptor(channel.clone(), interceptor.clone()),
|
||||
GeyserClient::with_interceptor(channel, interceptor)
|
||||
.max_decoding_message_size(GeyserGrpcClient::max_decoding_message_size()),
|
||||
|
|
Loading…
Reference in New Issue