MỚI: Helius mua lại Light Protocol
Bài viết khám phá shred Solana và LaserStream, giải pháp truyền phát dữ liệu hàng đầu
Blog/Phát triển

Chiến thắng cuộc đua từng mili giây: Shred, LaserStream và lợi thế trên Solana

Developer Experience Engineer0xIchigo trên X0xIchigo trên LinkedIn0xIchigo trên GitHub
Đọc trong 13 phút

Bạn sẽ làm gì nếu có một cỗ máy thời gian luôn đi trước tương lai 10 mili giây? Bạn sẽ thực hiện những giao dịch nào? Theo dõi những tài khoản nào? Bạn sẽ kiếm thêm được bao nhiêu tiền? 

LaserStream là dịch vụ truyền phát gRPC thế hệ mới của Helius, luôn vượt trội hơn các dịch vụ truyền phát dữ liệu khác ở mọi khu vực trên thế giới mà không khiến bạn phải duy trì các node chuyên dụng. 

Truyền phát dữ liệu nhanh nhất có thể là yếu tố thiết yếu để phát hiện các sự kiện on-chain (ví dụ: swap, thanh lý, cập nhật giá) và gửi những giao dịch phản ứng với các sự kiện đó. Với các bàn RFQ, bot thanh lý và giao dịch tần suất cao, chênh lệch vài mili giây chính là khác biệt giữa chiến thắng và bỏ lỡ cơ hội.

Hiệu năng hàng đầu của LaserStream cho các hoạt động nhạy cảm với độ trễ phần lớn đến từ việc nền tảng này được xây dựng trên các shred có độ trễ thấp. Cụ thể, LaserStream nhận dữ liệu khối được truyền đi ngay khi dữ liệu xuất hiện, giúp người dùng quan sát các cập nhật trạng thái Solana sớm hơn. Với pipeline phân tán toàn cầu, khả năng phát lại tự động, chuyển đổi dự phòng tự động và các SDK máy khách, LaserStream chắc chắn là cách dễ dàng và nhanh nhất để truyền phát dữ liệu thời gian thực trên Solana. Những lợi thế này khiến việc tích hợp LaserStream trở nên thiết yếu đối với sàn giao dịch, ứng dụng giao dịch, bot MEV và bất kỳ ai thực sự chú trọng đến các hoạt động nhạy cảm với độ trễ.

Bài viết này khám phá shred—đơn vị nhỏ nhất của khối trên Solana—lý do chúng quan trọng và cách LaserStream sử dụng chúng để vận hành giải pháp truyền phát dữ liệu nhanh nhất có thể. Bài viết được thiết kế để mỗi phần có thể được đọc độc lập. Tuy nhiên, những độc giả chưa quen với shred và việc truyền phát dữ liệu trên Solana sẽ hiểu rõ hơn nếu đọc tuần tự từng phần.

Shred là gì?

Shred là đơn vị nền tảng giúp Solana truyền dữ liệu với hiệu năng cao, mang đến quyền truy cập sớm vào các thay đổi trạng thái on-chain.

Solana được thiết kế để đạt tốc độ và thông lượng tối đa. Để làm được điều này, mạng không thể truyền các khối dưới dạng một đơn vị lớn duy nhất. Thay vào đó, các khối được chia thành những gói nhỏ hơn gọi là shred—đơn vị nguyên tử để truyền dữ liệu trong Solana. 

Các shred này đại diện cho những phần dữ liệu giao dịch trước khi chúng được tập hợp thành một khối. Mỗi shred có kích thước khoảng 1,2 KB, được tối ưu để vừa với Đơn vị Truyền Tối đa (MTU) của các gói mạng tiêu chuẩn, qua đó bảo đảm phân phối cực nhanh mà không bị phân mảnh. 

Có hai loại shred:

Shred dữ liệu

Shred dữ liệu đóng gói dữ liệu giao dịch cốt lõi từ một khối và chia dữ liệu đó thành các phần có kích thước cố định. Chúng bao gồm các lô entry đã được tuần tự hóa, tức những nhóm giao dịch có số lượng đặt ở đầu để xử lý hiệu quả.

Shred mã hóa

