From 5dfed824f478e2db9cf5e5b730b4e642e0e37b39 Mon Sep 17 00:00:00 2001 From: godmodegalactus Date: Mon, 2 Oct 2023 14:47:32 +0200 Subject: [PATCH] Initial changes for migrating to lite-rpc-0.23.0 --- Cargo.lock | 521 ++++++++++++++++++++++++--------- Cargo.toml | 33 ++- rust-toolchain.toml | 2 +- src/confirmation_strategies.rs | 2 +- src/crank.rs | 14 +- src/main.rs | 46 ++- 6 files changed, 436 insertions(+), 182 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5fd4559..1d843d0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2544,9 +2544,9 @@ checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" dependencies = [ "http", "hyper 0.14.26", - "rustls", + "rustls 0.20.8", "tokio", - "tokio-rustls", + "tokio-rustls 0.23.4", ] [[package]] @@ -3122,16 +3122,17 @@ dependencies = [ [[package]] name = "mango-feeds-connector" version = "0.1.1" -source = "git+https://github.com/blockworks-foundation/mango-feeds.git?branch=ckamm/solana-versions2#66a13ff5ea5199d36ecc686d21c7afc7a54fde4a" +source = "git+https://github.com/blockworks-foundation/mango-feeds.git?branch=main#b07028fd3bb05bcf2b2fc92214b624a5b3352944" dependencies = [ "anyhow", "async-channel", "async-trait", "futures 0.3.28", + "itertools 0.10.5", "jsonrpc-core", "jsonrpc-core-client", "log 0.4.19", - "rustls", + "rustls 0.20.8", "serde", "serde_derive", "solana-account-decoder", @@ -3199,6 +3200,7 @@ dependencies = [ "solana-clap-utils", "solana-cli-config", "solana-client", + "solana-lite-rpc-cluster-endpoints", "solana-lite-rpc-core", "solana-lite-rpc-services", "solana-logger", @@ -3215,6 +3217,15 @@ dependencies = [ "yellowstone-grpc-proto", ] +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata", +] + [[package]] name = "matches" version = "0.1.10" @@ -3478,6 +3489,16 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi 0.3.9", +] + [[package]] name = "num" version = "0.2.1" @@ -3739,6 +3760,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + [[package]] name = "parking" version = "2.1.0" @@ -4205,16 +4232,16 @@ dependencies = [ [[package]] name = "quinn" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445cbfe2382fa023c4f2f3c7e1c95c03dcc1df2bf23cebcb2b13e1402c4394d1" +checksum = "2e8b432585672228923edbbf64b8b12c14e1112f62e88737655b4a083dbcd78e" dependencies = [ "bytes 1.4.0", "pin-project-lite", "quinn-proto", "quinn-udp", "rustc-hash", - "rustls", + "rustls 0.20.8", "thiserror", "tokio", "tracing", @@ -4223,15 +4250,15 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.9.3" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c10f662eee9c94ddd7135043e544f3c82fa839a1e7b865911331961b53186c" +checksum = "c956be1b23f4261676aed05a0046e204e8a6836e50203902683a718af0797989" dependencies = [ "bytes 1.4.0", "rand 0.8.5", "ring", "rustc-hash", - "rustls", + "rustls 0.20.8", "rustls-native-certs", "slab", "thiserror", @@ -4564,7 +4591,7 @@ checksum = "d0ab3ca65655bb1e41f2a8c8cd662eb4fb035e67c3f78da1d61dffe89d07300f" dependencies = [ "aho-corasick 1.0.2", "memchr", - "regex-syntax", + "regex-syntax 0.7.2", ] [[package]] @@ -4572,6 +4599,15 @@ name = "regex-automata" version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" @@ -4614,14 +4650,14 @@ dependencies = [ "once_cell", "percent-encoding 2.3.0", "pin-project-lite", - "rustls", + "rustls 0.20.8", "rustls-pemfile", "serde", "serde_json", "serde_urlencoded", "tokio", "tokio-native-tls", - "tokio-rustls", + "tokio-rustls 0.23.4", "tokio-util 0.7.2", "tower-service", "url 2.4.0", @@ -4799,6 +4835,18 @@ dependencies = [ "webpki", ] +[[package]] +name = "rustls" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8" +dependencies = [ + "log 0.4.19", + "ring", + "rustls-webpki", + "sct", +] + [[package]] name = "rustls-native-certs" version = "0.6.2" @@ -4820,6 +4868,16 @@ dependencies = [ "base64 0.21.2", ] +[[package]] +name = "rustls-webpki" +version = "0.101.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c7d5dece342910d9ba34d259310cae3e0154b873b35408b787b59bce53d34fe" +dependencies = [ + "ring", + "untrusted", +] + [[package]] name = "rustversion" version = "1.0.12" @@ -5160,6 +5218,15 @@ dependencies = [ "keccak", ] +[[package]] +name = "sharded-slab" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1b21f559e07218024e7e9f90f96f601825397de0e25420135f7f952453fed0b" +dependencies = [ + "lazy_static", +] + [[package]] name = "shell-words" version = "1.1.0" @@ -5276,9 +5343,9 @@ dependencies = [ [[package]] name = "solana-account-decoder" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "579f978391c966b0a8f94467e446fd8155ed668e9d074c614329d4bad47134ac" +checksum = "850d5d9dc8fa6ea42f4e61c78e296bbbce5a3531ff4cb3c58ef36ee31781049c" dependencies = [ "Inflector", "base64 0.21.2", @@ -5300,9 +5367,9 @@ dependencies = [ [[package]] name = "solana-address-lookup-table-program" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b73818e763f0f23ff538c5e42a07b1a76d556ff5719780a897147fe2958d345a" +checksum = "8a7f867cde478a078d4c4ceb113f4f9ac7e29c2efea98f80a2b30cdcd7be83c5" dependencies = [ "bincode", "bytemuck", @@ -5321,9 +5388,9 @@ dependencies = [ [[package]] name = "solana-bloom" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06438cf7d483d8bb5c07f74d5ff317c76755d4af34c502fd26cfd48bff4e5f9c" +checksum = "983b7f55aaa1695658138b867e927502be780b4106b85e8ebef7bd59e29e6114" dependencies = [ "bv", "fnv", @@ -5340,9 +5407,9 @@ dependencies = [ [[package]] name = "solana-bpf-loader-program" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfc5cb9f48c3a6adb8458d54cdfb9a28f2b5140961c862339dbe34ff63b1d086" +checksum = "1eaf42dbfe8a42b80e24f2c087a3935d6e7bb49886313b006d88fb04fdc2a02f" dependencies = [ "bincode", "byteorder", @@ -5359,9 +5426,9 @@ dependencies = [ [[package]] name = "solana-bucket-map" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af1289d1c2c80058fd10d2cf1b75c74ff204e4e41010034d53fa3e64241c672e" +checksum = "e050e58ea0c422f9db10d987b2a10992f103209454f70d54f6208b14ec5546a0" dependencies = [ "bv", "log 0.4.19", @@ -5376,9 +5443,9 @@ dependencies = [ [[package]] name = "solana-clap-utils" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "770e68ef834e2835687facdf7e706f12e7f5c0e17044c0b956f068f6297a1685" +checksum = "c3c99636da9a4acad58d0e8142e36395ece48fc41c396e297e702b6a789b190f" dependencies = [ "chrono", "clap 2.34.0", @@ -5394,9 +5461,9 @@ dependencies = [ [[package]] name = "solana-cli-config" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95cb48e3e7679ebb2188960cefde449899005753edf7f2d830080f16a7572b7b" +checksum = "7ae4ba224e834b5d71c884a356bf1e23b5999ef4edd8996a42a8ac0dd680315b" dependencies = [ "dirs-next", "lazy_static", @@ -5410,9 +5477,9 @@ dependencies = [ [[package]] name = "solana-client" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3059c513c25718282bc53432f7d8b0a06748161d6dcbdf67ecc6fa2bcec520" +checksum = "acc7a437165d8fcfac3c63963e394f0ea497b5d2a75159bb3a1ed75dbeb36a7e" dependencies = [ "async-trait", "bincode", @@ -5443,9 +5510,9 @@ dependencies = [ [[package]] name = "solana-compute-budget-program" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "498c017e65a1eae01412661d4e854bf716ef237efaba1dd4fcb37f333f3c33cc" +checksum = "98c90fdaafdc41a4ba0a760af5491bd79f02d1d1eae6926b7796561681c843e4" dependencies = [ "solana-program-runtime", "solana-sdk", @@ -5453,9 +5520,9 @@ dependencies = [ [[package]] name = "solana-config-program" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daad46dde420f68e4064ccba14e604f8ac97a88553234bcd2a087c1030b3f522" +checksum = "d6f9f2201c7e526581511fa6525e281518be5cabaee82bd5b29fe4b78744148d" dependencies = [ "bincode", "chrono", @@ -5467,9 +5534,9 @@ dependencies = [ [[package]] name = "solana-connection-cache" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea40235b2b75e6a125f95c14d91884516e7229fb0505930b1ae38d05b3ad32b3" +checksum = "3ee52de352e10e53b252df0815d685a9c6f3e8d3baa0f65e214dfcd247db0e21" dependencies = [ "async-trait", "bincode", @@ -5488,9 +5555,9 @@ dependencies = [ [[package]] name = "solana-entry" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59f3b1cfdc0cf970936bc224a541edb06ad3c1e6596524a7288d010f960b3b03" +checksum = "495208640ca9306625f1a7af2288728ac788f84b0f4fe9c3dc6ab0dda42fea04" dependencies = [ "bincode", "crossbeam-channel", @@ -5511,9 +5578,9 @@ dependencies = [ [[package]] name = "solana-faucet" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "919219ad369fd499afd7af560186748816aa5f8320284458825e33592a60f6fe" +checksum = "8e7a5d760f9bb71eb73a26c7950ddce2dc3257262cf6cc9fc92918c3c7ac9022" dependencies = [ "bincode", "byteorder", @@ -5535,9 +5602,9 @@ dependencies = [ [[package]] name = "solana-frozen-abi" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0ec1a23136ef6072f3c6e3eabf6349dc0219ae23129c44754a4f9f8506941cd" +checksum = "361cc834e5fbbe1a73f1d904fcb8ab052a665e5be6061bd1ba7ab478d7d17c9c" dependencies = [ "ahash 0.8.3", "blake3", @@ -5568,9 +5635,9 @@ dependencies = [ [[package]] name = "solana-frozen-abi-macro" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89744bbdcb6dc87805bf50f3db4520adf56b9fdd2a55b80b8de3b4c97b5c4bc8" +checksum = "575d875dc050689f9f88c542e292e295e2f081d4e96e0df297981e45cbad8824" dependencies = [ "proc-macro2 1.0.60", "quote 1.0.28", @@ -5580,9 +5647,9 @@ dependencies = [ [[package]] name = "solana-gossip" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7890fbf81c3a1f56d1b72bb2f81fb3ccf62cff51fe25e27e291058bca2cdd92e" +checksum = "2425d3e08358a6c1278164470ddc779162f4819a8ef1ef0ebcc36cab46153a29" dependencies = [ "bincode", "bv", @@ -5628,9 +5695,9 @@ dependencies = [ [[package]] name = "solana-ledger" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cdc5429775d16fb0ef6d6a81d041cab133e38696b5be5905f68a130ce030d5d" +checksum = "42524d16511158a071acfb763628024683843a761329bad24de7366805bd320a" dependencies = [ "assert_matches", "bincode", @@ -5687,10 +5754,47 @@ dependencies = [ "trees", ] +[[package]] +name = "solana-lite-rpc-cluster-endpoints" +version = "0.2.3" +source = "git+https://github.com/blockworks-foundation/lite-rpc.git?tag=v0.2.3#3cdab51676a4b1bfb5b41739a383e30cd8a1c73c" +dependencies = [ + "anyhow", + "async-channel", + "async-trait", + "base64 0.21.2", + "bincode", + "bs58 0.4.0", + "bytes 1.4.0", + "chrono", + "dashmap 5.4.0", + "derive_more", + "futures 0.3.28", + "itertools 0.10.5", + "log 0.4.19", + "quinn", + "rustls 0.20.8", + "serde", + "serde_json", + "solana-client", + "solana-lite-rpc-core", + "solana-net-utils", + "solana-pubsub-client", + "solana-rpc-client-api", + "solana-sdk", + "solana-streamer", + "solana-transaction-status", + "solana-version", + "thiserror", + "tokio", + "yellowstone-grpc-client", + "yellowstone-grpc-proto", +] + [[package]] name = "solana-lite-rpc-core" -version = "0.2.1" -source = "git+https://github.com/blockworks-foundation/lite-rpc.git?tag=v0.2.2#b2a15ad913128e2266deed8b41a4c0c1c640aacc" +version = "0.2.3" +source = "git+https://github.com/blockworks-foundation/lite-rpc.git?tag=v0.2.3#3cdab51676a4b1bfb5b41739a383e30cd8a1c73c" dependencies = [ "anyhow", "async-trait", @@ -5701,15 +5805,15 @@ dependencies = [ "chrono", "dashmap 5.4.0", "futures 0.3.28", + "itertools 0.10.5", "log 0.4.19", "quinn", - "rustls", + "rustls 0.20.8", "serde", "serde_json", "solana-client", "solana-net-utils", "solana-pubsub-client", - "solana-rpc-client", "solana-rpc-client-api", "solana-sdk", "solana-streamer", @@ -5721,11 +5825,12 @@ dependencies = [ [[package]] name = "solana-lite-rpc-services" -version = "0.2.1" -source = "git+https://github.com/blockworks-foundation/lite-rpc.git?tag=v0.2.2#b2a15ad913128e2266deed8b41a4c0c1c640aacc" +version = "0.2.3" +source = "git+https://github.com/blockworks-foundation/lite-rpc.git?tag=v0.2.3#3cdab51676a4b1bfb5b41739a383e30cd8a1c73c" dependencies = [ "anyhow", "async-channel", + "async-trait", "base64 0.21.2", "bincode", "bs58 0.4.0", @@ -5733,18 +5838,18 @@ dependencies = [ "chrono", "dashmap 5.4.0", "futures 0.3.28", + "itertools 0.10.5", "lazy_static", "log 0.4.19", "prometheus", "quinn", - "rustls", + "rustls 0.20.8", "serde", "serde_json", "solana-client", "solana-lite-rpc-core", "solana-net-utils", "solana-pubsub-client", - "solana-rpc-client", "solana-rpc-client-api", "solana-sdk", "solana-streamer", @@ -5752,13 +5857,15 @@ dependencies = [ "solana-version", "thiserror", "tokio", + "tracing", + "tracing-subscriber", ] [[package]] name = "solana-loader-v4-program" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73523393ff8d67770fc22e545d8def006608b3d80c71e6dab31cb38f7326fbaf" +checksum = "a4f1e56ce753307a1b169ad2ef3b9af024c93d4db6f6cd6659794c57635f32ff" dependencies = [ "log 0.4.19", "rand 0.7.3", @@ -5770,9 +5877,9 @@ dependencies = [ [[package]] name = "solana-logger" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fc342d61b86066ca7bb72ab4ba17f677b8c2c3a3e71fb9286a57097f3b36b85" +checksum = "c00faf7aa6a3f47c542bd45d2d7f13af9a382d993e647976a676fe1b0eec4eb2" dependencies = [ "env_logger", "lazy_static", @@ -5781,9 +5888,9 @@ dependencies = [ [[package]] name = "solana-measure" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea333a383efa6ddab7f4ba48273502af563abeb392f5731a00b22b9f45c15491" +checksum = "0e19c6e1b35df3c212619a7995ae3576fa92ab15ecfc065899f21385cbe45c95" dependencies = [ "log 0.4.19", "solana-sdk", @@ -5791,9 +5898,9 @@ dependencies = [ [[package]] name = "solana-merkle-tree" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d13a43ceaafe2293d1d1ed62a20a71287a29635c3ba78611e4ee3e1bfd0a3573" +checksum = "4b2d0555d563348e29721dba9ac1de412392112bb702fcc1a1e6b702402a0771" dependencies = [ "fast-math", "matches", @@ -5802,9 +5909,9 @@ dependencies = [ [[package]] name = "solana-metrics" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cced7756637c9d9b46aa52dca715bd0efb396f29aade27ecbd336787174fd" +checksum = "10e62760a5f87d836169eb3bb446bae174181db07d2c8016be36de49c04fd432" dependencies = [ "crossbeam-channel", "gethostname", @@ -5816,9 +5923,9 @@ dependencies = [ [[package]] name = "solana-net-utils" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a17ef4a81db76c9604037cadecdbd83c0b82cce3576a275e48327b4d06a98d7" +checksum = "308c4c36c634d418589cf1df121d143819feff81932de81640de3d64878934eb" dependencies = [ "bincode", "clap 3.2.25", @@ -5838,9 +5945,9 @@ dependencies = [ [[package]] name = "solana-perf" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4bcf9dd10dffe2707c1dfd91b695c2dc3cb9585a7cbb17ed24c7d98a4103e9" +checksum = "a4d44a4998ba6d9b37e89399d9ce2812e84489dd4665df619fb23366e1c2ec1b" dependencies = [ "ahash 0.8.3", "bincode", @@ -5865,9 +5972,9 @@ dependencies = [ [[package]] name = "solana-poh" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "169d2e617d1285c3d91f44ac51d7baaf2cb3f71be18003bf284475352192310d" +checksum = "20684e326cb9b2f118eafed55b5608b58a37f4bf840e6135fce3ac6229037de1" dependencies = [ "core_affinity", "crossbeam-channel", @@ -5883,9 +5990,9 @@ dependencies = [ [[package]] name = "solana-program" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaf210d64911289b4a76cbd1fd0bfc6ab1d08e9d568a2dd021d03835d2e7efb6" +checksum = "9863ff5c6e828015bec331c26fb53e48352a264a9be682e7e078d2c3b3e93b46" dependencies = [ "ark-bn254", "ark-ec", @@ -5897,6 +6004,7 @@ dependencies = [ "bitflags", "blake3", "borsh 0.10.3", + "borsh 0.9.3", "bs58 0.4.0", "bv", "bytemuck", @@ -5937,9 +6045,9 @@ dependencies = [ [[package]] name = "solana-program-runtime" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2dbb6d2286cb5bae6e480b0d9acae38c6618e3ff858319b64c455e6039661b1" +checksum = "05813d4d2e141ab4449cf684cc5b05512dfaabb7251561c5bb1ccf1e4221b210" dependencies = [ "base64 0.21.2", "bincode", @@ -5965,9 +6073,9 @@ dependencies = [ [[package]] name = "solana-pubsub-client" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4313ba746070ee268076535b36ed5e4dcf584e5ec815ca04d714af5d485d765" +checksum = "7cd0753cdde1710f50d58bd40a45e58f5368a25dabff6b18ba635c3d6959a558" dependencies = [ "crossbeam-channel", "futures-util", @@ -5990,9 +6098,9 @@ dependencies = [ [[package]] name = "solana-quic-client" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a57937b9919152f3f2b1a5c9874113edf82e267be1c1f2448780e515ce115bb" +checksum = "212d96abde446eaa903d16961cfd3a6e98dc0d680b9edd61c39938c61548d53e" dependencies = [ "async-mutex", "async-trait", @@ -6004,7 +6112,7 @@ dependencies = [ "quinn-proto", "quinn-udp", "rcgen", - "rustls", + "rustls 0.20.8", "solana-connection-cache", "solana-measure", "solana-metrics", @@ -6018,9 +6126,9 @@ dependencies = [ [[package]] name = "solana-rayon-threadlimit" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49e5674c5786d04e4c1766e580827a417e7a523d724b4c1e8bb6c1842097ff3c" +checksum = "82ab62fc62458271d746678a3f5625e1654e3cb42a8f318ef4f1ea25991bb085" dependencies = [ "lazy_static", "num_cpus", @@ -6028,9 +6136,9 @@ dependencies = [ [[package]] name = "solana-remote-wallet" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "123151e4cba3be5e887c333e430c43316d3b882e9a364f3368a6ac448bcfd1bb" +checksum = "863f10b8c2a893d1ec85b3ae8020c714512a67302b80c24dde0016eea4034a7c" dependencies = [ "console", "dialoguer", @@ -6047,9 +6155,9 @@ dependencies = [ [[package]] name = "solana-rpc" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a2035ca71ea3ffe45f58dc90acc5090d6e88491b6d359e69e7e4db72531299" +checksum = "784b4348c7fb0fa3281b5480f7633867c45e94b50f13464aa578cecfd68dd59a" dependencies = [ "base64 0.21.2", "bincode", @@ -6102,9 +6210,9 @@ dependencies = [ [[package]] name = "solana-rpc-client" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d81847cc7339aec68c34819e6223ce5782ca62b4b402ec7976ba9af0ff82f400" +checksum = "df04998cef2d0fe1291599b69acafc7f8cd87305d7f1525c8ae10aef1cc5411c" dependencies = [ "async-trait", "base64 0.21.2", @@ -6128,9 +6236,9 @@ dependencies = [ [[package]] name = "solana-rpc-client-api" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41df84c31b89e75b0b47bf3ef265042fd3c806f4c0d8d928c7f7f7a04b67472d" +checksum = "5e2912ddbff841fbce1e30b0b9a420993c63b6cc7866e5f0af3740fcd6d85bb8" dependencies = [ "base64 0.21.2", "bs58 0.4.0", @@ -6150,9 +6258,9 @@ dependencies = [ [[package]] name = "solana-rpc-client-nonce-utils" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c96a92be32409c7fd101169e34a0c4be17bd336a5bf4b22e52880ffda599126" +checksum = "d31100f6cc340dd322f57d00a334fa0a96f628ba86b04fcda1f84307deb14c31" dependencies = [ "clap 2.34.0", "solana-clap-utils", @@ -6163,9 +6271,9 @@ dependencies = [ [[package]] name = "solana-runtime" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08300653b26d709b153a5bd617b0cfd8062ebb36e4c1f8acee91dec14b524f8a" +checksum = "ebf6db318fd94457b1e69a481dcf43c6fd4f44e264b35f2489f0a1c6f7736e50" dependencies = [ "arrayref", "bincode", @@ -6232,9 +6340,9 @@ dependencies = [ [[package]] name = "solana-sdk" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a43b1c03aa69e1410ada4b5b2971ab948806c188015ac54684deec67d2739a" +checksum = "621e6973766420162541b26e7974783d32d5471571610da30c5bb0b6263046c9" dependencies = [ "assert_matches", "base64 0.21.2", @@ -6285,9 +6393,9 @@ dependencies = [ [[package]] name = "solana-sdk-macro" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aec66b2d42de3e7a90086ca6ec16f66ac0019bfc3a6ca44ade2404a9dc8c128a" +checksum = "bd177a74fb3a0a362f1292c027d668eff609ac189f08b78158324587a0a4f8d1" dependencies = [ "bs58 0.4.0", "proc-macro2 1.0.60", @@ -6298,9 +6406,9 @@ dependencies = [ [[package]] name = "solana-send-transaction-service" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "005c40536b31e874c954ee0c99965a8e43ef486936081f1a2361f92cfc1f385d" +checksum = "9f275f96dd61f421bda5c9cde7698d85348824f7fa2a8c4544ad24692ac50cd8" dependencies = [ "crossbeam-channel", "log 0.4.19", @@ -6314,9 +6422,9 @@ dependencies = [ [[package]] name = "solana-stake-program" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b25a5f56b43a160b96d13c1223aa92e0177706af79b3c427eff218b8b1edc619" +checksum = "5421decf09671329c4786ed209acfe986bb51272f91e13e4744b13a69c800680" dependencies = [ "bincode", "log 0.4.19", @@ -6329,9 +6437,9 @@ dependencies = [ [[package]] name = "solana-storage-bigtable" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09d7afe32b5f8116624b733deb94ffb143d2a86424ac7ef4b7e884220e961f3e" +checksum = "55c3a351d302b0652968421bf6bbf50d21d717645d04fd193f6f998b4beb9063" dependencies = [ "backoff", "bincode", @@ -6357,15 +6465,15 @@ dependencies = [ "solana-transaction-status", "thiserror", "tokio", - "tonic", + "tonic 0.8.3", "zstd", ] [[package]] name = "solana-storage-proto" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "661fc032be73b8f1e4d8276484a446f9094966cc613449cbeef848392688837a" +checksum = "ff10b488016c3503179185bbcb0f3b57a1f9645c438b886354dcb6a21e2c1698" dependencies = [ "bincode", "bs58 0.4.0", @@ -6375,14 +6483,14 @@ dependencies = [ "solana-account-decoder", "solana-sdk", "solana-transaction-status", - "tonic-build", + "tonic-build 0.8.4", ] [[package]] name = "solana-streamer" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be763578e5c6719e543e9d86d9517d3b2dde6581db76b942b4bd4a1c3ed19256" +checksum = "3942a60afb0282b07ef0f3c32078145ab7545cbed2cac98f1ec4b9f63016df62" dependencies = [ "async-channel", "bytes 1.4.0", @@ -6402,7 +6510,7 @@ dependencies = [ "quinn-udp", "rand 0.7.3", "rcgen", - "rustls", + "rustls 0.20.8", "solana-metrics", "solana-perf", "solana-sdk", @@ -6413,9 +6521,9 @@ dependencies = [ [[package]] name = "solana-system-program" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbf3fc3f7e1724394b77d6ae88563f1eab80971cdd426e89ad1384fed0c1338e" +checksum = "6101d189dc10a96388c695ca1d9f23f74f0fd96330f6adefafd7d6999a20ff6e" dependencies = [ "bincode", "log 0.4.19", @@ -6427,9 +6535,9 @@ dependencies = [ [[package]] name = "solana-thin-client" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8baffff86187a65ef4cfa190019108c4c3b1738ecfd51b862eeac19a8f8caf98" +checksum = "d712aaf7701a4504521fc09f1743c647edf596e3852a64f6d66b2e5a822388f8" dependencies = [ "bincode", "log 0.4.19", @@ -6442,9 +6550,9 @@ dependencies = [ [[package]] name = "solana-tpu-client" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d068ff8db750b4cc3a0a2bce228370bc3f4b7883c53fab64a862a7ba1e7343b" +checksum = "48cb32f7443f80cb45e244d514a706b030b5a71ef86b0436c1d39cbfff5491b4" dependencies = [ "async-trait", "bincode", @@ -6467,9 +6575,9 @@ dependencies = [ [[package]] name = "solana-transaction-status" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb0138e64aa7a6c2630c26d450bcdc296a57a399fb256fe85707aec10ac978ee" +checksum = "8aed485ddb4268b4e4ec64012016cd54ba3a4142377a99706fc3ab7768eb2bea" dependencies = [ "Inflector", "base64 0.21.2", @@ -6493,9 +6601,9 @@ dependencies = [ [[package]] name = "solana-udp-client" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e61134203fd0598b31cd24fd2f2d5866419911e4dbdb93fe9ad53404f6d79819" +checksum = "0c92798affef44c1ae2a694006209608044e99106b7945966d53586f5a95d9e2" dependencies = [ "async-trait", "solana-connection-cache", @@ -6508,9 +6616,9 @@ dependencies = [ [[package]] name = "solana-version" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0869902287377b9fd67fe6d1135ef612a9983f74cbee0e99fc5faf6df095dc15" +checksum = "a80a20dfea2afed91761ab3fecc8f96b973a742dc7728f3e343711efe6e8e05f" dependencies = [ "log 0.4.19", "rustc_version 0.4.0", @@ -6524,9 +6632,9 @@ dependencies = [ [[package]] name = "solana-vote-program" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5764f7601a524e52d3ef70d314c68678ef623f8e1f7e48b3ccc3dec09d80503" +checksum = "ab8b719e077cc9e42b8965dd06ff6b5f09fa2a436f2297efdcf471c05d187a6c" dependencies = [ "bincode", "log 0.4.19", @@ -6546,9 +6654,9 @@ dependencies = [ [[package]] name = "solana-zk-token-proof-program" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbd16baa124926abe5d618961f723b8bf6780f93ba032e3d764b016640ae48c4" +checksum = "5404829f9236ac760a943a4e2f16be6f180ce4a07e1bbb9d538dcfa62b98888c" dependencies = [ "bytemuck", "getrandom 0.1.16", @@ -6561,12 +6669,11 @@ dependencies = [ [[package]] name = "solana-zk-token-sdk" -version = "1.16.0" +version = "1.16.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34a565bea0147718f57ee8bbd79438341769acd53f634d665c34114040ea7c26" +checksum = "61aabdec9fe1b311dce5d21fa5bd58fbaa985e8003e0d0aedf3795113aacc1ea" dependencies = [ "aes-gcm-siv", - "arrayref", "base64 0.21.2", "bincode", "bytemuck", @@ -6591,9 +6698,9 @@ dependencies = [ [[package]] name = "solana_rbpf" -version = "0.4.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c0820fa96c8e644159a308b338465d2a6314b0a71abc92ed3ecf9ad61c906e3" +checksum = "17d4ba1e58947346e360fabde0697029d36ba83c42f669199b16a8931313cf29" dependencies = [ "byteorder", "combine", @@ -6922,6 +7029,16 @@ dependencies = [ "syn 2.0.18", ] +[[package]] +name = "thread_local" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +dependencies = [ + "cfg-if 1.0.0", + "once_cell", +] + [[package]] name = "time" version = "0.1.45" @@ -7102,11 +7219,21 @@ version = "0.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" dependencies = [ - "rustls", + "rustls 0.20.8", "tokio", "webpki", ] +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls 0.21.7", + "tokio", +] + [[package]] name = "tokio-stream" version = "0.1.12" @@ -7161,9 +7288,9 @@ checksum = "f714dd15bead90401d77e04243611caec13726c2408afd5b31901dfcdcb3b181" dependencies = [ "futures-util", "log 0.4.19", - "rustls", + "rustls 0.20.8", "tokio", - "tokio-rustls", + "tokio-rustls 0.23.4", "tungstenite 0.17.3", "webpki", "webpki-roots", @@ -7260,7 +7387,7 @@ dependencies = [ "prost-derive", "rustls-pemfile", "tokio", - "tokio-rustls", + "tokio-rustls 0.23.4", "tokio-stream", "tokio-util 0.7.2", "tower", @@ -7270,6 +7397,39 @@ dependencies = [ "tracing-futures", ] +[[package]] +name = "tonic" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a" +dependencies = [ + "async-stream", + "async-trait", + "axum", + "base64 0.21.2", + "bytes 1.4.0", + "flate2", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper 0.14.26", + "hyper-timeout", + "percent-encoding 2.3.0", + "pin-project", + "prost", + "rustls-native-certs", + "rustls-pemfile", + "tokio", + "tokio-rustls 0.24.1", + "tokio-stream", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + [[package]] name = "tonic-build" version = "0.8.4" @@ -7283,6 +7443,32 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "tonic-build" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6fdaae4c2c638bb70fe42803a26fbd6fc6ac8c72f5c59f67ecc2a2dcabf4b07" +dependencies = [ + "prettyplease 0.1.25", + "proc-macro2 1.0.60", + "prost-build", + "quote 1.0.28", + "syn 1.0.109", +] + +[[package]] +name = "tonic-health" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "080964d45894b90273d2b1dd755fdd114560db8636bb41cea615213c45043c4d" +dependencies = [ + "async-stream", + "prost", + "tokio", + "tokio-stream", + "tonic 0.9.2", +] + [[package]] name = "tower" version = "0.4.13" @@ -7346,6 +7532,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" dependencies = [ "once_cell", + "valuable", ] [[package]] @@ -7358,6 +7545,35 @@ dependencies = [ "tracing", ] +[[package]] +name = "tracing-log" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" +dependencies = [ + "lazy_static", + "log 0.4.19", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec 1.10.0", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + [[package]] name = "traitobject" version = "0.1.0" @@ -7389,7 +7605,7 @@ dependencies = [ "httparse", "log 0.4.19", "rand 0.8.5", - "rustls", + "rustls 0.20.8", "sha-1 0.10.1", "thiserror", "url 2.4.0", @@ -7576,6 +7792,12 @@ version = "1.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fa2982af2eec27de306107c027578ff7f423d65f7250e40ce0fea8f45248b81" +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + [[package]] name = "value-bag" version = "1.4.0" @@ -8117,16 +8339,31 @@ dependencies = [ ] [[package]] -name = "yellowstone-grpc-proto" -version = "1.1.0+solana.1.15.2" +name = "yellowstone-grpc-client" +version = "1.9.0+solana.1.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c2688c6f1d930f21f580829f6f896d7d38f90d5b2272e53a8f69a82e72b656f" +checksum = "638fc820f10c6d836732d43f7c8f93a85301a7d90705a0db38b3bc11fc6657f6" +dependencies = [ + "bytes 1.4.0", + "futures 0.3.28", + "http", + "thiserror", + "tonic 0.9.2", + "tonic-health", + "yellowstone-grpc-proto", +] + +[[package]] +name = "yellowstone-grpc-proto" +version = "1.9.0+solana.1.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22b29533f1a9486a84b2ffc1fc53d19607af3b71e0554dbde38a841b72026be6" dependencies = [ "anyhow", "prost", "protobuf-src", - "tonic", - "tonic-build", + "tonic 0.9.2", + "tonic-build 0.9.2", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 7620605..f5d4357 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -34,21 +34,22 @@ thiserror = "1.0" tokio = { version = "1.14.1", features = ["full"] } regex = "1.7.3" -solana-client = "1.15.2" -solana-metrics = "1.15.2" -solana-rpc-client = "1.15.2" -solana-runtime = "1.15.2" -solana-sdk = "1.15.2" -solana-clap-utils = "1.15.2" -solana-cli-config = "1.15.2" -solana-net-utils = "1.15.2" -solana-version = "1.15.2" -solana-logger = "1.15.2" -solana-transaction-status = "1.15.2" -solana-account-decoder = "1.15.2" +solana-client = "1.16.13" +solana-metrics = "1.16.13" +solana-rpc-client = "1.16.13" +solana-runtime = "1.16.13" +solana-sdk = "1.16.13" +solana-clap-utils = "1.16.13" +solana-cli-config = "1.16.13" +solana-net-utils = "1.16.13" +solana-version = "1.16.13" +solana-logger = "1.16.13" +solana-transaction-status = "1.16.13" +solana-account-decoder = "1.16.13" -solana-lite-rpc-core = { git = "https://github.com/blockworks-foundation/lite-rpc.git", tag = "v0.2.2" } -solana-lite-rpc-services = { git = "https://github.com/blockworks-foundation/lite-rpc.git", tag = "v0.2.2" } +solana-lite-rpc-core = { git = "https://github.com/blockworks-foundation/lite-rpc.git", tag = "v0.2.3" } +solana-lite-rpc-services = { git = "https://github.com/blockworks-foundation/lite-rpc.git", tag = "v0.2.3" } +solana-lite-rpc-cluster-endpoints = { git = "https://github.com/blockworks-foundation/lite-rpc.git", tag = "v0.2.3" } # pin program to mango-v3 version of solana sdk @@ -58,9 +59,9 @@ solana-program = "1.9.17" mango = { git = "https://github.com/blockworks-foundation/mango-v3.git", tag = "v3.6.0", default-features = false } mango-common = { git = "https://github.com/blockworks-foundation/mango-v3.git", tag = "v3.6.0" } -mango-feeds-connector = { git = "https://github.com/blockworks-foundation/mango-feeds.git", branch = "ckamm/solana-versions2", default-features = false, features = ["solana-1-15"] } +mango-feeds-connector = { git = "https://github.com/blockworks-foundation/mango-feeds.git", branch = "main", default-features = false, features = ["solana-1-15"] } bincode = "1.3.3" -"yellowstone-grpc-proto" = "=1.1.0" +yellowstone-grpc-proto = "1.9.0" [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 588ffd5..22048ac 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,2 +1,2 @@ [toolchain] -channel = "1.67.1" +channel = "1.70.0" diff --git a/src/confirmation_strategies.rs b/src/confirmation_strategies.rs index b48c070..6a5537d 100644 --- a/src/confirmation_strategies.rs +++ b/src/confirmation_strategies.rs @@ -10,7 +10,7 @@ use chrono::Utc; use dashmap::DashMap; use log::{debug, warn}; use solana_client::{nonblocking::rpc_client::RpcClient, rpc_config::RpcBlockConfig}; -use solana_lite_rpc_core::notifications::NotificationMsg; +use solana_lite_rpc_core::structures::notifications::NotificationMsg; use solana_sdk::{ commitment_config::{CommitmentConfig, CommitmentLevel}, signature::Signature, diff --git a/src/crank.rs b/src/crank.rs index af0b860..0beaf12 100644 --- a/src/crank.rs +++ b/src/crank.rs @@ -7,6 +7,7 @@ use crate::{ tpu_manager::TpuManager, }; +use iter_tools::Itertools; use mango_feeds_connector::{ account_write_filter::{self, AccountWriteRoute}, metrics, websocket_source, FilterConfig, MetricsConfig, SnapshotSourceConfig, SourceConfig, @@ -60,13 +61,13 @@ pub fn start( let group_pk = Pubkey::from_str(&group.public_key).unwrap(); let cache_pk = Pubkey::from_str(&group.cache_key).unwrap(); let mango_program_id = Pubkey::from_str(&group.mango_program_id).unwrap(); + let accounts = group + .perp_markets + .iter() + .map(|m| m.events_key.clone()) + .collect_vec(); let filter_config = FilterConfig { - program_ids: vec![group.mango_program_id.clone()], - account_ids: group - .perp_markets - .iter() - .map(|m| m.events_key.clone()) - .collect(), + entity_filter: mango_feeds_connector::EntityFilter::filter_by_account_ids(accounts.iter().map(|x| x.as_str()).collect()), }; let (instruction_sender, instruction_receiver) = unbounded::<(Pubkey, Vec)>(); @@ -167,7 +168,6 @@ pub fn start( grpc_sources: vec![], snapshot: SnapshotSourceConfig { rpc_http_url: config.rpc_url, - program_id: config.program_id.to_string(), }, rpc_ws_url: config.websocket_url, }, diff --git a/src/main.rs b/src/main.rs index 0126682..dedde26 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,7 @@ +use solana_lite_rpc_core::{stores::{data_cache::{DataCache, SlotCache}, tx_store::{TxStore, empty_tx_store}, block_information_store::BlockInformationStore, subscription_store::SubscriptionStore, cluster_info_store::ClusterInfo}, structures::{identity_stakes::IdentityStakes, notifications::NotificationMsg}}; +use solana_lite_rpc_services::{tpu_utils::tpu_connection_path::TpuConnectionPath, data_caching_service::DataCachingService}; +use solana_sdk::signer::Signer; + use { log::info, mango_simulation::{ @@ -18,13 +22,9 @@ use { }, solana_client::nonblocking::rpc_client::RpcClient as NbRpcClient, solana_lite_rpc_core::{ - block_store::BlockStore, - notifications::NotificationMsg, quic_connection_utils::QuicConnectionParameters, - tx_store::{empty_tx_store, TxStore}, }, solana_lite_rpc_services::{ - block_listenser::BlockListener, tpu_utils::tpu_service::{TpuService, TpuServiceConfig}, transaction_replayer::TransactionReplayer, transaction_service::{TransactionService, TransactionServiceBuilder}, @@ -48,18 +48,13 @@ const METRICS_NAME: &str = "mango-bencher"; async fn configure_transaction_service( rpc_client: Arc, identity: Keypair, - block_store: BlockStore, tx_store: TxStore, notifier: UnboundedSender, ) -> (TransactionService, JoinHandle>) { let slot = rpc_client.get_slot().await.expect("GetSlot should work"); let tpu_config = TpuServiceConfig { fanout_slots: 12, - number_of_leaders_to_cache: 1024, - clusterinfo_refresh_time: Duration::from_secs(60 * 60), - leader_schedule_update_frequency: Duration::from_secs(10), maximum_transaction_in_queue: 200_000, - maximum_number_of_errors: 10, quic_connection_params: QuicConnectionParameters { connection_timeout: Duration::from_secs(1), connection_retry_count: 10, @@ -69,14 +64,39 @@ async fn configure_transaction_service( write_timeout: Duration::from_secs(1), number_of_transactions_per_unistream: 10, }, + tpu_connection_path: TpuConnectionPath::QuicDirectPath, + }; + + let (subscriptions, cluster_endpoint_tasks) = create_json_rpc_polling_subscription(rpc_client.clone()); + let EndpointStreaming { + blocks_notifier, + cluster_info_notifier, + slot_notifier, + vote_account_notifier, + } = subscriptions; + let finalized_block = + get_latest_block(blocks_notifier.resubscribe(), CommitmentConfig::finalized()).await; + + + let data_cache = DataCache { + block_information_store, + txs: tx_store, + tx_subs: SubscriptionStore::default(), + slot_cache: SlotCache::new(finalized_block.slot), + identity_stakes: IdentityStakes::new(identity.pubkey()), + cluster_info: ClusterInfo::default(), + }; + + let lata_cache_service = DataCachingService { + data_cache: data_cache.clone(), + clean_duration: Duration::from_secs(120), }; let tpu_service = TpuService::new( tpu_config, Arc::new(identity), slot, - rpc_client.clone(), - tx_store.clone(), + data_cache, ) .await .expect("Should be able to create TPU"); @@ -92,7 +112,6 @@ async fn configure_transaction_service( let builder = TransactionServiceBuilder::new( tx_sender, replayer, - block_listenser, tpu_service, 1_000_000, ); @@ -157,9 +176,6 @@ pub async fn main() -> anyhow::Result<()> { )); let tx_store = empty_tx_store(); - let block_store = BlockStore::new(&nb_rpc_client) - .await - .expect("Blockstore should be created"); let (notif_sx, notif_rx) = unbounded_channel(); let (transaction_service, tx_service_jh) = configure_transaction_service(