chore(deps): upgrade Solana and SIMD dependencies to latest versions

- Upgrade Solana dependencies from 3.0.0 to 3.1.4
- Upgrade solana-hash to 4.0.1
- Update spl-token and spl-token-2022 to latest versions
- Update other dependencies (yellowstone-grpc, rustls, wide, etc.)
- Fix wide library API changes: replace cmp_eq() with simd_eq()
This commit is contained in:
ysq
2025-12-14 19:16:03 +08:00
parent 0e0874bb8a
commit 8cc5b7083b
2 changed files with 39 additions and 38 deletions
+35 -35
View File
@@ -14,64 +14,64 @@ crate-type = ["cdylib", "rlib"]
[dependencies]
solana-sdk = "3.0.0"
solana-client = "3.0.0"
solana-client = "3.1.4"
solana-program = "3.0.0"
solana-rpc-client = "3.0.0"
solana-rpc-client-api = "3.0.0"
solana-transaction-status = "3.0.0"
solana-account-decoder = "3.0.0"
solana-hash = "3.0.0"
solana-entry = "3.0.0"
solana-rpc-client-nonce-utils = "3.0.0"
solana-perf = "3.0.0"
solana-metrics = "3.0.0"
spl-associated-token-account = "7.0.0"
borsh = { version = "1.5.3", features = ["derive"] }
serde = { version = "1.0.215", features = ["derive"] }
solana-rpc-client = "3.1.4"
solana-rpc-client-api = "3.1.4"
solana-transaction-status = "3.1.4"
solana-account-decoder = "3.1.4"
solana-hash = "4.0.1"
solana-entry = "3.1.4"
solana-rpc-client-nonce-utils = "3.1.4"
solana-perf = "3.1.4"
solana-metrics = "3.1.4"
spl-associated-token-account = "8.0.0"
borsh = { version = "1.6.0", features = ["derive"] }
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.134"
serde-big-array = "0.5.1"
futures = "0.3.31"
futures-util = "0.3.31"
base64 = "0.22.1"
rand = "0.9.0"
bincode = "1.3.3"
rand = "0.9.2"
bincode = "1.3"
anyhow = "1.0.90"
yellowstone-grpc-client = { version = "9.0.0" }
yellowstone-grpc-proto = { version = "9.0.0" }
yellowstone-grpc-client = { version = "10.2.0" }
yellowstone-grpc-proto = { version = "10.1.1" }
tokio = { version = "1.42.0", features = ["full", "rt-multi-thread"]}
tonic = { version = "0.14.2", features = ["transport"] }
rustls = { version = "0.23.23", features = ["ring"], default-features = false }
rustls-native-certs = "0.8.1"
tokio-rustls = "0.26.1"
log = "0.4.22"
chrono = "0.4.39"
rustls = { version = "0.23.35", features = ["ring"], default-features = false }
rustls-native-certs = "0.8.2"
tokio-rustls = "0.26.4"
log = "0.4.29"
chrono = "0.4.42"
regex = "1"
tracing = "0.1.41"
thiserror = "2.0.11"
tracing = "0.1.43"
thiserror = "2.0.17"
async-trait = "0.1.86"
lazy_static = "1.5.0"
once_cell = "1.20.3"
dashmap = "6.0.1"
dashmap = "6.1.0"
prost = "0.14.1"
prost-types = "0.14.1"
num_enum = "0.7.3"
num_enum = "0.7.5"
num-derive = "0.4.2"
num-traits = "0.2.19"
hex = "0.4.3"
bytemuck = { version = "1.4.0" }
bytemuck = { version = "1.24.0" }
arrayref = "0.3.6"
borsh-derive = "1.5.5"
indicatif = "0.18.0"
borsh-derive = "1.6.0"
indicatif = "0.18.3"
maplit = "1.0.2"
env_logger = "0.11.8"
crossbeam = "0.8.4"
crossbeam-queue = "0.3.12"
parking_lot = "0.12.1"
wide = "0.7"
spl-token = "8.0.0"
spl-token-2022 = "9.0.0"
solana-commitment-config = { version = "3.0.0", features = ["serde"] }
parking_lot = "0.12.5"
wide = "1.1.0"
spl-token = "9.0.0"
spl-token-2022 = "10.0.0"
solana-commitment-config = { version = "3.1.0", features = ["serde"] }
tonic-prost = "0.14.2"
[dev-dependencies]
criterion = { version = "0.5", features = ["html_reports"] }
criterion = { version = "0.8.1", features = ["html_reports"] }
+4 -3
View File
@@ -1,4 +1,5 @@
use wide::*;
use wide::CmpEq;
/// SIMD-accelerated data parsing utilities
pub struct SimdUtils;
@@ -29,7 +30,7 @@ impl SimdUtils {
let chunk_a = u8x16::from(&a[offset..offset + 16]);
let chunk_b = u8x16::from(&b[offset..offset + 16]);
if !chunk_a.cmp_eq(chunk_b).all() {
if !chunk_a.simd_eq(chunk_b).all() {
return false;
}
}
@@ -90,7 +91,7 @@ impl SimdUtils {
// Use SIMD to process 16-byte discriminators
let data_chunk = u8x16::from(&data[..16]);
let disc_chunk = u8x16::from(discriminator);
data_chunk.cmp_eq(disc_chunk).all()
data_chunk.simd_eq(disc_chunk).all()
}
_ => {
// For other lengths, use generic SIMD comparison
@@ -128,7 +129,7 @@ impl SimdUtils {
let chunk = &haystack[start..start + 16];
let target_vec = u8x16::splat(first_byte);
let chunk_vec = u8x16::from(chunk);
let matches = chunk_vec.cmp_eq(target_vec);
let matches = chunk_vec.simd_eq(target_vec);
// Check each match position
let matches_array: [u8; 16] = matches.into();