From 5f047c9c4d61f14fe2d2984bd8c6cfdfbb1edf22 Mon Sep 17 00:00:00 2001 From: aniketfuryrocks Date: Sat, 10 Dec 2022 23:01:37 +0530 Subject: [PATCH] lite-client, tests and bench --- Cargo.lock | 608 ++++++++++++++---------- Cargo.toml | 54 ++- benches/tps.rs | 123 +++++ lite-bench-utils/Cargo.toml | 14 + lite-bench-utils/Makefile | 8 + lite-bench-utils/src/lib.rs | 74 +++ lite-bench-utils/src/metrics.rs | 56 +++ lite-client/Cargo.toml | 8 + src/client.rs => lite-client/src/lib.rs | 11 +- src/main.rs | 11 +- tests/client.rs | 45 ++ 11 files changed, 719 insertions(+), 293 deletions(-) create mode 100644 benches/tps.rs create mode 100644 lite-bench-utils/Cargo.toml create mode 100644 lite-bench-utils/Makefile create mode 100644 lite-bench-utils/src/lib.rs create mode 100644 lite-bench-utils/src/metrics.rs create mode 100644 lite-client/Cargo.toml rename src/client.rs => lite-client/src/lib.rs (73%) create mode 100644 tests/client.rs diff --git a/Cargo.lock b/Cargo.lock index 46eaba55..c96ffc08 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -67,9 +67,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "0.7.19" +version = "0.7.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" +checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" dependencies = [ "memchr", ] @@ -175,7 +175,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" dependencies = [ "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] @@ -187,7 +187,7 @@ dependencies = [ "num-bigint 0.4.3", "num-traits", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] @@ -258,7 +258,7 @@ checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" dependencies = [ "proc-macro2 1.0.47", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", "synstructure", ] @@ -270,7 +270,7 @@ checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" dependencies = [ "proc-macro2 1.0.47", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] @@ -320,18 +320,18 @@ checksum = "10f203db73a71dfa2fb6dd22763990fa26f3d2625a6da2da900d23b87d26be27" dependencies = [ "proc-macro2 1.0.47", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] name = "async-trait" -version = "0.1.58" +version = "0.1.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e805d94e6b5001b651426cf4cd446b1ab5f319d27bab5c644f61de0a804360c" +checksum = "31e6e93155431f3931513b243d371981bb2770112b370c82745a1d19d2f99364" dependencies = [ "proc-macro2 1.0.47", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] @@ -362,9 +362,9 @@ dependencies = [ [[package]] name = "axum" -version = "0.5.17" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acee9fd5073ab6b045a275b3e709c163dd36c90685219cb21804a147b58dba43" +checksum = "08b108ad2665fa3f6e6a517c3d80ec3e77d224c47d605167aefaa5d7ef97fa48" dependencies = [ "async-trait", "axum-core", @@ -380,9 +380,9 @@ dependencies = [ "mime", "percent-encoding 2.2.0", "pin-project-lite", + "rustversion", "serde", "sync_wrapper", - "tokio", "tower", "tower-http", "tower-layer", @@ -391,9 +391,9 @@ dependencies = [ [[package]] name = "axum-core" -version = "0.2.9" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37e5939e02c56fecd5c017c37df4238c0a839fa76b7f97acdd7efb804fd181cc" +checksum = "79b8558f5a0581152dc94dcd289132a1d377494bdeafcd41869b3258e3e2ad92" dependencies = [ "async-trait", "bytes", @@ -401,6 +401,7 @@ dependencies = [ "http", "http-body", "mime", + "rustversion", "tower-layer", "tower-service", ] @@ -482,16 +483,16 @@ dependencies = [ [[package]] name = "blake3" -version = "1.3.1" +version = "1.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a08e53fc5a564bb15bfe6fae56bd71522205f1f91893f9c0116edad6496c183f" +checksum = "42ae2468a89544a466886840aa467a25b766499f4f04bf7d9fcd10ecee9fccef" dependencies = [ "arrayref", "arrayvec", "cc", "cfg-if 1.0.0", "constant_time_eq", - "digest 0.10.5", + "digest 0.10.6", ] [[package]] @@ -539,7 +540,7 @@ dependencies = [ "borsh-schema-derive-internal", "proc-macro-crate 0.1.5", "proc-macro2 1.0.47", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] @@ -550,7 +551,7 @@ checksum = "5449c28a7b352f2d1e592a8a28bf139bc71afb0764a14f3c02500935d8c44065" dependencies = [ "proc-macro2 1.0.47", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] @@ -561,7 +562,7 @@ checksum = "cdbd5696d8bfa21d53d9fe39a714a18538bad11492a42d066dbbc395fb1951c0" dependencies = [ "proc-macro2 1.0.47", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] @@ -636,7 +637,7 @@ checksum = "5fe233b960f12f8007e3db2d136e3cb1c291bfd7396e384ee76025fc1a3932b4" dependencies = [ "proc-macro2 1.0.47", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] @@ -647,9 +648,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.2.1" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" +checksum = "dfb24e866b15a1af2a1b663f10c6b6b8f397a84aadb828f12e5b289ec23a3a3c" [[package]] name = "bzip2" @@ -684,9 +685,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.76" +version = "1.0.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a284da2e6fe2092f2353e51713435363112dfd60030e22add80be333fb928f" +checksum = "e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4" dependencies = [ "jobserver", ] @@ -714,16 +715,16 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.22" +version = "0.4.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1" +checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f" dependencies = [ "iana-time-zone", "js-sys", "num-integer", "num-traits", "serde", - "time 0.1.44", + "time 0.1.45", "wasm-bindgen", "winapi 0.3.9", ] @@ -823,7 +824,7 @@ dependencies = [ "proc-macro-error", "proc-macro2 1.0.47", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] @@ -909,9 +910,9 @@ checksum = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3" [[package]] name = "constant_time_eq" -version = "0.1.5" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" +checksum = "f3ad85c1f65dc7b37604eb0e89748faf0b9653065f2a8ef69f96a687ec1e9279" [[package]] name = "convert_case" @@ -988,22 +989,22 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.11" +version = "0.9.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f916dfc5d356b0ed9dae65f1db9fc9770aa2851d2662b988ccf4fe3516e86348" +checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" dependencies = [ "autocfg", "cfg-if 1.0.0", "crossbeam-utils", - "memoffset", + "memoffset 0.7.1", "scopeguard", ] [[package]] name = "crossbeam-utils" -version = "0.8.12" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac" +checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" dependencies = [ "cfg-if 1.0.0", ] @@ -1081,9 +1082,9 @@ dependencies = [ [[package]] name = "cxx" -version = "1.0.81" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97abf9f0eca9e52b7f81b945524e76710e6cb2366aead23b7d4fbf72e281f888" +checksum = "bdf07d07d6531bfcdbe9b8b739b104610c6508dcc4d63b410585faf338241daf" dependencies = [ "cc", "cxxbridge-flags", @@ -1093,9 +1094,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.81" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cc32cc5fea1d894b77d269ddb9f192110069a8a9c1f1d441195fba90553dea3" +checksum = "d2eb5b96ecdc99f72657332953d4d9c50135af1bac34277801cc3937906ebd39" dependencies = [ "cc", "codespan-reporting", @@ -1103,24 +1104,24 @@ dependencies = [ "proc-macro2 1.0.47", "quote 1.0.21", "scratch", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] name = "cxxbridge-flags" -version = "1.0.81" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ca220e4794c934dc6b1207c3b42856ad4c302f2df1712e9f8d2eec5afaacf1f" +checksum = "ac040a39517fd1674e0f32177648334b0f4074625b5588a64519804ba0553b12" [[package]] name = "cxxbridge-macro" -version = "1.0.81" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b846f081361125bfc8dc9d3940c84e1fd83ba54bbca7b17cd29483c828be0704" +checksum = "1362b0ddcfc4eb0a1f57b68bd77dd99f0e826958a96abd0ae9bd092e114ffed6" dependencies = [ "proc-macro2 1.0.47", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] @@ -1135,10 +1136,23 @@ dependencies = [ ] [[package]] -name = "data-encoding" -version = "2.3.2" +name = "dashmap" +version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ee2393c4a91429dffb4bedf19f4d6abf27d8a732c8ce4980305d782e5426d57" +checksum = "907076dfda823b0b36d2a1bb5f90c96660a5bbcd7729e10727f07858f22c4edc" +dependencies = [ + "cfg-if 1.0.0", + "hashbrown 0.12.3", + "lock_api", + "once_cell", + "parking_lot_core 0.9.5", +] + +[[package]] +name = "data-encoding" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23d8666cb01533c39dde32bcbab8e227b4ed6679b2c925eba05feabea39508fb" [[package]] name = "der" @@ -1177,7 +1191,7 @@ checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ "proc-macro2 1.0.47", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] @@ -1190,7 +1204,7 @@ dependencies = [ "proc-macro2 1.0.47", "quote 1.0.21", "rustc_version 0.4.0", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] @@ -1215,9 +1229,9 @@ dependencies = [ [[package]] name = "digest" -version = "0.10.5" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c" +checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" dependencies = [ "block-buffer 0.10.3", "crypto-common", @@ -1262,7 +1276,7 @@ checksum = "3bf95dc3f046b9da4f2d51833c0d3547d8564ef6910f5c1ed130306a75b92886" dependencies = [ "proc-macro2 1.0.47", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] @@ -1367,7 +1381,7 @@ checksum = "828de45d0ca18782232dfb8f3ea9cc428e8ced380eb26a520baaacfc70de39ce" dependencies = [ "proc-macro2 1.0.47", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] @@ -1379,7 +1393,7 @@ dependencies = [ "once_cell", "proc-macro2 1.0.47", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] @@ -1448,9 +1462,9 @@ checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" [[package]] name = "filetime" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b9663d381d07ae25dc88dbdf27df458faa83a9b25336bcac83d5e452b5fc9d3" +checksum = "4e884668cd0c7480504233e951174ddc3b382f7c2666e3b7310b5c4e7b0c37f9" dependencies = [ "cfg-if 1.0.0", "libc", @@ -1466,9 +1480,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" +checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841" dependencies = [ "crc32fast", "miniz_oxide", @@ -1573,7 +1587,7 @@ checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d" dependencies = [ "proc-macro2 1.0.47", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] @@ -1829,7 +1843,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "digest 0.10.5", + "digest 0.10.6", ] [[package]] @@ -1933,9 +1947,9 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.23.0" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d87c48c02e0dc5e3b849a2041db3029fd066650f8f717c07bf8ed78ccb895cac" +checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" dependencies = [ "http", "hyper", @@ -2044,9 +2058,9 @@ checksum = "5a9d968042a4902e08810946fc7cd5851eb75e80301342305af755ca06cb82ce" [[package]] name = "indexmap" -version = "1.9.1" +version = "1.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" +checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" dependencies = [ "autocfg", "hashbrown 0.12.3", @@ -2095,9 +2109,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.5.1" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f88c5561171189e69df9d98bcf18fd5f9558300f7ea7b801eb8a0fd748bd8745" +checksum = "ec947b7a4ce12e3b87e353abae7ce124d025b6c7d6c5aea5cc0bcf92e9510ded" [[package]] name = "is-terminal" @@ -2200,7 +2214,7 @@ dependencies = [ "proc-macro-crate 0.1.5", "proc-macro2 1.0.47", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] @@ -2254,9 +2268,12 @@ dependencies = [ [[package]] name = "keccak" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9b7d56ba4a8344d6be9729995e6b06f928af29998cdf79fe390cbf6b1fee838" +checksum = "3afef3b6eff9ce9d8ff9b3601125eec7f0c8cbac7abd14f355d053fa56c98768" +dependencies = [ + "cpufeatures", +] [[package]] name = "kernel32-sys" @@ -2282,9 +2299,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.137" +version = "0.2.138" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89" +checksum = "db6d7e329c562c5dfab7a46a2afabc8b987ab9a4834c9d1ca04dc54c1546cef8" [[package]] name = "libloading" @@ -2390,6 +2407,28 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f9f08d8963a6c613f4b1a78f4f4a4dbfadf8e6545b2d72861731e4858b8b47f" +[[package]] +name = "lite-bench-utils" +version = "0.1.0" +dependencies = [ + "anyhow", + "lite-client", + "log", + "serde", + "serde_json", + "solana-client", + "solana-sdk 1.15.0", + "tokio", +] + +[[package]] +name = "lite-client" +version = "0.1.0" +dependencies = [ + "serde_json", + "solana-client", +] + [[package]] name = "lite-rpc" version = "0.1.0" @@ -2400,7 +2439,7 @@ dependencies = [ "clap 4.0.29", "crossbeam-channel", "csv", - "dashmap", + "dashmap 5.4.0", "futures 0.3.25", "itertools", "jsonrpc-core", @@ -2409,6 +2448,8 @@ dependencies = [ "jsonrpc-http-server", "jsonrpc-pubsub", "libc", + "lite-bench-utils", + "lite-client", "log", "procinfo", "rayon", @@ -2416,6 +2457,7 @@ dependencies = [ "serde", "serde_derive", "serde_json", + "simplelog", "soketto", "solana-account-decoder", "solana-clap-utils", @@ -2507,9 +2549,9 @@ checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" [[package]] name = "matchit" -version = "0.5.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" +checksum = "b87248edafb776e59e6ee64a79086f65890d3510f2c656c000bf2a7e8a0aea40" [[package]] name = "memchr" @@ -2535,6 +2577,15 @@ dependencies = [ "autocfg", ] +[[package]] +name = "memoffset" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +dependencies = [ + "autocfg", +] + [[package]] name = "merlin" version = "3.0.0" @@ -2561,9 +2612,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.5.4" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" +checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" dependencies = [ "adler", ] @@ -2608,7 +2659,7 @@ checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" dependencies = [ "proc-macro2 1.0.47", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] @@ -2648,15 +2699,15 @@ dependencies = [ [[package]] name = "nix" -version = "0.25.0" +version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e322c04a9e3440c327fca7b6c8a63e6890a32fa2ad689db972425f07e0d22abb" +checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4" dependencies = [ "autocfg", "bitflags", "cfg-if 1.0.0", "libc", - "memoffset", + "memoffset 0.6.5", "pin-utils", ] @@ -2739,7 +2790,7 @@ checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" dependencies = [ "proc-macro2 1.0.47", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] @@ -2812,7 +2863,16 @@ dependencies = [ "proc-macro-crate 1.2.1", "proc-macro2 1.0.47", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", +] + +[[package]] +name = "num_threads" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" +dependencies = [ + "libc", ] [[package]] @@ -2844,9 +2904,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "openssl" -version = "0.10.42" +version = "0.10.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12fc0523e3bd51a692c8850d075d74dc062ccf251c0110668cbd921917118a13" +checksum = "29d971fd5722fec23977260f6e81aa67d2f22cadbdc2aa049f1022d9a3be1566" dependencies = [ "bitflags", "cfg-if 1.0.0", @@ -2865,7 +2925,7 @@ checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" dependencies = [ "proc-macro2 1.0.47", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] @@ -2885,9 +2945,9 @@ dependencies = [ [[package]] name = "openssl-sys" -version = "0.9.77" +version = "0.9.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b03b84c3b2d099b81f0953422b4d4ad58761589d0229b5506356afca05a3670a" +checksum = "5454462c0eced1e97f2ec09036abc8da362e66802f66fd20f86854d9d8cbcbc4" dependencies = [ "autocfg", "cc", @@ -2899,9 +2959,9 @@ dependencies = [ [[package]] name = "os_str_bytes" -version = "6.3.1" +version = "6.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3baf96e39c5359d2eb0dd6ccb42c62b91d9678aa68160d261b9e0ccbf9e9dea9" +checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" [[package]] name = "ouroboros" @@ -2923,7 +2983,7 @@ dependencies = [ "proc-macro-error", "proc-macro2 1.0.47", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] @@ -2944,7 +3004,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core 0.9.4", + "parking_lot_core 0.9.5", ] [[package]] @@ -2963,9 +3023,9 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dc9e0dc2adc1c69d09143aff38d3d30c5c3f0df0dad82e6d25547af174ebec0" +checksum = "7ff9f3fef3968a3ec5945535ed654cb38ff72d7495a25619e2247fb15a2ed9ba" dependencies = [ "cfg-if 1.0.0", "libc", @@ -2995,7 +3055,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" dependencies = [ - "digest 0.10.5", + "digest 0.10.6", ] [[package]] @@ -3036,9 +3096,9 @@ dependencies = [ [[package]] name = "pest" -version = "2.5.0" +version = "2.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f400b0f7905bf702f9f3dc3df5a121b16c54e9e8012c082905fdf09a931861a" +checksum = "cc8bed3549e0f9b0a2a78bf7c0018237a2cdf085eecbbc048e52612438e4e9d0" dependencies = [ "thiserror", "ucd-trie", @@ -3071,7 +3131,7 @@ checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" dependencies = [ "proc-macro2 1.0.47", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] @@ -3123,9 +3183,9 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15eb2c6e362923af47e13c23ca5afb859e83d54452c55b0b9ac763b8f7c1ac16" +checksum = "ac662b3a6490de378b0ee15cf2dfff7127aebfe0b19acc65e7fbca3d299c3788" [[package]] name = "ppv-lite86" @@ -3140,7 +3200,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c142c0e46b57171fe0c528bee8c5b7569e80f0c17e377cd0e30ea57dbc11bb51" dependencies = [ "proc-macro2 1.0.47", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] @@ -3172,7 +3232,7 @@ dependencies = [ "proc-macro-error-attr", "proc-macro2 1.0.47", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", "version_check", ] @@ -3219,9 +3279,9 @@ dependencies = [ [[package]] name = "prost" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0841812012b2d4a6145fae9a6af1534873c32aa67fff26bd09f8fa42c83f95a" +checksum = "c0b18e655c21ff5ac2084a5ad0611e827b3f92badf79f4910b5a5c58f4d87ff0" dependencies = [ "bytes", "prost-derive", @@ -3229,9 +3289,9 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.11.2" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d8b442418ea0822409d9e7d047cbf1e7e9e1760b172bf9982cf29d517c93511" +checksum = "276470f7f281b0ed53d2ae42dd52b4a8d08853a3c70e7fe95882acbb98a6ae94" dependencies = [ "bytes", "heck", @@ -3244,7 +3304,7 @@ dependencies = [ "prost", "prost-types", "regex", - "syn 1.0.103", + "syn 1.0.105", "tempfile", "which", ] @@ -3259,7 +3319,7 @@ dependencies = [ "itertools", "proc-macro2 1.0.47", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] @@ -3331,9 +3391,9 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f832d8958db3e84d2ec93b5eb2272b45aa23cf7f8fe6e79f578896f4e6c231b" +checksum = "b07946277141531aea269befd949ed16b2c85a780ba1043244eda0969e538e54" dependencies = [ "futures-util", "libc", @@ -3443,21 +3503,19 @@ dependencies = [ [[package]] name = "rayon" -version = "1.5.3" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d" +checksum = "6db3a213adf02b3bcfd2d3846bb41cb22857d131789e01df434fb7e7bc0759b7" dependencies = [ - "autocfg", - "crossbeam-deque", "either", "rayon-core", ] [[package]] name = "rayon-core" -version = "1.9.3" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f" +checksum = "cac410af5d00ab6884528b4ab69d1e8e146e8d471201800fa1b4524126de6ad3" dependencies = [ "crossbeam-channel", "crossbeam-deque", @@ -3546,9 +3604,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.12" +version = "0.11.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "431949c384f4e2ae07605ccaa56d1d9d2ecdb5cadd4f9577ccfab29f2e5149fc" +checksum = "68cc60575865c7831548863cc02356512e3f1dc2f3f82cb837d7fc4cc8f3c97c" dependencies = [ "async-compression", "base64 0.13.1", @@ -3615,9 +3673,20 @@ dependencies = [ [[package]] name = "rpassword" -version = "7.1.0" +version = "7.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20c9f5d2a0c3e2ea729ab3706d22217177770654c3ef5056b68b69d07332d3f5" +checksum = "6678cf63ab3491898c0d021b493c94c9b221d91295294a2a5746eacbe5928322" +dependencies = [ + "libc", + "rtoolbox", + "winapi 0.3.9", +] + +[[package]] +name = "rtoolbox" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "034e22c514f5c0cb8a10ff341b9b048b5ceb21591f31c8f44c43b960f9b3524a" dependencies = [ "libc", "winapi 0.3.9", @@ -3673,9 +3742,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.36.4" +version = "0.36.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb93e85278e08bb5788653183213d3a60fc242b10cb9be96586f5a73dcb67c23" +checksum = "a3807b5d10909833d3e9acd1eb5fb988f79376ff10fce42937de71a449c4c588" dependencies = [ "bitflags", "errno", @@ -3787,7 +3856,7 @@ checksum = "bdbda6ac5cd1321e724fa9cee216f3a61885889b896f073b8f82322789c5250e" dependencies = [ "proc-macro2 1.0.47", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] @@ -3864,9 +3933,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.147" +version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965" +checksum = "256b9932320c590e707b94576e3cc1f7c9024d0ee6612dfbcf1cb106cbe8e055" dependencies = [ "serde_derive", ] @@ -3882,20 +3951,20 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.147" +version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f1d362ca8fc9c3e3a7484440752472d68a6caa98f1ab81d99b5dfe517cec852" +checksum = "b4eae9b04cbffdfd550eb462ed33bc6a1b68c935127d008b27444d08380f94e4" dependencies = [ "proc-macro2 1.0.47", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] name = "serde_json" -version = "1.0.87" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce777b7b150d76b9cf60d28b55f5847135a003f7d7350c6be7a773508ce7d45" +checksum = "020ff22c755c2ed3f8cf162dbb41a7268d934702f3ed3631656ea597e08fc3db" dependencies = [ "itoa 1.0.4", "ryu", @@ -3942,13 +4011,13 @@ dependencies = [ [[package]] name = "sha-1" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f" +checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" dependencies = [ "cfg-if 1.0.0", "cpufeatures", - "digest 0.10.5", + "digest 0.10.6", ] [[package]] @@ -3959,7 +4028,7 @@ checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" dependencies = [ "cfg-if 1.0.0", "cpufeatures", - "digest 0.10.5", + "digest 0.10.6", ] [[package]] @@ -3983,7 +4052,7 @@ checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" dependencies = [ "cfg-if 1.0.0", "cpufeatures", - "digest 0.10.5", + "digest 0.10.6", ] [[package]] @@ -4004,7 +4073,7 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bdf0c33fae925bdc080598b84bc15c55e7b9a4a43b3c704da051f977469691c9" dependencies = [ - "digest 0.10.5", + "digest 0.10.6", "keccak", ] @@ -4035,6 +4104,17 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a30f10c911c0355f80f1c2faa8096efc4a58cdf8590b954d5b395efa071c711" +[[package]] +name = "simplelog" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48dfff04aade74dd495b007c831cd6f4e0cee19c344dd9dc0884c0289b70a786" +dependencies = [ + "log", + "termcolor", + "time 0.3.17", +] + [[package]] name = "sized-chunks" version = "0.6.5" @@ -4104,7 +4184,7 @@ dependencies = [ [[package]] name = "solana-account-decoder" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "Inflector", "base64 0.13.1", @@ -4127,7 +4207,7 @@ dependencies = [ [[package]] name = "solana-address-lookup-table-program" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "bincode", "bytemuck", @@ -4147,7 +4227,7 @@ dependencies = [ [[package]] name = "solana-bloom" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "bv", "fnv", @@ -4165,7 +4245,7 @@ dependencies = [ [[package]] name = "solana-bpf-loader-program" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "bincode", "byteorder", @@ -4182,7 +4262,7 @@ dependencies = [ [[package]] name = "solana-bucket-map" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "log", "memmap2", @@ -4196,7 +4276,7 @@ dependencies = [ [[package]] name = "solana-clap-utils" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "chrono", "clap 2.34.0", @@ -4213,7 +4293,7 @@ dependencies = [ [[package]] name = "solana-cli-config" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "dirs-next", "lazy_static", @@ -4228,7 +4308,7 @@ dependencies = [ [[package]] name = "solana-client" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "async-trait", "bincode", @@ -4260,7 +4340,7 @@ dependencies = [ [[package]] name = "solana-compute-budget-program" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "solana-program-runtime", "solana-sdk 1.15.0", @@ -4269,7 +4349,7 @@ dependencies = [ [[package]] name = "solana-config-program" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "bincode", "chrono", @@ -4282,7 +4362,7 @@ dependencies = [ [[package]] name = "solana-entry" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "bincode", "crossbeam-channel", @@ -4304,7 +4384,7 @@ dependencies = [ [[package]] name = "solana-faucet" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "bincode", "byteorder", @@ -4326,9 +4406,9 @@ dependencies = [ [[package]] name = "solana-frozen-abi" -version = "1.14.7" +version = "1.14.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e9d5107e663df4a87c658ee764e9f0e4d15adf8bc1d1c9088b45ed8eaaf4958" +checksum = "a73da3a286cf0d1ab25d669c17a3c2b5fe1334f8262b9673cb22912d92a94b14" dependencies = [ "ahash", "blake3", @@ -4353,7 +4433,7 @@ dependencies = [ "serde_derive", "serde_json", "sha2 0.10.6", - "solana-frozen-abi-macro 1.14.7", + "solana-frozen-abi-macro 1.14.10", "subtle", "thiserror", ] @@ -4361,7 +4441,7 @@ dependencies = [ [[package]] name = "solana-frozen-abi" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "ahash", "blake3", @@ -4393,31 +4473,31 @@ dependencies = [ [[package]] name = "solana-frozen-abi-macro" -version = "1.14.7" +version = "1.14.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e4600fe5ae28cec848debc4ea3b41f34d9d8fd088aca209fbb1e8205489d08d" +checksum = "c88a0446927b49aee9b40ec1c6a96be562a9de543a0c58483a8520f99f454f36" dependencies = [ "proc-macro2 1.0.47", "quote 1.0.21", "rustc_version 0.4.0", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] name = "solana-frozen-abi-macro" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "proc-macro2 1.0.47", "quote 1.0.21", "rustc_version 0.4.0", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] name = "solana-gossip" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "bincode", "bv", @@ -4463,7 +4543,7 @@ dependencies = [ [[package]] name = "solana-ledger" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "assert_matches", "bincode", @@ -4472,7 +4552,7 @@ dependencies = [ "chrono", "chrono-humanize", "crossbeam-channel", - "dashmap", + "dashmap 4.0.2", "fs_extra", "futures 0.3.25", "itertools", @@ -4521,9 +4601,9 @@ dependencies = [ [[package]] name = "solana-logger" -version = "1.14.7" +version = "1.14.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f78a1849908659ed28696b92f030b1048b8ddafadfad0e95e79dcd21fe31072" +checksum = "48ec3aec81a83a876c68b6225d7eaf465b97e2d88ff33b2426e77ba08eded7ce" dependencies = [ "env_logger", "lazy_static", @@ -4533,7 +4613,7 @@ dependencies = [ [[package]] name = "solana-logger" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "env_logger", "lazy_static", @@ -4543,7 +4623,7 @@ dependencies = [ [[package]] name = "solana-measure" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "log", "solana-sdk 1.15.0", @@ -4552,7 +4632,7 @@ dependencies = [ [[package]] name = "solana-merkle-tree" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "fast-math", "matches", @@ -4562,7 +4642,7 @@ dependencies = [ [[package]] name = "solana-metrics" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "crossbeam-channel", "gethostname", @@ -4575,7 +4655,7 @@ dependencies = [ [[package]] name = "solana-net-utils" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "bincode", "clap 3.2.23", @@ -4596,7 +4676,7 @@ dependencies = [ [[package]] name = "solana-perf" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "ahash", "bincode", @@ -4622,7 +4702,7 @@ dependencies = [ [[package]] name = "solana-poh" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "core_affinity", "crossbeam-channel", @@ -4639,9 +4719,9 @@ dependencies = [ [[package]] name = "solana-program" -version = "1.14.7" +version = "1.14.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512475cccb7e13f96ba76ed091b2d79a8431a485c73be728cd2235f9adba5a4e" +checksum = "927d3d7e49093e601811a89ede4a9698059fb819871b3eba88a6cb0c964040fe" dependencies = [ "base64 0.13.1", "bincode", @@ -4663,7 +4743,7 @@ dependencies = [ "libc", "libsecp256k1", "log", - "memoffset", + "memoffset 0.6.5", "num-derive", "num-traits", "parking_lot 0.12.1", @@ -4677,9 +4757,9 @@ dependencies = [ "serde_json", "sha2 0.10.6", "sha3 0.10.6", - "solana-frozen-abi 1.14.7", - "solana-frozen-abi-macro 1.14.7", - "solana-sdk-macro 1.14.7", + "solana-frozen-abi 1.14.10", + "solana-frozen-abi-macro 1.14.10", + "solana-sdk-macro 1.14.10", "thiserror", "tiny-bip39", "wasm-bindgen", @@ -4689,7 +4769,7 @@ dependencies = [ [[package]] name = "solana-program" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "ark-bn254", "ark-ec", @@ -4715,7 +4795,7 @@ dependencies = [ "libc", "libsecp256k1", "log", - "memoffset", + "memoffset 0.6.5", "num-derive", "num-traits", "parking_lot 0.12.1", @@ -4741,7 +4821,7 @@ dependencies = [ [[package]] name = "solana-program-runtime" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "base64 0.13.1", "bincode", @@ -4768,7 +4848,7 @@ dependencies = [ [[package]] name = "solana-pubsub-client" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "crossbeam-channel", "futures-util", @@ -4792,7 +4872,7 @@ dependencies = [ [[package]] name = "solana-quic-client" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "async-mutex", "async-trait", @@ -4818,7 +4898,7 @@ dependencies = [ [[package]] name = "solana-rayon-threadlimit" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "lazy_static", "num_cpus", @@ -4827,7 +4907,7 @@ dependencies = [ [[package]] name = "solana-remote-wallet" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "console", "dialoguer", @@ -4845,13 +4925,13 @@ dependencies = [ [[package]] name = "solana-rpc" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "base64 0.13.1", "bincode", "bs58", "crossbeam-channel", - "dashmap", + "dashmap 4.0.2", "itertools", "jsonrpc-core", "jsonrpc-core-client", @@ -4899,7 +4979,7 @@ dependencies = [ [[package]] name = "solana-rpc-client" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "async-trait", "base64 0.13.1", @@ -4924,7 +5004,7 @@ dependencies = [ [[package]] name = "solana-rpc-client-api" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "base64 0.13.1", "bs58", @@ -4945,7 +5025,7 @@ dependencies = [ [[package]] name = "solana-rpc-client-nonce-utils" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "clap 2.34.0", "solana-clap-utils", @@ -4957,7 +5037,7 @@ dependencies = [ [[package]] name = "solana-runtime" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "arrayref", "bincode", @@ -4967,7 +5047,7 @@ dependencies = [ "byteorder", "bzip2", "crossbeam-channel", - "dashmap", + "dashmap 4.0.2", "dir-diff", "flate2", "fnv", @@ -5018,9 +5098,9 @@ dependencies = [ [[package]] name = "solana-sdk" -version = "1.14.7" +version = "1.14.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cb45fd782d3793c3821dd961b9c7a28b675e187f7f22cff06e694c7743904ce" +checksum = "6c925686af7b3235245997acdac126e53c78bab8b924b11434ca5ec45259114d" dependencies = [ "assert_matches", "base64 0.13.1", @@ -5032,7 +5112,7 @@ dependencies = [ "byteorder", "chrono", "derivation-path", - "digest 0.10.5", + "digest 0.10.6", "ed25519-dalek", "ed25519-dalek-bip32", "generic-array", @@ -5057,11 +5137,11 @@ dependencies = [ "serde_json", "sha2 0.10.6", "sha3 0.10.6", - "solana-frozen-abi 1.14.7", - "solana-frozen-abi-macro 1.14.7", - "solana-logger 1.14.7", - "solana-program 1.14.7", - "solana-sdk-macro 1.14.7", + "solana-frozen-abi 1.14.10", + "solana-frozen-abi-macro 1.14.10", + "solana-logger 1.14.10", + "solana-program 1.14.10", + "solana-sdk-macro 1.14.10", "thiserror", "uriparse", "wasm-bindgen", @@ -5070,7 +5150,7 @@ dependencies = [ [[package]] name = "solana-sdk" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "assert_matches", "base64 0.13.1", @@ -5082,7 +5162,7 @@ dependencies = [ "byteorder", "chrono", "derivation-path", - "digest 0.10.5", + "digest 0.10.6", "ed25519-dalek", "ed25519-dalek-bip32", "generic-array", @@ -5120,33 +5200,33 @@ dependencies = [ [[package]] name = "solana-sdk-macro" -version = "1.14.7" +version = "1.14.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a08cc4804804ecb9eb07a16c7ff2d4a770fe0533298f36f867a5efc2e3284745" +checksum = "f511aecadeab3ebc0db10e78d9e7b571dffe1744c0003d6602f537581c3448cf" dependencies = [ "bs58", "proc-macro2 1.0.47", "quote 1.0.21", "rustversion", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] name = "solana-sdk-macro" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "bs58", "proc-macro2 1.0.47", "quote 1.0.21", "rustversion", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] name = "solana-send-transaction-service" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "crossbeam-channel", "log", @@ -5161,7 +5241,7 @@ dependencies = [ [[package]] name = "solana-stake-program" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "bincode", "log", @@ -5175,7 +5255,7 @@ dependencies = [ [[package]] name = "solana-storage-bigtable" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "backoff", "bincode", @@ -5208,7 +5288,7 @@ dependencies = [ [[package]] name = "solana-storage-proto" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "bincode", "bs58", @@ -5224,7 +5304,7 @@ dependencies = [ [[package]] name = "solana-streamer" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "crossbeam-channel", "futures-util", @@ -5254,7 +5334,7 @@ dependencies = [ [[package]] name = "solana-sys-tuner" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "clap 2.34.0", "libc", @@ -5270,7 +5350,7 @@ dependencies = [ [[package]] name = "solana-thin-client" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "bincode", "log", @@ -5283,7 +5363,7 @@ dependencies = [ [[package]] name = "solana-tpu-client" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "async-trait", "bincode", @@ -5307,7 +5387,7 @@ dependencies = [ [[package]] name = "solana-transaction-status" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "Inflector", "base64 0.13.1", @@ -5332,7 +5412,7 @@ dependencies = [ [[package]] name = "solana-udp-client" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "async-trait", "solana-net-utils", @@ -5346,7 +5426,7 @@ dependencies = [ [[package]] name = "solana-version" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "log", "rustc_version 0.4.0", @@ -5361,7 +5441,7 @@ dependencies = [ [[package]] name = "solana-vote-program" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "bincode", "log", @@ -5382,7 +5462,7 @@ dependencies = [ [[package]] name = "solana-zk-token-proof-program" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "bytemuck", "getrandom 0.1.16", @@ -5395,9 +5475,9 @@ dependencies = [ [[package]] name = "solana-zk-token-sdk" -version = "1.14.7" +version = "1.14.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d4f9818b158e7a49266b83e0c06e551ba429d2395a55de5803eb6e2daa1260c" +checksum = "facf969af237320649c2ea99be5f75e98cba9b6e3217d9ddc5cbf3497c0282f9" dependencies = [ "aes-gcm-siv", "arrayref", @@ -5417,8 +5497,8 @@ dependencies = [ "serde", "serde_json", "sha3 0.9.1", - "solana-program 1.14.7", - "solana-sdk 1.14.7", + "solana-program 1.14.10", + "solana-sdk 1.14.10", "subtle", "thiserror", "zeroize", @@ -5427,7 +5507,7 @@ dependencies = [ [[package]] name = "solana-zk-token-sdk" version = "1.15.0" -source = "git+https://github.com/solana-labs/solana.git#9327658007dd72e3eb5465c7c9f0fe0008ba27e0" +source = "git+https://github.com/solana-labs/solana.git#5f74fb9c87d894b8f8fc3a224d5ff56e59370549" dependencies = [ "aes-gcm-siv", "arrayref", @@ -5496,15 +5576,15 @@ dependencies = [ [[package]] name = "spl-associated-token-account" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16a33ecc83137583902c3e13c02f34151c8b2f2b74120f9c2b3ff841953e083d" +checksum = "fbc000f0fdf1f12f99d77d398137c1751345b18c88258ce0f99b7872cf6c9bd6" dependencies = [ "assert_matches", "borsh", "num-derive", "num-traits", - "solana-program 1.14.7", + "solana-program 1.14.10", "spl-token", "spl-token-2022", "thiserror", @@ -5516,7 +5596,7 @@ version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd0dc6f70db6bacea7ff25870b016a65ba1d1b6013536f08e4fd79a8f9005325" dependencies = [ - "solana-program 1.14.7", + "solana-program 1.14.10", ] [[package]] @@ -5530,23 +5610,23 @@ dependencies = [ "num-derive", "num-traits", "num_enum", - "solana-program 1.14.7", + "solana-program 1.14.10", "thiserror", ] [[package]] name = "spl-token-2022" -version = "0.4.3" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4c0ebca4740cc4c892aa31e07d0b4dc1a24cac4748376d4b34f8eb0fee9ff46" +checksum = "0edb869dbe159b018f17fb9bfa67118c30f232d7f54a73742bc96794dff77ed8" dependencies = [ "arrayref", "bytemuck", "num-derive", "num-traits", "num_enum", - "solana-program 1.14.7", - "solana-zk-token-sdk 1.14.7", + "solana-program 1.14.10", + "solana-zk-token-sdk 1.14.10", "spl-memo", "spl-token", "thiserror", @@ -5600,7 +5680,7 @@ dependencies = [ "proc-macro2 1.0.47", "quote 1.0.21", "rustversion", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] @@ -5628,9 +5708,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.103" +version = "1.0.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d" +checksum = "60b9b43d45702de4c839cb9b51d9f529c5dd26a4aff255b42b1ebc03e88ee908" dependencies = [ "proc-macro2 1.0.47", "quote 1.0.21", @@ -5651,7 +5731,7 @@ checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ "proc-macro2 1.0.47", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", "unicode-xid 0.2.4", ] @@ -5744,14 +5824,14 @@ checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" dependencies = [ "proc-macro2 1.0.47", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] name = "time" -version = "0.1.44" +version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" +checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" dependencies = [ "libc", "wasi 0.10.0+wasi-snapshot-preview1", @@ -5765,6 +5845,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376" dependencies = [ "itoa 1.0.4", + "libc", + "num_threads", "serde", "time-core", "time-macros", @@ -5851,13 +5933,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "1.8.0" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484" +checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8" dependencies = [ "proc-macro2 1.0.47", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] @@ -5948,9 +6030,9 @@ dependencies = [ [[package]] name = "tonic" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55b9af819e54b8f33d453655bef9b9acc171568fb49523078d0cc4e7484200ec" +checksum = "8f219fad3b929bef19b1f86fbc0358d35daed8f2cac972037ac0dc10bbb8d5fb" dependencies = [ "async-stream", "async-trait", @@ -5982,15 +6064,15 @@ dependencies = [ [[package]] name = "tonic-build" -version = "0.8.2" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c6fd7c2581e36d63388a9e04c350c21beb7a8b059580b2e93993c526899ddc" +checksum = "5bf5e9b9c0f7e0a7c027dcfaba7b2c60816c7049171f679d99ee2ff65d0de8c4" dependencies = [ "prettyplease", "proc-macro2 1.0.47", "prost-build", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] @@ -6015,9 +6097,9 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c530c8675c1dbf98facee631536fa116b5fb6382d7dd6dc1b118d970eafe3ba" +checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" dependencies = [ "bitflags", "bytes", @@ -6065,7 +6147,7 @@ checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" dependencies = [ "proc-macro2 1.0.47", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", ] [[package]] @@ -6113,7 +6195,7 @@ dependencies = [ "log", "rand 0.8.5", "rustls", - "sha-1 0.10.0", + "sha-1 0.10.1", "thiserror", "url 2.3.1", "utf-8", @@ -6123,9 +6205,9 @@ dependencies = [ [[package]] name = "typenum" -version = "1.15.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" +checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" [[package]] name = "ucd-trie" @@ -6353,7 +6435,7 @@ dependencies = [ "once_cell", "proc-macro2 1.0.47", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", "wasm-bindgen-shared", ] @@ -6387,7 +6469,7 @@ checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" dependencies = [ "proc-macro2 1.0.47", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -6420,9 +6502,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.22.5" +version = "0.22.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368bfe657969fb01238bb756d351dcade285e0f6fcbd36dcb23359a5169975be" +checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" dependencies = [ "webpki", ] @@ -6637,13 +6719,13 @@ dependencies = [ [[package]] name = "zeroize_derive" -version = "1.3.2" +version = "1.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f8f187641dad4f680d25c4bfc4225b418165984179f26ca76ec4fb6441d3a17" +checksum = "44bf07cb3e50ea2003396695d58bf46bc9887a1f362260446fad6bc4e79bd36c" dependencies = [ "proc-macro2 1.0.47", "quote 1.0.21", - "syn 1.0.103", + "syn 1.0.105", "synstructure", ] @@ -6668,9 +6750,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.1+zstd.1.5.2" +version = "2.0.4+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fd07cbbc53846d9145dbffdf6dd09a7a0aa52be46741825f5c97bdd4f73f12b" +checksum = "4fa202f2ef00074143e219d15b62ffc317d17cc33909feac471c044087cad7b0" dependencies = [ "cc", "libc", diff --git a/Cargo.toml b/Cargo.toml index 2eb9c47a..beec3f53 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,26 @@ name = "lite-rpc" version = "0.1.0" edition = "2021" -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[workspace] +members = [ + "lite-client", + "lite-bench-utils" +] + +[[bench]] +name="tps" +harness=false + +[package.metadata.docs.rs] +targets = ["x86_64-unknown-linux-gnu"] + +[dev-dependencies] +csv = "1.1.6" +serde = { version = "1", features = ["derive"]} +lite-client = { path ="./lite-client" } +lite-bench-utils = { path = "./lite-bench-utils" } +log = "0.4.17" +simplelog = "0.12.0" [dependencies] solana-client = { git = "https://github.com/solana-labs/solana.git" } @@ -34,6 +53,7 @@ solana-vote-program = { git = "https://github.com/solana-labs/solana.git" } solana-rpc = { git = "https://github.com/solana-labs/solana.git" } tokio = { version = "1.14.1", features = ["full"]} +tokio-util = { version = "0.6", features = ["codec", "compat"] } futures = "0.3.25" jsonrpc-core = "18.0.0" jsonrpc-core-client = { version = "18.0.0" } @@ -43,29 +63,21 @@ jsonrpc-pubsub = "18.0.0" clap = { version = "4.0.29", features = ["derive"] } procinfo = "0.4.2" -base64 = "0.13.0" +base64 = "0.13.1" bincode = "1.3.3" bs58 = "0.4.0" -crossbeam-channel = "0.5" -dashmap = "4.0.2" +crossbeam-channel = "0.5.6" +dashmap = "5.4.0" itertools = "0.10.5" -libc = "0.2.131" +libc = "0.2.138" log = "0.4.17" -rayon = "1.5.3" -regex = "1.6.0" -serde = "1.0.144" -serde_derive = "1.0.103" -serde_json = "1.0.83" -soketto = "0.7" +rayon = "1.6.1" +regex = "1.7.0" +serde = "1.0.149" +serde_derive = "1.0.149" +serde_json = "1.0.89" +soketto = "0.7.1" spl-token = { version = "=3.5.0", features = ["no-entrypoint"] } -spl-token-2022 = { version = "=0.4.3", features = ["no-entrypoint"] } +spl-token-2022 = { version = "0.5.0", features = ["no-entrypoint"] } stream-cancel = "0.8.1" -thiserror = "1.0" -tokio-util = { version = "0.6", features = ["codec", "compat"] } - -[dev-dependencies] -csv = "1.1.6" -serde = { version = "1", features = ["derive"]} - -[package.metadata.docs.rs] -targets = ["x86_64-unknown-linux-gnu"] +thiserror = "1.0.37" diff --git a/benches/tps.rs b/benches/tps.rs new file mode 100644 index 00000000..7ce7879b --- /dev/null +++ b/benches/tps.rs @@ -0,0 +1,123 @@ +use std::collections::HashMap; +use std::sync::Arc; +use std::time::{Duration, Instant}; + +use lite_bench_utils::{ + generate_txs, + metrics::{AvgMetric, Metric}, + new_funded_payer, +}; +use log::info; +use solana_client::{nonblocking::rpc_client::RpcClient, rpc_client::SerializableTransaction}; +use solana_sdk::native_token::LAMPORTS_PER_SOL; + +use lite_client::{LiteClient, LOCAL_LIGHT_RPC_ADDR}; +use simplelog::*; +use tokio::sync::mpsc; + +const NUM_OF_TXS: usize = 10_000; +const NUM_OF_RUNS: usize = 1; +const CSV_FILE_NAME: &str = "metrics.csv"; + +#[tokio::main] +async fn main() { + TermLogger::init( + LevelFilter::Info, + Config::default(), + TerminalMode::Mixed, + ColorChoice::Auto, + ) + .unwrap(); + + let lite_client = Arc::new(LiteClient(RpcClient::new(LOCAL_LIGHT_RPC_ADDR.to_string()))); + let mut csv_writer = csv::Writer::from_path(CSV_FILE_NAME).unwrap(); + + let mut avg_metric = AvgMetric::default(); + + for run_num in 0..NUM_OF_RUNS { + let metric = foo(lite_client.clone()).await; + info!("Run {run_num}: Sent and Confirmed {NUM_OF_TXS} tx(s) in {metric:?}",); + avg_metric += &metric; + csv_writer.serialize(metric).unwrap(); + } + + let avg_metric = Metric::from(avg_metric); + + info!("Avg Metric {avg_metric:?}",); + csv_writer.serialize(avg_metric).unwrap(); + + csv_writer.flush().unwrap(); +} + +async fn foo(lite_client: Arc) -> Metric { + let funded_payer = new_funded_payer(&lite_client, LAMPORTS_PER_SOL * 2000) + .await + .unwrap(); + + let txs = generate_txs(NUM_OF_TXS, &lite_client.0, &funded_payer) + .await + .unwrap(); + + let mut un_confirmed_txs: HashMap> = HashMap::with_capacity(txs.len()); + + for tx in &txs { + un_confirmed_txs.insert(tx.get_signature().to_string(), None); + } + + let start_time = Instant::now(); + + info!("Sending and Confirming {NUM_OF_TXS} tx(s)"); + + let send_fut = { + let lite_client = lite_client.clone(); + tokio::spawn(async move { + for tx in txs { + lite_client.send_transaction(&tx).await.unwrap(); + info!("Tx {}", &tx.signatures[0]); + } + info!("Sent {NUM_OF_TXS} tx(s)"); + }) + }; + + let (metrics_send, mut metrics_recv) = mpsc::channel(1); + + let confirm_fut = tokio::spawn(async move { + let mut metrics = Metric::default(); + + while !un_confirmed_txs.is_empty() { + let mut to_remove_txs = Vec::new(); + + for (sig, time_elapsed_since_last_confirmed) in un_confirmed_txs.iter_mut() { + if time_elapsed_since_last_confirmed.is_none() { + *time_elapsed_since_last_confirmed = Some(Instant::now()) + } + + if lite_client.confirm_transaction(sig.clone()).await.value { + metrics.txs_confirmed += 1; + to_remove_txs.push(sig.clone()); + } else if time_elapsed_since_last_confirmed.unwrap().elapsed() + > Duration::from_secs(3) + { + metrics.txs_un_confirmed += 1; + to_remove_txs.push(sig.clone()); + } + } + + for to_remove_tx in to_remove_txs { + un_confirmed_txs.remove(&to_remove_tx); + } + } + + metrics.time_elapsed_sec = start_time.elapsed().as_secs_f64(); + metrics.txs_sent = NUM_OF_TXS as u64; + metrics.calc_tps(); + + metrics_send.send(metrics).await.unwrap(); + }); + + let (res1, res2) = tokio::join!(send_fut, confirm_fut); + res1.unwrap(); + res2.unwrap(); + + metrics_recv.recv().await.unwrap() +} diff --git a/lite-bench-utils/Cargo.toml b/lite-bench-utils/Cargo.toml new file mode 100644 index 00000000..b241ed97 --- /dev/null +++ b/lite-bench-utils/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "lite-bench-utils" +version = "0.1.0" +edition = "2021" + +[dependencies] +lite-client = { path ="../lite-client" } +serde = { version = "1.0.149", features = ["derive"] } +serde_json = "1.0.89" +solana-client = { git = "https://github.com/solana-labs/solana.git" } +solana-sdk = { git = "https://github.com/solana-labs/solana.git" } +tokio = "1.14.1" +log = "0.4.17" +anyhow = "1.0.66" diff --git a/lite-bench-utils/Makefile b/lite-bench-utils/Makefile new file mode 100644 index 00000000..6f18120c --- /dev/null +++ b/lite-bench-utils/Makefile @@ -0,0 +1,8 @@ +test: + cargo test send_and_confirm_tx -- --nocapture + +benchmark: + cargo bench + +clean: + cargo clean diff --git a/lite-bench-utils/src/lib.rs b/lite-bench-utils/src/lib.rs new file mode 100644 index 00000000..7f5398f8 --- /dev/null +++ b/lite-bench-utils/src/lib.rs @@ -0,0 +1,74 @@ +pub mod metrics; + +use std::thread; +use std::time::Duration; + +use lite_client::LiteClient; +use log::info; +use solana_client::nonblocking::rpc_client::RpcClient; + +use solana_sdk::hash::Hash; +use solana_sdk::signature::Signature; +use solana_sdk::{ + message::Message, pubkey::Pubkey, signature::Keypair, signer::Signer, system_instruction, + transaction::Transaction, +}; + +pub async fn new_funded_payer(lite_client: &LiteClient, amount: u64) -> anyhow::Result { + let payer = Keypair::new(); + let payer_pubkey = payer.pubkey().to_string(); + + // request airdrop to payer + let airdrop_sig = lite_client.request_airdrop(&payer.pubkey(), amount).await?; + + info!("Air Dropping {payer_pubkey} with {amount}L"); + + thread::sleep(Duration::from_secs(12)); + + //loop { + // if let Some(res) = lite_client + // .get_signature_status_with_commitment(&airdrop_sig, CommitmentConfig::finalized()) + // .await? + // { + // match res { + // Ok(_) => break, + // Err(_) => bail!("Error air dropping {payer_pubkey}"), + // } + // } + //} + + info!("Air Drop Successful: {airdrop_sig}"); + + Ok(payer) +} + +pub async fn wait_till_confirmed(lite_client: &LiteClient, sig: &Signature) { + while lite_client.confirm_transaction(sig.to_string()).await.value {} +} + +pub fn create_transaction(funded_payer: &Keypair, blockhash: Hash) -> Transaction { + let to_pubkey = Pubkey::new_unique(); + + // transfer instruction + let instruction = system_instruction::transfer(&funded_payer.pubkey(), &to_pubkey, 1_000_000); + + let message = Message::new(&[instruction], Some(&funded_payer.pubkey())); + + Transaction::new(&[funded_payer], message, blockhash) +} + +pub async fn generate_txs( + num_of_txs: usize, + rpc_client: &RpcClient, + funded_payer: &Keypair, +) -> anyhow::Result> { + let mut txs = Vec::with_capacity(num_of_txs); + + let blockhash = rpc_client.get_latest_blockhash().await?; + + for _ in 0..num_of_txs { + txs.push(create_transaction(funded_payer, blockhash)); + } + + Ok(txs) +} diff --git a/lite-bench-utils/src/metrics.rs b/lite-bench-utils/src/metrics.rs new file mode 100644 index 00000000..0df8b5e6 --- /dev/null +++ b/lite-bench-utils/src/metrics.rs @@ -0,0 +1,56 @@ +use std::ops::{AddAssign, DivAssign}; + +#[derive(Debug, Default, serde::Serialize)] +pub struct Metric { + pub time_elapsed_sec: f64, + pub txs_sent: u64, + pub txs_confirmed: u64, + pub txs_un_confirmed: u64, + pub tps: f64, +} + +#[derive(Default)] +pub struct AvgMetric { + num_of_runs: u64, + total_metric: Metric, +} + +impl Metric { + pub fn calc_tps(&mut self) { + self.tps = self.txs_confirmed as f64 / self.time_elapsed_sec + } +} + +impl AddAssign<&Self> for Metric { + fn add_assign(&mut self, rhs: &Self) { + self.time_elapsed_sec += rhs.time_elapsed_sec; + self.txs_sent += rhs.txs_sent; + self.txs_confirmed += rhs.txs_confirmed; + self.txs_un_confirmed += rhs.txs_un_confirmed; + self.tps += rhs.tps + } +} + +impl DivAssign for Metric { + fn div_assign(&mut self, rhs: u64) { + self.time_elapsed_sec /= rhs as f64; + self.txs_sent /= rhs; + self.txs_confirmed /= rhs; + self.txs_un_confirmed /= rhs; + self.tps /= rhs as f64; + } +} + +impl AddAssign<&Metric> for AvgMetric { + fn add_assign(&mut self, rhs: &Metric) { + self.num_of_runs += 1; + self.total_metric += rhs; + } +} + +impl From for Metric { + fn from(mut avg_metric: AvgMetric) -> Self { + avg_metric.total_metric /= avg_metric.num_of_runs; + avg_metric.total_metric + } +} diff --git a/lite-client/Cargo.toml b/lite-client/Cargo.toml new file mode 100644 index 00000000..65a4b45b --- /dev/null +++ b/lite-client/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "lite-client" +version = "0.1.0" +edition = "2021" + +[dependencies] +serde_json = "1.0.89" +solana-client = { git = "https://github.com/solana-labs/solana.git" } diff --git a/src/client.rs b/lite-client/src/lib.rs similarity index 73% rename from src/client.rs rename to lite-client/src/lib.rs index 47ba08d3..2456e2a1 100644 --- a/src/client.rs +++ b/lite-client/src/lib.rs @@ -1,7 +1,11 @@ use std::ops::{Deref, DerefMut}; -use solana_client::nonblocking::rpc_client::RpcClient; -use solana_client::rpc_request::RpcRequest; +use solana_client::{ + nonblocking::rpc_client::RpcClient, rpc_request::RpcRequest, + rpc_response::Response as RpcResponse, +}; + +pub const LOCAL_LIGHT_RPC_ADDR: &str = "http://127.0.0.1:8890"; pub struct LiteClient(pub RpcClient); @@ -20,7 +24,7 @@ impl DerefMut for LiteClient { } impl LiteClient { - pub async fn confirm_transaction(&self, signature: String) -> bool { + pub async fn confirm_transaction(&self, signature: String) -> RpcResponse { self.send( RpcRequest::Custom { method: "confirmTransaction", @@ -31,3 +35,4 @@ impl LiteClient { .unwrap() } } + diff --git a/src/main.rs b/src/main.rs index 5f5c3a3a..9344a0cf 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,8 @@ +mod cli; +mod context; +mod pubsub; +mod rpc; + use std::{net::SocketAddr, sync::Arc}; use clap::Parser; @@ -16,12 +21,6 @@ use crate::{ LightRpcRequestProcessor, }, }; -mod cli; -mod client; -mod context; -mod pubsub; -mod rpc; - use cli::Args; fn run(port: String, subscription_port: String, rpc_url: String, websocket_url: String) { diff --git a/tests/client.rs b/tests/client.rs new file mode 100644 index 00000000..cf947034 --- /dev/null +++ b/tests/client.rs @@ -0,0 +1,45 @@ +use log::info; +use solana_client::nonblocking::rpc_client::RpcClient; +use solana_client::rpc_client::SerializableTransaction; +use solana_sdk::native_token::LAMPORTS_PER_SOL; + +use lite_client::{LiteClient, LOCAL_LIGHT_RPC_ADDR}; +use lite_bench_utils::{generate_txs, new_funded_payer, wait_till_confirmed}; +use simplelog::*; + +const AMOUNT: usize = 100; + +#[tokio::test] +async fn send_and_confirm_tx() { + TermLogger::init( + LevelFilter::Info, + Config::default(), + TerminalMode::Mixed, + ColorChoice::Auto, + ) + .unwrap(); + + let lite_client = LiteClient(RpcClient::new(LOCAL_LIGHT_RPC_ADDR.to_string())); + let funded_payer = new_funded_payer(&lite_client, LAMPORTS_PER_SOL * 2) + .await + .unwrap(); + + let txs = generate_txs(AMOUNT, &lite_client.0, &funded_payer) + .await + .unwrap(); + + info!("Sending and Confirming {AMOUNT} tx(s)"); + + for tx in &txs { + lite_client.send_transaction(tx).await.unwrap(); + info!("Tx {}", &tx.signatures[0]); + } + + for tx in &txs { + let sig = tx.get_signature(); + info!("Confirming {sig}"); + wait_till_confirmed(&lite_client, sig).await; + } + + info!("Sent and Confirmed {AMOUNT} tx(s)"); +}