Shred mã hóa tạo khả năng dự phòng bằng mã xóa Reed-Solomon, một kỹ thuật sửa lỗi chuyển tiếp tạo ra dữ liệu chẵn lẻ. Nhờ đó, các shred bị thiếu hoặc hỏng có thể được tái tạo. Shred mã hóa được tổ chức thành các tập Sửa lỗi Chuyển tiếp (FEC) cùng với shred dữ liệu, thường theo tỷ lệ cân bằng (ví dụ: 32 shred dữ liệu và 32 shred mã hóa) để chịu được mức mất gói lên đến 50%. Leader có thể điều chỉnh tỷ lệ này theo điều kiện mạng để duy trì độ tin cậy cao.

Shred được truyền trên Solana như thế nào?

Quá trình bắt đầu khi leader (tức validator hiện chịu trách nhiệm tạo khối) gom và tuần tự hóa các giao dịch thành entry. Sau đó, các entry này được chia nhỏ, hay shredded, thành những phân đoạn nhỏ hơn gọi là shred. Tất cả shred đều được leader ký bằng hệ thống cũ (tức ký riêng từng shred) hoặc cơ chế dựa trên Merkle (tức ký Merkle root của toàn bộ tập FEC), theo định nghĩa trong đặc tả shred của Solana. Điều này bảo đảm tính xác thực và toàn vẹn dữ liệu. 

Shred được gửi đến các validator khác bằng Turbine, hệ thống truyền nhiều lớp dựa trên cơ chế fanout của Solana. Trong Turbine, leader truyền shred đến một node gốc, node này phân phối chúng đến các lớp validator tiếp theo theo cấu trúc dạng cây. Mỗi lớp chuyển tiếp đến lớp kế tiếp với fanout 200 node trên mỗi lớp, thường trải qua 2 đến 3 hop tùy theo số validator đang hoạt động. Cấu trúc cây này giảm thiểu băng thông trong khi vẫn phân phối giao dịch trên toàn mạng chỉ trong vài mili giây.

Cơ chế xáo trộn theo trọng số stake ưu tiên phân phối đến các validator có lượng stake lớn hơn. Trước tiên, Turbine sắp xếp validator theo lượng stake mà họ nắm giữ (tức trọng số stake). Các validator có stake cao hơn được xếp sớm hơn trong danh sách này và sau khi xáo trộn theo cách xác định, chúng thường nằm ở các lớp đầu của cây, gần leader hơn. Vì vậy, ít hop hơn đồng nghĩa với độ trễ thấp hơn. Do đó, validator có nhiều stake hơn sẽ nhận shred sớm hơn.   

Lưu ý: Trong tương lai, Turbine sẽ được thay thế bằng Rotor sau khi Alpenglow được triển khai. Ngay cả với những thay đổi này, lượng stake của validator vẫn sẽ ảnh hưởng đến các peer mà validator truyền dữ liệu tới.

Shred được tái hợp thành khối như thế nào?

Sau khi một validator nhận được shred, quá trình tái hợp bắt đầu bằng việc xác minh chữ ký để kiểm tra tính xác thực và sử dụng mã xóa Reed-Solomon nhằm tái tạo mọi shred dữ liệu bị thiếu hoặc hỏng từ các shred mã hóa hiện có trong tập FEC. 

Sau đó, các shred dữ liệu đã tái tạo được deshred. Tức là payload của chúng được nối theo đúng thứ tự bằng chỉ mục shred để khôi phục các lô entry đã tuần tự hóa. 

Tiếp theo, các lô này được giải tuần tự hóa thành từng giao dịch và entry riêng lẻ để có thể tập hợp thành một khối hoàn chỉnh.

Vì sao shred quan trọng? 

Shred quan trọng vì chúng rút ngắn khoảng thời gian phản ứng trong một mạng nơi thời điểm là yếu tố tối quan trọng. 

Shred đóng vai trò thiết yếu trong việc khai thác lợi thế hiệu năng cao của Solana, đặc biệt với các ứng dụng nhạy cảm với độ trễ như giao dịch tần suất cao, bàn yêu cầu báo giá (RFQ), công cụ thanh lý và cập nhật oracle. 

Shred cung cấp khả năng quan sát sớm nhất đối với các sự kiện on-chain đang hình thành. Điều này khác với hầu hết blockchain khác, nơi ứng dụng phải chờ đến khi hoàn tất quá trình tạo và xác nhận khối, có thể gây thêm độ trễ từ hàng trăm mili giây đến vài giây. 

