diff --git a/Cargo.lock b/Cargo.lock index f01422c9..28a3167e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1813,7 +1813,6 @@ dependencies = [ [[package]] name = "geyser-grpc-connector" version = "0.10.6+yellowstone.1.13" -source = "git+https://github.com/blockworks-foundation/geyser-grpc-connector.git?tag=v0.10.6+yellowstone.1.13+solana.1.18.9#bb6aa57f0f707ca2c4c5b84c5ead4a60658f7f69" dependencies = [ "anyhow", "async-stream", @@ -1826,7 +1825,9 @@ dependencies = [ "log", "merge-streams", "solana-sdk", + "thiserror", "tokio", + "tonic", "tonic-health", "tracing", "url", @@ -3927,9 +3928,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.21.10" +version = "0.21.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" +checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" dependencies = [ "log", "ring 0.17.8", @@ -4293,9 +4294,9 @@ dependencies = [ [[package]] name = "solana-account-decoder" -version = "1.18.9" +version = "1.18.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5f49893e9e7cd1a45869e03ad6d767666544e47aa39cff5bcfd10c9b156177" +checksum = "b94ceb26c7d19530cb1bb49bf0f817647cb5fee691dae6779e19d33ac1d4fda1" dependencies = [ "Inflector", "base64 0.21.7", @@ -4318,9 +4319,9 @@ dependencies = [ [[package]] name = "solana-address-lookup-table-program" -version = "1.18.9" +version = "1.18.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3602b15a5c70a16cac6008d3556098b7990c5ab72b047a996f5ea4e988871975" +checksum = "195a93b87bd6794326a3c628cfcc8abaf70e476c4284bfb73545c873ba47c746" dependencies = [ "bincode", "bytemuck", @@ -4339,9 +4340,9 @@ dependencies = [ [[package]] name = "solana-clap-utils" -version = "1.18.9" +version = "1.18.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce8528b2853d64e0b27889948e9f41b264d758074be9d9b8ba4e0ddce7c476dd" +checksum = "32063b76137e13fba2f93fdf67f999d84ac587af962b48cb4115f272037b2fae" dependencies = [ "chrono", "clap 2.34.0", @@ -4356,9 +4357,9 @@ dependencies = [ [[package]] name = "solana-client" -version = "1.18.9" +version = "1.18.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "914b2b8e68c4b57a916400a77a66078a96b2914d7b218572ef8dff5a84e48ea2" +checksum = "31f6eaf198c544d4f448e6a86a51f9af8b328f041a490a007164a75194edf341" dependencies = [ "async-trait", "bincode", @@ -4389,9 +4390,9 @@ dependencies = [ [[package]] name = "solana-config-program" -version = "1.18.9" +version = "1.18.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "617228f9569238e544b526c422b632de368a5ce748a7af04f7f762bd937f42f3" +checksum = "378259800dc9dad34828d8be4ce0de71146bac1cbbd310f8901f6f19d92c5ea3" dependencies = [ "bincode", "chrono", @@ -4403,9 +4404,9 @@ dependencies = [ [[package]] name = "solana-connection-cache" -version = "1.18.9" +version = "1.18.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cec06c0772e0ebc54d22626ddb433eb798404fdc21b0175ac504f5fff4e50612" +checksum = "58b04571089f55754f5a09493ae0bcf8d8d5c8d9cd05be3e77c502f6b68c1a3b" dependencies = [ "async-trait", "bincode", @@ -4425,9 +4426,9 @@ dependencies = [ [[package]] name = "solana-frozen-abi" -version = "1.18.9" +version = "1.18.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc46edad65d122c8b8634aa9ad11276a804c1aa2404755577fdfdea67484b620" +checksum = "780402262644f9efe9ac7d885812d245007fe65fd56a3dfed83ed30d61b44c74" dependencies = [ "block-buffer 0.10.4", "bs58", @@ -4450,9 +4451,9 @@ dependencies = [ [[package]] name = "solana-frozen-abi-macro" -version = "1.18.9" +version = "1.18.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c71c603d2203da423cfd8862572ffca7165268e76cab181035f50d106c3710eb" +checksum = "df836de37aba77234c7afa1d857dc450fb9983572e4c6f595c84cdda65a63792" dependencies = [ "proc-macro2", "quote", @@ -4895,9 +4896,9 @@ dependencies = [ [[package]] name = "solana-logger" -version = "1.18.9" +version = "1.18.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5b3eef85d82c2c3030acb1d3272d77984d118d2a026d9b1a2cecc6e4c6602eb" +checksum = "9906be6edd0e1b579510736c153dbc51e5968808098d1b1f8c89dbea960aba58" dependencies = [ "env_logger", "lazy_static", @@ -4906,9 +4907,9 @@ dependencies = [ [[package]] name = "solana-measure" -version = "1.18.9" +version = "1.18.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd072023ab870dcb7d524980d9481317bfd29c1dfd74a067747c8d1d249d1075" +checksum = "7dc77e7f99fa5e845437ac9a593cd4bd67b5f9e4ba4a9578355eef25d3e839e9" dependencies = [ "log", "solana-sdk", @@ -4916,9 +4917,9 @@ dependencies = [ [[package]] name = "solana-metrics" -version = "1.18.9" +version = "1.18.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f594ca2a2698983b515580925d10be20b079617154bbed07d6cd455d1661b90" +checksum = "b0a9f68887ac31f84ef69365bdc2d7ca6bf19d50a9c6ee10806adb033e24e318" dependencies = [ "crossbeam-channel", "gethostname", @@ -4931,9 +4932,9 @@ dependencies = [ [[package]] name = "solana-net-utils" -version = "1.18.9" +version = "1.18.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e632ad2071b8c911baf873403273c574bb11da95947e2f56db4e53ef06b771fe" +checksum = "1ba07cceff31b644df6cd4acc909df077721fa047b624b9fa906d56bcc67435a" dependencies = [ "bincode", "clap 3.2.25", @@ -4953,9 +4954,9 @@ dependencies = [ [[package]] name = "solana-perf" -version = "1.18.9" +version = "1.18.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3012434718bf3e76ef46cbf3be98a2de877afe7bff6571232d64cc67dce219a" +checksum = "0b7fa87b3344f96afe1395b5bb822db2ad03cdc2dbe8338636d57c58102a520b" dependencies = [ "ahash 0.8.11", "bincode", @@ -4982,9 +4983,9 @@ dependencies = [ [[package]] name = "solana-program" -version = "1.18.9" +version = "1.18.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "760e9e923050f30f03a159aec9ba1fe09ae7c7494ebd8ba74dc5b7429b11085b" +checksum = "48ecc7af7594674687260a4d7bcfb0588cefdbe9d0f6c4e9f3140999107566c4" dependencies = [ "ark-bn254", "ark-ec", @@ -5037,9 +5038,9 @@ dependencies = [ [[package]] name = "solana-program-runtime" -version = "1.18.9" +version = "1.18.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a61b65be846413bc504ecae468b6a3fa91b1b37631c80074c41ada8cdc36d165" +checksum = "0ef9218f50470228ebca12bb147650ca7052678aad915a4e19687ee215f8d947" dependencies = [ "base64 0.21.7", "bincode", @@ -5065,9 +5066,9 @@ dependencies = [ [[package]] name = "solana-pubsub-client" -version = "1.18.9" +version = "1.18.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4173029a0e3a20930791886dce92c1a6d293a59754e418ac68547f3e14a8f025" +checksum = "60325aaab2bcd99ca51e1ff5a4673027a03591353a944151690b38d5dadc2c0f" dependencies = [ "crossbeam-channel", "futures-util", @@ -5090,9 +5091,9 @@ dependencies = [ [[package]] name = "solana-quic-client" -version = "1.18.9" +version = "1.18.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae1b9224efc32579fe61a9e06dc8efb2a3cd167c458091cc093086304441285" +checksum = "d979690c6c392ffdb40a91e241a08ec3942eb217bddb0403b6174de0173ab61e" dependencies = [ "async-mutex", "async-trait", @@ -5117,9 +5118,9 @@ dependencies = [ [[package]] name = "solana-rayon-threadlimit" -version = "1.18.9" +version = "1.18.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9460642bcb89090dcc15ecf11b6c4a1994c538ba49a4c5d99023365600631009" +checksum = "6902079fb9d0bd4c455b97f5e48e2412d98e0e1facf635ec6fc6b783c0f3e2af" dependencies = [ "lazy_static", "num_cpus", @@ -5127,9 +5128,9 @@ dependencies = [ [[package]] name = "solana-remote-wallet" -version = "1.18.9" +version = "1.18.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3de3b65d0fdbf0b2de6dc9aecac03d79ea7ef11c29efbdd67bf17a13d061a95" +checksum = "af88bad970c0dd63e98e7cc4c3c16a58acf32d4255aee79f611ea375592028ec" dependencies = [ "console", "dialoguer", @@ -5146,9 +5147,9 @@ dependencies = [ [[package]] name = "solana-rpc-client" -version = "1.18.9" +version = "1.18.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b27d16eaebd5889c4dd873d715be0bad4651a0bc2509ba99ec6fc7d3b3416278" +checksum = "d1adab0dcdc851fc7bc6ca8c6926d9f56ed3982f1e4fabd67d362647b57143d3" dependencies = [ "async-trait", "base64 0.21.7", @@ -5172,9 +5173,9 @@ dependencies = [ [[package]] name = "solana-rpc-client-api" -version = "1.18.9" +version = "1.18.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d82323f7b130105a4789101b5e7d97142110774ee06aa84346effa661898d407" +checksum = "6d6764712822bbc0259bbb5413377798a11462221863d000082f39968ce5ad03" dependencies = [ "base64 0.21.7", "bs58", @@ -5194,9 +5195,9 @@ dependencies = [ [[package]] name = "solana-rpc-client-nonce-utils" -version = "1.18.9" +version = "1.18.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "092867e337f366d1b719d28b4e02cffff4734cbbf9945daf5f172715db378e2c" +checksum = "49489fe59d308c10a2b3e3ecd3bee1107b9b67a325c99ffd278ba0870a5619cd" dependencies = [ "clap 2.34.0", "solana-clap-utils", @@ -5207,9 +5208,9 @@ dependencies = [ [[package]] name = "solana-sdk" -version = "1.18.9" +version = "1.18.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1788023924ebb072288868f8b4b72f5459c1ff653238d769700da9c8043a8aea" +checksum = "73bb113fa17e0607343afdc795c2c5230981c5b51c99b2c54fba91755879d65b" dependencies = [ "assert_matches", "base64 0.21.7", @@ -5262,9 +5263,9 @@ dependencies = [ [[package]] name = "solana-sdk-macro" -version = "1.18.9" +version = "1.18.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f3b24f46820e8912b81719a828a3d05f4fbd2f6afdc13826b0327df065ab795" +checksum = "8fcdb3a94e2f04d856d2fba6feb4f6887a1da21a3ee0b64b69c08d15dc22d46c" dependencies = [ "bs58", "proc-macro2", @@ -5281,9 +5282,9 @@ checksum = "468aa43b7edb1f9b7b7b686d5c3aeb6630dc1708e86e31343499dd5c4d775183" [[package]] name = "solana-streamer" -version = "1.18.9" +version = "1.18.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7403972b4233b87598c0a8e8fac26db549f8cb18076d385b8ef8deb1e36a6bc3" +checksum = "c0e6132c9eefb372202e69e654e8c2a30b4c06635343dd6474467b9cca4b9dd9" dependencies = [ "async-channel", "bytes", @@ -5303,6 +5304,7 @@ dependencies = [ "rand 0.8.5", "rcgen 0.10.0", "rustls", + "smallvec", "solana-metrics", "solana-perf", "solana-sdk", @@ -5313,9 +5315,9 @@ dependencies = [ [[package]] name = "solana-thin-client" -version = "1.18.9" +version = "1.18.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63740969c229c77306024ed3ad809fabc0a1269cfe75a9c982c7cbd20c38d26" +checksum = "ca1c3ed492f61914aaa8074cf7a07f93bfd8d9adbf9846939e589b7b7c70fe39" dependencies = [ "bincode", "log", @@ -5328,9 +5330,9 @@ dependencies = [ [[package]] name = "solana-tpu-client" -version = "1.18.9" +version = "1.18.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f910ac2556498a889d393309110bf4ec7607208104b40260df822e925fce933" +checksum = "c3fbfce5d27608f4853dcb0c0d964f59420710a7a4486409e7583717c610c3cf" dependencies = [ "async-trait", "bincode", @@ -5352,9 +5354,9 @@ dependencies = [ [[package]] name = "solana-transaction-status" -version = "1.18.9" +version = "1.18.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5fa023f9a09216e809bf28c1dc16c8dfce726dfa64133f9016e8a1f01267f39" +checksum = "6adbd8f3fccddeae87278a105dcf8a8792f8816c0f4fb5f7ae8f307af279ac49" dependencies = [ "Inflector", "base64 0.21.7", @@ -5377,9 +5379,9 @@ dependencies = [ [[package]] name = "solana-udp-client" -version = "1.18.9" +version = "1.18.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e15df3333f480774a47da0d3af3e7b9c78a3417f949bb99ed7a16dd33a906d4" +checksum = "b90f8ebd26cac3cd563bf839ff8511f27698f2d220e58f7538b5d6d80d8970ed" dependencies = [ "async-trait", "solana-connection-cache", @@ -5392,9 +5394,9 @@ dependencies = [ [[package]] name = "solana-version" -version = "1.18.9" +version = "1.18.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99147bd36e5ccc2e046bc3ef8af9517da1f34c255536e3aeaf0abc383a9f37ed" +checksum = "ac8714cf9f6caefc403e19770ad73ed2e4c866b7201e31dd17a9e06b6a693a57" dependencies = [ "log", "rustc_version", @@ -5408,9 +5410,9 @@ dependencies = [ [[package]] name = "solana-vote-program" -version = "1.18.9" +version = "1.18.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6071a7f57e03c9d1b55ae4a96fbc55b0df0f97c3153df1dc0c9521ea823bb2b" +checksum = "b5de2428939c6e279901d4357bf02c809739e5b97164e8620e09a9e0b55c2327" dependencies = [ "bincode", "log", @@ -5430,9 +5432,9 @@ dependencies = [ [[package]] name = "solana-zk-token-sdk" -version = "1.18.9" +version = "1.18.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76cba1f80c9001dc788655f2d7d5671af55c7a0a49b95de819f2fc45d8b803b0" +checksum = "8dad1753ec3b189879c8756ac35471467116dfc93d7aeb68cfd28f22a02c850d" dependencies = [ "aes-gcm-siv", "base64 0.21.7", @@ -5860,18 +5862,18 @@ checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" [[package]] name = "thiserror" -version = "1.0.58" +version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" +checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.58" +version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" +checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" dependencies = [ "proc-macro2", "quote", @@ -6838,12 +6840,11 @@ dependencies = [ [[package]] name = "yellowstone-grpc-client" -version = "1.14.0+solana.1.18.9" -source = "git+https://github.com/rpcpool/yellowstone-grpc.git?tag=v1.13.0+solana.1.18.9#19017c4e327d118a2da34f8700ed9ee470c801b5" +version = "1.15.0+solana.1.18" +source = "git+https://github.com/rpcpool/yellowstone-grpc.git?tag=v1.15.0+solana.1.18#54698c77c727eb33e23c2ab95384c98c688540e2" dependencies = [ "bytes", "futures", - "http", "thiserror", "tonic", "tonic-health", @@ -6852,8 +6853,8 @@ dependencies = [ [[package]] name = "yellowstone-grpc-proto" -version = "1.13.0+solana.1.18.9" -source = "git+https://github.com/rpcpool/yellowstone-grpc.git?tag=v1.13.0+solana.1.18.9#19017c4e327d118a2da34f8700ed9ee470c801b5" +version = "1.14.0+solana.1.18" +source = "git+https://github.com/rpcpool/yellowstone-grpc.git?tag=v1.15.0+solana.1.18#54698c77c727eb33e23c2ab95384c98c688540e2" dependencies = [ "anyhow", "bincode", diff --git a/Cargo.toml b/Cargo.toml index 1315c41f..b6f6c5c5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,19 +28,19 @@ license = "AGPL" edition = "2021" [workspace.dependencies] -solana-sdk = "~1.18.9" -solana-rpc-client = "~1.18.9" -solana-rpc-client-api = "~1.18.9" -solana-transaction-status = "~1.18.9" -solana-version = "~1.18.9" -solana-client = "~1.18.9" -solana-net-utils = "~1.18.9" -solana-pubsub-client = "~1.18.9" -solana-streamer = "~1.18.9" -solana-account-decoder = "~1.18.9" -solana-ledger = "~1.18.9" -solana-program = "~1.18.9" -solana-address-lookup-table-program = "~1.18.9" +solana-sdk = "~1.18.15" +solana-rpc-client = "~1.18.15" +solana-rpc-client-api = "~1.18.15" +solana-transaction-status = "~1.18.15" +solana-version = "~1.18.15" +solana-client = "~1.18.15" +solana-net-utils = "~1.18.15" +solana-pubsub-client = "~1.18.15" +solana-streamer = "~1.18.15" +solana-account-decoder = "~1.18.15" +solana-ledger = "~1.18.15" +solana-program = "~1.18.15" +solana-address-lookup-table-program = "~1.18.15" itertools = "0.10.5" rangetools = "0.1.4" serde = { version = "1.0.160", features = ["derive"] } @@ -87,9 +87,9 @@ solana-lite-rpc-accounts = {path = "accounts", version = "0.2.4"} solana-lite-rpc-accounts-on-demand = {path = "accounts-on-demand", version = "0.2.4"} bench = { path = "bench", version="0.2.4" } -yellowstone-grpc-proto = { git = "https://github.com/rpcpool/yellowstone-grpc.git", tag = "v1.13.0+solana.1.18.9" } -#geyser-grpc-connector = { path = "../geyser-grpc-connector" } -geyser-grpc-connector = { tag = "v0.10.6+yellowstone.1.13+solana.1.18.9", git = "https://github.com/blockworks-foundation/geyser-grpc-connector.git" } +yellowstone-grpc-proto = { git = "https://github.com/rpcpool/yellowstone-grpc.git", tag = "v1.15.0+solana.1.18" } +geyser-grpc-connector = { path = "../geyser-grpc-connector" } +#geyser-grpc-connector = { tag = "v0.10.6+yellowstone.1.13+solana.1.18.15", git = "https://github.com/blockworks-foundation/geyser-grpc-connector.git" } async-trait = "0.1.68" diff --git a/cluster-endpoints/src/grpc/grpc_accounts_streaming.rs b/cluster-endpoints/src/grpc/grpc_accounts_streaming.rs index 7713de61..f7ebd5b3 100644 --- a/cluster-endpoints/src/grpc/grpc_accounts_streaming.rs +++ b/cluster-endpoints/src/grpc/grpc_accounts_streaming.rs @@ -5,10 +5,9 @@ use std::{ sync::Arc, time::Duration, }; +use anyhow::anyhow; -use geyser_grpc_connector::yellowstone_grpc_util::{ - connect_with_timeout_with_buffers, GeyserGrpcClientBufferConfig, -}; +use geyser_grpc_connector::yellowstone_grpc_util::{connect_with_timeout_with_buffers, GeyserGrpcClientBufferConfig, GeyserGrpcWrappedResult}; use geyser_grpc_connector::{GeyserGrpcClient, GeyserGrpcClientResult, GrpcSourceConfig}; use itertools::Itertools; use solana_lite_rpc_core::{ @@ -103,19 +102,14 @@ pub fn start_account_streaming_tasks( let program_subscription = SubscribeRequest { accounts: subscribe_programs, - slots: Default::default(), - transactions: Default::default(), - blocks: Default::default(), - blocks_meta: Default::default(), - entry: Default::default(), - commitment: Some(processed_commitment.into()), accounts_data_slice: Default::default(), - ping: None, + commitment: Some(processed_commitment.into()), + ..Default::default() }; let mut client = create_connection(&grpc_config).await?; - let account_stream = client.subscribe_once2(program_subscription).await.unwrap(); + let account_stream = client.subscribe_once(program_subscription).await.unwrap(); // each account subscription batch will require individual stream let mut subscriptions = vec![account_stream]; @@ -139,17 +133,12 @@ pub fn start_account_streaming_tasks( let account_request = SubscribeRequest { accounts: accounts_subscription, - slots: Default::default(), - transactions: Default::default(), - blocks: Default::default(), - blocks_meta: Default::default(), - entry: Default::default(), - commitment: Some(processed_commitment.into()), accounts_data_slice: Default::default(), - ping: None, + commitment: Some(processed_commitment.into()), + ..Default::default() }; - let account_stream = client.subscribe_once2(account_request).await.unwrap(); + let account_stream = client.subscribe_once(account_request).await.unwrap(); subscriptions.push(account_stream); } let mut merged_stream = subscriptions.merge(); @@ -216,7 +205,7 @@ pub fn start_account_streaming_tasks( async fn create_connection( grpc_config: &GrpcSourceConfig, -) -> GeyserGrpcClientResult> { +) -> anyhow::Result> { connect_with_timeout_with_buffers( grpc_config.grpc_addr.clone(), grpc_config.grpc_x_token.clone(), @@ -230,6 +219,9 @@ async fn create_connection( }, ) .await + .map_err(|e| { + anyhow!("Failed to connect to grpc source: {e:?}") + }) } pub fn create_grpc_account_streaming( diff --git a/cluster-endpoints/src/grpc_subscription.rs b/cluster-endpoints/src/grpc_subscription.rs index f1772ee6..6eb0f352 100644 --- a/cluster-endpoints/src/grpc_subscription.rs +++ b/cluster-endpoints/src/grpc_subscription.rs @@ -254,105 +254,6 @@ fn map_compute_budget_instructions(message: &VersionedMessage) -> (Option, (cu_requested, prioritization_fees) } -pub fn create_block_processing_task( - grpc_addr: String, - grpc_x_token: Option, - block_sx: tokio::sync::mpsc::Sender, - commitment_level: CommitmentLevel, - mut exit_notify: broadcast::Receiver<()>, -) -> AnyhowJoinHandle { - tokio::spawn(async move { - 'main_loop: loop { - let mut blocks_subs = HashMap::new(); - blocks_subs.insert( - "block_client".to_string(), - SubscribeRequestFilterBlocks { - account_include: Default::default(), - include_transactions: Some(true), - include_accounts: Some(false), - include_entries: Some(false), - }, - ); - - // connect to grpc - let mut client = connect_with_timeout_with_buffers( - grpc_addr.clone(), - grpc_x_token.clone(), - None, - Some(Duration::from_secs(10)), - Some(Duration::from_secs(10)), - GeyserGrpcClientBufferConfig { - buffer_size: Some(65536), - conn_window: Some(5242880), - stream_window: Some(4194304), - }, - ) - .await?; - let mut stream = tokio::select! { - res = client - .subscribe_once( - HashMap::new(), - Default::default(), - HashMap::new(), - Default::default(), - blocks_subs, - Default::default(), - Some(commitment_level), - Default::default(), - None, - ) => { - res? - }, - _ = exit_notify.recv() => { - break; - } - }; - - loop { - tokio::select! { - message = stream.next() => { - let Some(Ok(message)) = message else { - break; - }; - - let Some(update) = message.update_oneof else { - continue; - }; - - match update { - UpdateOneof::Block(block) => { - log::trace!( - "received block, hash: {} slot: {}", - block.blockhash, - block.slot - ); - block_sx - .send(block) - .await - .context("Problem sending on block channel")?; - } - UpdateOneof::Ping(_) => { - log::trace!("GRPC Ping"); - } - _ => { - log::trace!("unknown GRPC notification"); - } - }; - }, - _ = exit_notify.recv() => { - break 'main_loop; - } - } - } - drop(stream); - drop(client); - log::error!("Grpc block subscription broken (resubscribing)"); - tokio::time::sleep(std::time::Duration::from_secs(1)).await; - } - Ok(()) - }) -} - pub fn create_grpc_subscription( rpc_client: Arc, grpc_sources: Vec,