Solana Stream SDK Đã Được Cập Nhật Hoàn Toàn Cho Bản Nâng Cấp Solana v3

Solana Stream SDK Đã Được Cập Nhật Hoàn Toàn Cho Bản Nâng Cấp Solana v3

2025.12.10
ELSOUL LABO B.V. (Trụ sở: Amsterdam, Hà Lan; CEO: Fumitake Kawasaki) và Validators DAO đã phát hành các phiên bản mới của Solana Stream SDK mã nguồn mở, được cập nhật hoàn toàn để hỗ trợ bản nâng cấp Solana v3. Cả phiên bản Rust và TypeScript đều đã được nâng cấp để đảm bảo quyền truy cập đáng tin cậy và hiệu suất cao vào các luồng dữ liệu thời gian thực của Solana, bao gồm Shreds và Geyser gRPC, trong kỷ nguyên Alpenglow sắp tới.
Rust crate solana-stream-sdk hiện hỗ trợ Solana v3 với phiên bản 0.6.1, trong khi gói TypeScript / Node.js @validators-dao/solana-stream-sdk đã được cập nhật lên phiên bản 0.12.0. Cùng nhau, chúng cung cấp nền tảng thống nhất cho xử lý luồng hiệu suất cao khi Solana chuyển đổi sang kiến trúc thế hệ tiếp theo.

Bối cảnh – Tại sao Solana v3 và Alpenglow yêu cầu cập nhật phía client

Solana v3 đánh dấu một bước chuyển quan trọng hướng đến kiến trúc đồng thuận Alpenglow mới. Alpenglow thay thế sự kết hợp TowerBFT + Proof of History hiện tại bằng một đường dẫn đồng thuận được thiết kế lại nhằm cải thiện đáng kể khả năng phản hồi của mạng. Với Alpenglow, thời gian finality được kỳ vọng rút ngắn từ khoảng 12 giây hiện tại xuống khoảng 100-150 mili giây. Sự thay đổi này cơ bản thay đổi nhịp độ sản xuất block và đặc tính truyền tải dữ liệu thời gian thực trên mạng.
Đồng thời, validator và nhà vận hành RPC đối mặt với yêu cầu vận hành tăng lên trong v3, với nhiều chu kỳ build và cập nhật cấu hình hơn. Validators DAO đã hiện đại hóa môi trường phía server thông qua các công cụ như SLV, nhưng quá trình chuyển đổi này cũng nhấn mạnh một điểm quan trọng:
Phần mềm client cũng phải cập nhật lên v3, nếu không các cải thiện hiệu suất của mạng không thể được khai thác triệt để.
Điều này đặc biệt đúng với các luồng thời gian thực như Shreds và Geyser gRPC. Các client không tuân theo thông số kỹ thuật mới hoặc đặc tính runtime có xu hướng tích lũy độ trễ hoặc mất tính nhất quán theo thời gian. Khi các node RPC và validator chuyển sang v3, phần mềm client giờ cũng phải di chuyển song song.
Mục tiêu của bản cập nhật Solana Stream SDK này là thu hẹp khoảng cách đó và cung cấp nền tảng sẵn sàng sử dụng cho các ứng dụng thời gian thực trong kỷ nguyên Alpenglow.

Có gì mới trong Solana Stream SDK v0.6.1 (Rust) và v0.12.0 (TypeScript)

Solana Stream SDK đã được thiết kế từ đầu để hỗ trợ cả Shreds và Geyser gRPC. Trong bản phát hành này, SDK đã được cập nhật với nhiều cải tiến để đảm bảo hiệu suất ổn định trên Solana v3 và sẵn sàng cho runtime dựa trên Alpenglow.

Rust Crate v0.6.1

Phiên bản Rust được thiết kế như một triển khai tham chiếu hiệu suất cao cho trader, indexer và mọi tải công việc thời gian thực yêu cầu thông lượng tối đa. Các cập nhật chính bao gồm:
  • Hỗ trợ các thay đổi giao thức trong dòng Solana v3
  • Xử lý hiệu quả luồng Shreds và Geyser gRPC thông qua runtime bất đồng bộ của Rust
  • Wrapper tinh chỉnh quanh các định nghĩa protobuf liên quan đến Shreds, giúp logic xử lý luồng dễ triển khai hơn
  • Đường dẫn thực thi đa luồng được tối ưu hóa để giảm thiểu tích lũy độ trễ ngay cả dưới thông lượng cao liên tục
Phiên bản Rust được khuyến nghị cho người dùng cần tận dụng tối đa Shreds và Geyser gRPC ở mức hiệu suất cao nhất có thể.

TypeScript / Node.js v0.12.0

Phiên bản TypeScript được thiết kế để bảo toàn tính tiện dụng của phát triển Node.js trong khi tích hợp xử lý luồng chạy bằng Rust bên dưới. Trong v0.12.0, các cải tiến sau đã được áp dụng:
  • Giữ nguyên hoàn toàn giao diện hướng sự kiện hiện có (như emitter.on) để tránh thay đổi phá vỡ
  • Tích hợp Rust và NAPI-RS cho xử lý luồng nội bộ, cho phép Node.js xử lý Shreds một cách đáng tin cậy nơi @grpc/grpc-js trước đó đạt giới hạn
  • Cập nhật xử lý cả luồng Geyser gRPC và Shreds để đảm bảo tương thích với Solana v3