Làm việc với shred thô có thể khá phức tạp vì bên nhận phải xác minh tính xác thực, tái tạo mọi shred dữ liệu bị thiếu, deshred và giải tuần tự hóa chúng thành giao dịch cùng entry, rồi cuối cùng phân tích để tìm các sự kiện có thể hành động như swap hoặc thay đổi tài khoản.

Nếu muốn có lợi thế về độ trễ của shred mà không phải tự xây dựng pipeline đó, Preprocessed Transactions sẽ deshred giúp bạn và truyền phát các giao dịch đã ký qua WebSocket sớm hơn tối đa 8 ms so với mức cam kết processed.

Tuy nhiên, khả năng “xem trước” các giao dịch đang chờ xử lý và cập nhật tài khoản này mang lại lợi thế vượt trội, trực tiếp giúp tăng tỷ lệ thành công trong các tình huống cạnh tranh.

Ví dụ, một bot thanh lý theo dõi tỷ lệ tài sản thế chấp có thể dùng shred để phát hiện và xử lý một vị thế dễ tổn thương sớm hơn nhiều so với đối thủ sử dụng các phương thức chậm hơn như WebSockets, qua đó giành được cơ hội thanh lý. 

Tương tự, các nhà giao dịch chênh lệch giá phát hiện điểm kém hiệu quả của thị trường và các trình tổng hợp DEX có độ trễ thấp đang báo giá đều có thể hưởng lợi từ ưu thế độ trễ này, bởi từng mili giây quyết định khả năng sinh lời.

Thứ bậc độ trễ của shred

Cần lưu ý rằng độ trễ của shred không đồng nhất giữa mọi nguồn.

Validator có lượng stake lớn

Các validator có lượng stake đáng kể nhận mức ưu tiên cao nhất trong cây truyền của Turbine. Chúng thường tiếp nhận shred trực tiếp từ leader hoặc ở các lớp fanout đầu tiên, đồng thời hưởng lợi từ Chất lượng Dịch vụ theo Trọng số Stake (SWQoS).

Validator có stake

Các validator có lượng stake vừa phải gặp độ trễ trung bình do mức ưu tiên thấp hơn trong hàng đợi truyền, bởi shred phải đi qua thêm nhiều hop. Việc tham gia đồng thuận bảo đảm khả năng truy cập đáng tin cậy, dù độ trễ có thể thay đổi đôi chút tùy theo vị trí mạng và phân bổ stake hiện tại. So với validator có lượng stake lớn, validator có ít stake không lý tưởng cho các hoạt động siêu cạnh tranh và nhạy cảm với thời gian.

Validator không có stake

Các validator không có stake không được hưởng lợi thế chất lượng dịch vụ của node có stake và không phù hợp để truyền phát dữ liệu Solana theo thời gian thực cho các hoạt động đòi hỏi độ trễ cực thấp. Chúng là những validator cuối cùng nhận shred trong cơ chế fanout của Turbine.

Vị trí càng sớm trong cây, bạn càng có nhiều thời gian phản ứng trước khi phần còn lại của mạng bắt kịp. 

Biến động trên toàn cầu 

Điều quan trọng là Turbine không phụ thuộc vào vị trí. Quá trình truyền trên toàn cầu có thể khuếch đại biến động độ trễ, vì khoảng cách vật lý và điều kiện mạng tạo ra độ trễ ngoài các hop của Turbine. 

Ví dụ, shred di chuyển giữa các khu vực (chẳng hạn từ một leader tại Hoa Kỳ đến các validator ở châu Á–Thái Bình Dương) có thể bị trễ do định tuyến xuyên lục địa, truyền lại gói hoặc thậm chí sự cố peering—ngay cả với validator có lượng stake lớn ở các lớp đầu của Turbine.

Sự phân tán địa lý này tạo ra cơ hội tối ưu hóa. Một validator có lượng stake lớn có thể hoạt động xuất sắc tại địa phương nhưng vẫn chậm trên phạm vi toàn cầu nếu không được đặt ở vị trí tối ưu. Có thể giảm thiểu vấn đề này bằng một mạng shred phân tán, tổng hợp các shred nhanh nhất từ nhiều nguồn, từ đó giảm phương sai và đạt tốc độ tiếp nhận ổn định. Trong các tình huống toàn cầu, một hệ thống như vậy có thể liên tục vượt qua validator có lượng stake hàng đầu.

