getProgramAccountsV2
getProgramAccountsV2 là phiên bản nâng cao của getProgramAccounts, hỗ trợ phân trang dựa trên con trỏ và cập nhật changedSinceSlot để truy vấn các tập hợp tài khoản Solana lớn.
Tổng quan
getProgramAccountsV2 là phiên bản nâng cao của phương thức getProgramAccounts tiêu chuẩn, được thiết kế cho các ứng dụng cần truy vấn hiệu quả những tập hợp lớn gồm các tài khoản thuộc sở hữu của các chương trình Solana cụ thể. Phương thức này bổ sung khả năng phân trang dựa trên con trỏ và cập nhật tăng dần.
- Phân trang dựa trên con trỏ: Định cấu hình giới hạn từ 1 đến 10.000 tài khoản cho mỗi yêu cầu
- Cập nhật tăng dần: Sử dụng
changedSinceSlotđể chỉ truy xuất các tài khoản được sửa đổi gần đây - Hiệu suất tốt hơn: Ngăn lỗi hết thời gian chờ và giảm mức sử dụng bộ nhớ đối với các tập dữ liệu lớn
- Khả năng tương thích ngược: Hỗ trợ tất cả tham số
getProgramAccountshiện có withContexttùy chọn:truethêmslotvàapiVersiontrongresult.context; nếu bỏ qua hoặc đặt làfalsethì các trường này sẽ không được đưa vào
Lợi ích chính
Scalable Queries
Real-time Sync
changedSinceSlot để cập nhật tăng dần và đồng bộ hóa dữ liệu theo thời gian thựcPrevent Timeouts
Memory Efficient
Các phương pháp hay nhất về phân trang
Mẫu phân trang cơ bản
Cập nhật tăng dần
Mẹo cải thiện hiệu suất
- Bắt đầu với giới hạn nhỏ hơn (1000) rồi tăng lên dựa trên hiệu suất mạng
- Sử dụng kiểu mã hóa phù hợp:
jsonParsedđể thuận tiện,base64để tối ưu hiệu suất - Áp dụng bộ lọc để giảm kích thước tập dữ liệu trước khi phân trang
- Lưu
paginationKeyđể tiếp tục truy vấn nếu bị gián đoạn - Theo dõi thời gian phản hồi và điều chỉnh giới hạn cho phù hợp
withContext (tùy chọn)
Giá trị Boolean trong đối tượng cấu hình chương trình (params[1]). Chỉ cấu trúc của result thay đổi, còn bộ lọc, giới hạn và cách phân trang không thay đổi.
Di chuyển từ getProgramAccounts
Việc di chuyển từ phương thức ban đầu rất đơn giản — chỉ cần thay thế tên phương thức và thêm các tham số phân trang:Các phương thức liên quan
getProgramAccounts
getTokenAccountsByOwnerV2
Tham số yêu cầu
confirmedfinalizedprocessed
true, trả về result.context (siêu dữ liệu ảnh chụp nhanh: slot, apiVersion) và lồng
accounts cùng paginationKey trong result.value. Khi là false hoặc bị bỏ qua,
các trường đó xuất hiện trực tiếp trên result (ví dụ: result.accounts). Áp dụng cùng bộ lọc và giới hạn.jsonParsedbase58base64base64+zstd
Ủy quyền
Khóa API Helius của bạn. Bạn có thể nhận khóa miễn phí trong bảng điều khiển.
Nội dung
Phiên bản giao thức JSON-RPC.
2.0 "2.0"
Mã định danh duy nhất cho yêu cầu.
"1"
Tên của phương thức RPC cần gọi.
getProgramAccountsV2 "getProgramAccountsV2"
Các tham số cho phương thức phân trang nâng cao.
Khóa công khai (địa chỉ) của chương trình Solana cần truy vấn tài khoản, dưới dạng chuỗi được mã hóa base-58.
"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
Phản hồi
Đã truy xuất thành công các tài khoản chương trình được phân trang.
Phiên bản giao thức JSON-RPC.
2.0 "2.0"
Mã định danh khớp với yêu cầu.
"1"
Các tài khoản chương trình đã phân trang. Các trường tương tự xuất hiện trong result khi withContext là false hoặc bị bỏ qua, hoặc trong result.value khi withContext là true.
- không có withContext
- có withContext