Đối với hầu hết người dùng, nâng cấp lên v0.12.0 chỉ cần thay đổi phiên bản trong package.json — không cần sửa đổi mã.

Tại sao Node.js không thể theo kịp Shreds

ShredStream là nguồn dữ liệu có độ trễ thấp nhất và tần suất cao nhất trong hệ sinh thái Solana. Mặc dù Shreds cho phép tầm nhìn thời gian thực không đối thủ vào hoạt động mạng, chúng cũng đòi hỏi thông lượng xử lý rất cao từ phía client.
Các client Node.js được xây dựng trên @grpc/grpc-js gặp các nút thắt cấu trúc:
  • Event loop là đơn luồng, nên deserialization protobuf và callback người dùng chặn lẫn nhau
  • Khi tin nhắn đến nhanh, luồng JavaScript bị bão hòa và hàng đợi xử lý tích tụ
  • Kiểm soát luồng HTTP/2 giảm cửa sổ nhận khi buffer đầy, cuối cùng tạm dừng luồng và gây ra hiện tượng "mạng chậm" hoặc "không có dữ liệu"
Trong nhiều trường hợp quan sát, vấn đề không phải là mạng hay server ShredStream — mà là client Node.js bị tụt lại bên trong.
Giới hạn này là vốn có đối với Node.js khi xử lý Shreds không lọc ở quy mô lớn.
Rust + NAPI-RS vượt qua điều này.

Cách Rust + NAPI-RS tăng tốc xử lý luồng Node.js

Phiên bản TypeScript của Solana Stream SDK chuyển công việc nặng sang Rust trong khi bảo toàn các API JavaScript quen thuộc.
  • Quản lý kết nối gRPC, nhập luồng và deserialization protobuf được thực thi bất đồng bộ trong Rust
  • Node.js nhận dữ liệu đã xử lý dưới dạng luồng tiêu chuẩn hoặc event emitter, cho phép mã hiện có tiếp tục hoạt động nguyên trạng
  • NAPI-RS giảm thiểu overhead giữa Rust và Node.js, cho phép thông lượng đa luồng thực sự đằng sau giao diện JavaScript
Kết quả là, các ứng dụng viết bằng Solana Stream SDK có thể xử lý thông lượng Shred và Geyser gRPC lớn hơn đáng kể so với các phương pháp chỉ dùng Node.js sử dụng @grpc/grpc-js, đồng thời duy trì đặc tính độ trễ ổn định ngay cả dưới lưu lượng nặng.

Tại sao việc hỗ trợ cả Shreds và Geyser gRPC trong một SDK lại quan trọng

Dữ liệu thời gian thực của Solana có thể được xem ở hai tầng bổ sung:
  • Shreds: Các mảnh có độ trễ cực thấp được phát trực tiếp từ leader, cung cấp tầm nhìn sớm nhất có thể về hoạt động chuỗi
  • Geyser gRPC: Các luồng có cấu trúc về slot, giao dịch và cập nhật tài khoản, cung cấp mô hình dữ liệu sạch và có thể dự đoán
Solana Stream SDK cho phép nhà phát triển bắt đầu với Geyser gRPC để hiểu cấu trúc dữ liệu, sau đó chuyển sang Shreds cho các kịch bản độ trễ siêu thấp — mà không cần thay đổi công cụ hay viết lại pipeline.
Khi Alpenglow tăng tốc sản xuất block và xác nhận, phương pháp hai tầng này trở nên có giá trị hơn.

Bắt đầu: Tài nguyên và môi trường thử nghiệm

Solana Stream SDK hoàn toàn mã nguồn mở, và mã mẫu cho cả Shreds và Geyser gRPC có sẵn trên GitHub.
Để thử nghiệm thực tế, ERPC cung cấp bản dùng thử miễn phí một ngày cho các endpoint ShredStream và Geyser gRPC hiệu suất cao, cho phép nhà phát triển xác nhận hành vi v3 trong điều kiện cấp sản xuất.
ERPC Website chính thức: https://erpc.global/

Tham gia cộng đồng Validators DAO

Câu hỏi, phản hồi và thảo luận về Solana v3, Alpenglow, thiết kế luồng thời gian thực hoặc cải tiến SDK đều được hoan nghênh trong cộng đồng Validators DAO.
Validators DAO Discord chính thức: https://discord.gg/C7ZQSrCkYR
Khi Solana chuyển sang kỷ nguyên Alpenglow, mạng của nó sẽ đạt được mức hiệu suất thời gian thực chưa từng có. Validators DAO và ELSOUL LABO sẽ tiếp tục cung cấp các công cụ mã nguồn mở chất lượng cao để giúp nhà phát triển xây dựng thế hệ ứng dụng thời gian thực tiếp theo trên Solana.
Cảm ơn sự ủng hộ liên tục của các bạn.