Truy cập shred một cách đáng tin cậy từ các nguồn đã tối ưu là điều thiết yếu để duy trì lợi thế cạnh tranh cho những nhà phát triển xây dựng hệ thống đòi hỏi độ trễ cực thấp. Tuy nhiên, việc này cần hạ tầng mạnh mẽ để xử lý hiệu quả quá trình khôi phục, xác minh và phân phối toàn cầu. Ngoài ra, phần lớn công cụ truyền phát dữ liệu thời gian thực phổ biến của Solana hiện chưa tận dụng shred.

Truyền phát dữ liệu trên Solana

Trên Solana, các nhà phát triển muốn truyền phát dữ liệu thời gian thực có một số lựa chọn, mỗi lựa chọn đều có sự đánh đổi riêng về độ trễ, độ tin cậy và độ phức tạp:

Webhooks

Webhooks cho phép cập nhật theo sự kiện, đẩy dữ liệu đến ứng dụng khi một tài khoản hoặc program cụ thể thay đổi. Webhooks dễ tích hợp bằng lập trình và thậm chí có thể được thiết lập trực tiếp trong Bảng điều khiển Helius mà không cần viết mã. Nhà phát triển có thể truyền phát dữ liệu dễ đọc đã được phân tích cho các loại giao dịch cụ thể, payload giao dịch thô và thậm chí truyền trực tiếp những cập nhật này đến một kênh Discord cụ thể dưới dạng thông báo đã định dạng.

Mặc dù webhook có độ tin cậy cao và được nhiều công ty nổi bật trên Solana sử dụng, chúng gửi thông báo sau khi giao dịch được xác nhận. Điều này có nghĩa webhook có thể chậm hơn dữ liệu cấp shred hàng trăm mili giây, khiến chúng quá chậm đối với các hoạt động đòi hỏi độ trễ cực thấp như giao dịch tần suất cao hoặc thanh lý.

WebSockets tiêu chuẩn

JSON RPC API của Solana hỗ trợ các gói đăng ký WebSocket, chẳng hạn như accountSubscribe cho thay đổi tài khoản, logSubscribe cho nhật ký giao dịch và programSubscribe cho sự kiện program. WebSockets duy trì kết nối liên tục giữa máy khách và nhà cung cấp RPC, truyền phát cập nhật ngay khi giao dịch và thay đổi tài khoản được xử lý. WebSockets hoạt động hai chiều và phù hợp để theo dõi các tài khoản hoặc sự kiện cụ thể theo thời gian thực, đồng thời giảm chi phí polling.

Tuy nhiên, tương tự webhook, WebSockets phân phối dữ liệu sau khi tái hợp shred (tức ở các mức cam kết processed, confirmed hoặc finalized), làm tăng độ trễ từ 400 ms đến 30 giây tùy theo mức cam kết. 

WebSockets cũng được xem là loại kết nối dễ gián đoạn, nghĩa là kết nối có thể bị ngắt vì nhiều vấn đề khác nhau và cần logic thử lại tùy chỉnh. Việc ngắt kết nối có thể gây mất dữ liệu vĩnh viễn nếu không bổ sung polling, làm suy giảm độ tin cậy theo thời gian thực. 

Enhanced WebSockets

Enhanced WebSockets là bước cải tiến đáng kể so với WebSockets tiêu chuẩn, cung cấp nhiều tối ưu hóa hiệu năng và khả năng lọc nâng cao. Cụ thể, khả năng phân tích sự kiện tốt hơn và giảm nhiễu giúp giải pháp này thân thiện hơn với nhà phát triển khi dùng trong môi trường production.

Enhanced WebSockets có thể giảm độ trễ so với WebSockets tiêu chuẩn và rất phù hợp cho các ứng dụng truyền phát nói chung. Ví dụ, có sự khác biệt hiệu năng rõ rệt khi truyền phát dữ liệu Pump AMM bằng Enhanced WebSockets so với cả WebSockets tiêu chuẩn lẫn webhook. 

