Compare commits

...

2 Commits

Author SHA1 Message Date
GroovieGermanikus e9eb3ecdc5
relax yellowstone dependencies 2024-04-16 10:18:04 +02:00
GroovieGermanikus 1d2937ad95
clippy 2024-04-16 10:12:59 +02:00
7 changed files with 25 additions and 22 deletions

10
Cargo.lock generated
View File

@ -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",

View File

@ -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"

View File

@ -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};

View File

@ -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(

View File

@ -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?;

View File

@ -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

View File

@ -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()),