preprocessedSubscribe truyền trực tiếp các giao dịch đã ký trước khi chúng đạt mức cam kết processed. Các giao dịch này được giải mã từ các shred khi chúng đến trình xác thực mà không yêu cầu bạn phải có hạ tầng ghép shred.
Hướng dẫn này xây dựng một trình giám sát để theo dõi chương trình giao dịch trước khi thực thi, loại bỏ dữ liệu trùng lặp trong luồng, duy trì dưới giới hạn backpressure của máy chủ và đối soát với dữ liệu đã xử lý trước khi hành động.
Giới hạn phạm vi đăng ký vào mục tiêu
Không có luồng không lọc:accountInclude và accountRequired phải chỉ định tổng cộng ít nhất một tài khoản. Đối với trình giám sát giao dịch, hãy bao gồm chương trình mà bạn giao dịch với và loại trừ dữ liệu nhiễu mà nếu không bạn vẫn phải trả phí:
accountRequired.
Giải mã các frame và loại bỏ trùng lặp theo chữ ký
Thông báo đến dưới dạng frame nhị phân: tiền tố 73 byte, sau đó là giao dịch được tuần tự hóa bằng bincode. Chữ ký nằm trong tiền tố, vì vậy bạn có thể loại bỏ trùng lặp mà không cần giải mã phần nội dung. Luồng tổng hợp nhiều nguồn trước khi thực thi và cùng một giao dịch có thể xuất hiện nhiều lần:monitor.js
Duy trì vòng lặp nhận nhanh hơn luồng
Helius không lưu vào bộ đệm vô thời hạn cho các trình tiêu thụ chậm: nếu có hơn 4.000 thông báo tồn đọng ở phía máy chủ, kết nối sẽ bị đóng. Đó là lý do trình xử lý ở trên chỉ đọc tiền tố 73 byte rồi đưa vào hàng đợi. Logic giải tuần tự hóa và chiến lược chạy trong một vòng lặp riêng:Đối soát với dữ liệu đã xử lý
Một giao dịch được tiền xử lý cho biết người gửi đã cố gắng thực hiện điều gì, chứ không phải điều gì thực sự đã xảy ra. Giao dịch này không chứa trạng thái thực thi, thay đổi số dư hoặc nhật ký và có thể thất bại, bị loại bỏ hoặc được đưa vào một fork khác. Việc phân phối được thực hiện theo khả năng tốt nhất, không có tính năng phát lại lịch sử, vì vậy:- Đối soát với
transactionSubscribeở mức cam kếtprocessedhoặcconfirmedtrước khi chiến lược của bạn ghi nhận bất kỳ điều gì là dữ kiện. - Khi bị ngắt kết nối, hãy đăng ký lại ngay lập tức và chấp nhận khoảng trống dữ liệu vì không có tính năng phát lại để bổ sung dữ liệu còn thiếu.
- Nếu cần trạng thái tài khoản theo thời gian thực thay vì ý định giao dịch, dữ liệu đó chỉ tồn tại sau khi thực thi: hãy sử dụng LaserStream gRPC ở mức cam kết
processed.
Hướng dẫn liên quan
preprocessedSubscribe reference
Bố cục payload đầy đủ, quy tắc lọc, backpressure và giá
Trade on Preconfirmations
Tín hiệu giao dịch sớm nhất mà Helius cung cấp, trực tiếp từ bộ lập lịch