Tuy nhiên, về cơ bản Enhanced WebSockets vẫn phân phối dữ liệu sau khi tái hợp shred. Một lần nữa, điều này hạn chế tính hữu ích của chúng đối với những ứng dụng mà mỗi mili giây đều quan trọng. Hơn nữa, dù đã được cải tiến, chúng vẫn thiếu khả năng phát lại hoặc chuyển đổi dự phòng tự động, nên cần xử lý khoảng trống theo cách thủ công. 

Yellowstone gRPC

Yellowstone gRPC là giao thức truyền phát từ validator đến máy khách có độ trễ thấp, có thể cung cấp quyền truy cập dữ liệu ở cấp shred. Điều này giúp nó nhanh hơn đáng kể so với WebSockets và webhook vì có thể phân phối cập nhật nhanh hơn ở mức cam kết tương ứng. 

Yellowstone cung cấp khả năng truyền phát hai chiều với việc tạo và hủy đăng ký tức thì, cùng các tính năng lọc nâng cao để kiểm soát chính xác dữ liệu nhận được khi có cập nhật về giao dịch, tài khoản hoặc program cụ thể.

Yellowstone lý tưởng cho người dùng muốn không bị giới hạn tốc độ, không dùng credit và được bảo đảm phần cứng riêng biệt cho cấu hình node tùy chỉnh. Tuy nhiên, có một số đánh đổi lớn:

1. Gánh nặng hạ tầng

Bạn cần có node chuyên dụng riêng để khai thác tối đa tiềm năng của Yellowstone gRPC. Điều này đòi hỏi quyền truy cập phần cứng, cấu hình phù hợp, quản lý liên tục phần cứng đó và chuyên môn chuyên sâu để gỡ lỗi mọi vấn đề liên quan đến phần cứng.

2. Biến động độ trễ

Việc Yellowstone gRPC có thể phân phối dữ liệu ở cấp shred không có nghĩa là nó sẽ luôn làm vậy theo cách tối ưu nhất. Độ trễ có thể thay đổi tùy theo nhà cung cấp và việc node chuyên dụng của bạn có được ghép nối với các nguồn tối ưu cho shred (tức validator có lượng stake lớn) hay không. Ghép nối với validator có stake vừa hoặc thấp đồng nghĩa với việc chúng sẽ không liên tục nằm trong lớp Turbine đầu tiên, nên bạn vẫn nhận nhiều shred ở phía downstream.

3. Rủi ro sự cố

Phụ thuộc vào một node chuyên dụng duy nhất sẽ tạo ra điểm lỗi đơn, và vấn đề càng nghiêm trọng hơn vì Yellowstone gRPC không có khả năng phát lại tích hợp sẵn.

4. Nhu cầu tài nguyên

Khiến một node chuyên dụng quá tải bằng các lệnh gọi RPC nặng trong lúc truyền phát dữ liệu qua Yellowstone có thể làm suy giảm hiệu năng. 

Trong thời gian dài và với nhiều đội ngũ, Yellowstone gRPC là dịch vụ truyền phát được ưu tiên cho dữ liệu thời gian thực trên Solana. Dịch vụ này nhanh và phù hợp với người dùng nâng cao, nhưng khó vận hành để đạt phạm vi phủ sóng toàn cầu, nhất quán và có độ trễ thấp nếu không sở hữu một đội node chuyên dụng trên khắp thế giới.

LaserStream

LaserStream kết hợp tốc độ tiếp nhận cấp shred với độ tin cậy và phạm vi tiếp cận của một dịch vụ phân tán toàn cầu mà không phát sinh chi phí hay gánh nặng vận hành nhiều node chuyên dụng. 

LaserStream đạt được điều này thông qua:

  • Tiếp nhận từ nhiều nguồn: LaserStream tiếp nhận các shred có độ trễ thấp nhất, liên tục vượt qua đối thủ trên toàn thế giới.
  • Phạm vi phủ sóng toàn cầu: LaserStream hiện diện tại nhiều khu vực trên toàn thế giới, cho phép nhà phát triển sử dụng endpoint gần hạ tầng của mình nhất. Mỗi khu vực vận hành nhiều máy chủ để dự phòng, kèm khả năng chuyển đổi dự phòng tự động.
  • Không có khoảng trống: Tính năng phát lại lịch sử của LaserStream cho phép nhà phát triển phát lại dữ liệu blockchain gần đây trong tối đa 48 giờ trước. Tính năng này hữu ích để xử lý gián đoạn kết nối và bảo đảm tính liên tục của dữ liệu. 
  • Trải nghiệm thân thiện với nhà phát triển: LaserStream có thể thay thế trực tiếp Yellowstone gRPC—không cần di chuyển, không có cú pháp mới, không gây phiền toái.

Tóm lại, LaserStream là phiên bản cải tiến có khả năng mở rộng, độ trễ thấp và khả năng chịu lỗi cao hơn Yellowstone gRPC cùng WebSockets. Dịch vụ này liên tục cung cấp các sự kiện on-chain ngay khi chúng xảy ra trên mạng mà không yêu cầu stake trị giá hàng triệu đô la hay phải tự vận hành hạ tầng hiệu năng cao. 

LaserStream là cách dễ dàng nhất để khai thác sức mạnh của shred cho việc truyền phát dữ liệu có độ trễ siêu thấp trên Solana.

Máy khách và hiệu năng

LaserStream cung cấp các máy khách dành cho Go, Rust và JavaScript/TypeScript. Các máy khách này xử lý việc phát lại tự động khi mất kết nối bằng cách liên tục theo dõi slot đã được truyền phát. Nếu kết nối bị ngắt vì bất kỳ lý do gì, máy khách sẽ tự động kết nối lại và tiếp tục truyền phát từ slot được xử lý gần nhất.

Máy khách JavaScript của LaserStream đặc biệt đáng chú ý vì sử dụng các binding Rust native. Nhờ đó, máy khách đạt thông lượng 1,3 GB/giây. Đây là mức cải thiện gấp 40 lần so với máy khách JavaScript Yellowstone gRPC hiện tại, vốn đạt tối đa 30 MB/giây. 

Khi Solana tiếp tục mở rộng, máy khách JavaScript Yellowstone gRPC sẽ khó theo kịp. Dư địa hiệu năng của máy khách JavaScript LaserStream bảo đảm ứng dụng của bạn có thể mở rộng an toàn cùng mạng khi nhu cầu tăng lên. 

Thành công trong thực tế

DFlow, một trình tổng hợp DEX có độ trễ thấp, gần đây đã tích hợp LaserStream để cung cấp dữ liệu cho công cụ định giá. Quyết định tích hợp của họ dựa trên khả năng mở rộng toàn cầu mà không phải lo về node chuyên dụng, đồng thời tiết kiệm nguồn lực kỹ thuật để tập trung vào logic định tuyến và nghiệp vụ. 

Kể từ khi tích hợp, DFlow được cho là đã tiết kiệm hơn tám giờ chi phí kỹ thuật định kỳ, duy trì 100% thời gian hoạt động với luồng dữ liệu không gián đoạn và cải thiện tốc độ báo giá nhờ xác nhận giao dịch nhanh hơn. 

Ưu tiên hàng đầu của chúng tôi là sự an toàn của người dùng. Để mang đến cho nhà giao dịch mức giá tốt nhất và chênh lệch giá mua bán thấp nhất, chúng tôi dựa vào LaserStream để cung cấp cho công cụ định giá dữ liệu on-chain mới nhất và nhanh nhất

Nitesh Nath
Nitesh Nath
CEO, DFlow

Truyền phát nhanh hơn, ngay hôm nay.

Mili giây không chỉ là độ trễ—đó còn là cơ hội. Với LaserStream, bạn không chỉ theo kịp mạng. Bạn luôn đi trước mạng. 

Muốn có dữ liệu dưới một giây cho giao dịch, thanh lý hoặc oracle? Hãy dùng LaserStream và truy cập dữ liệu Solana nhanh nhất hiện có. 

Ngoài ra, nếu là người dùng chuyên sâu và quan tâm đến việc phân phối shred thô, hãy liên hệ với chúng tôi tại đây bằng cách điền vào biểu mẫu sau.

Tài nguyên khác

Đăng ký nhận tin từ Helius

Luôn cập nhật những thông tin mới nhất về phát triển Solana và nhận thông báo khi chúng tôi đăng bài

Hình ảnh phóng to