Skip to main content
Tối ưu hóa việc sử dụng RPC có thể cải thiện đáng kể hiệu suất, giảm chi phí và nâng cao trải nghiệm người dùng. Hướng dẫn này trình bày các kỹ thuật đã được kiểm chứng để tương tác hiệu quả với Solana RPC.

Bắt đầu nhanh

Transaction Optimization

Tối ưu hóa đơn vị tính toán, phí ưu tiên và việc gửi giao dịch

Data Retrieval

Các mẫu hiệu quả để truy xuất dữ liệu tài khoản và chương trình

Real-time Monitoring

Tối ưu hóa đăng ký WebSocket và dữ liệu truyền phát

Best Practices

Hướng dẫn về hiệu suất và quản lý tài nguyên

Tối ưu hóa giao dịch

Quản lý đơn vị tính toán

1. Mô phỏng để xác định mức sử dụng thực tế:
2. Đặt giới hạn phù hợp và chừa khoảng dự phòng:

Tối ưu hóa phí ưu tiên

1. Lấy ước tính phí động:
2. Áp dụng phí ưu tiên:

Các phương pháp hay nhất khi gửi giao dịch

Tối ưu hóa truy xuất dữ liệu

Phương thức phân trang nâng cao (V2)

Đối với các truy vấn dữ liệu quy mô lớn, hãy sử dụng các phương thức V2 mới có tính năng phân trang dựa trên con trỏ:

⚡ Performance Boost

getProgramAccountsV2 và getTokenAccountsByOwnerV2 mang lại những cải thiện đáng kể về hiệu suất cho các ứng dụng xử lý tập dữ liệu lớn:
  • Giới hạn có thể cấu hình: 1-10.000 tài khoản cho mỗi yêu cầu
  • Phân trang dựa trên con trỏ: Ngăn truy vấn lớn hết thời gian chờ
  • Cập nhật gia tăng: Sử dụng changedSinceSlot để đồng bộ hóa theo thời gian thực
  • Sử dụng bộ nhớ hiệu quả hơn: Truyền phát dữ liệu thay vì tải toàn bộ cùng lúc
Ví dụ: Truy vấn tài khoản chương trình hiệu quả
Cập nhật gia tăng cho các ứng dụng thời gian thực:

Tối ưu hóa truy xuất dữ liệu

Truy vấn tài khoản hiệu quả

Tra cứu số dư token

Lịch sử giao dịch

Để lấy toàn bộ lịch sử của một địa chỉ, hãy sử dụng getTransactionsForAddress — phương thức độc quyền của Helius trả về dữ liệu giao dịch hoàn chỉnh, bao gồm cả hoạt động của tài khoản token liên kết, chỉ trong một lần gọi:

Lịch sử chuyển tài sản

Khi chỉ cần dữ liệu di chuyển của token hoặc SOL — thanh toán, hoạt động danh mục đầu tư, đối soát số dư — hãy sử dụng getTransfersByAddress (độc quyền của Helius, yêu cầu gói Developer trở lên). Phương thức này trả về các đối tượng chuyển tài sản đã được phân tích cú pháp và dễ đọc, trong đó chủ sở hữu, mint, số lượng và số chữ số thập phân đều đã được xác định, nhờ đó bạn có thể bỏ qua hoàn toàn việc phân tích cú pháp giao dịch:
Quy tắc chung: sử dụng getTransactionsForAddress khi cần toàn bộ payload giao dịch hoặc hoạt động không liên quan đến chuyển tài sản, và sử dụng getTransfersByAddress khi cần bản ghi chuyển tài sản rõ ràng cho sổ cái và theo dõi thanh toán.

Giám sát theo thời gian thực

Đăng ký theo dõi tài khoản

Giám sát tài khoản chương trình

Giám sát giao dịch

Các mẫu nâng cao

Logic thử lại thông minh

Xử lý tiết kiệm bộ nhớ

Nhóm kết nối

Giám sát hiệu suất

Theo dõi việc sử dụng RPC

Các phương pháp hay nhất

Mức cam kết

  • Dùng cho: Đăng ký WebSocket, cập nhật theo thời gian thực
  • Độ trễ: ~400ms
  • Độ tin cậy: Phù hợp với hầu hết ứng dụng

Quản lý tài nguyên

Xử lý lỗi

Những lỗi thường gặp cần tránh

Tránh những lỗi thường gặp sau:
  • Thăm dò định kỳ thay vì sử dụng đăng ký WebSocket
  • Truy xuất toàn bộ dữ liệu tài khoản khi chỉ cần một phần dữ liệu
  • Không sử dụng thao tác theo lô cho nhiều truy vấn
  • Bỏ qua giới hạn tốc độ và không triển khai logic thử lại phù hợp
  • Sử dụng mức cam kết finalized khi confirmed đã đủ
  • Không đóng các đăng ký, dẫn đến rò rỉ bộ nhớ

Các phương thức liên quan

Các kỹ thuật tối ưu hóa trong hướng dẫn này tham chiếu đến những phương thức WebSocket và RPC sau:

getTransactionsForAddress

Toàn bộ lịch sử giao dịch, hỗ trợ lọc, sắp xếp và tài khoản token (độc quyền của Helius)

getTransfersByAddress

Lịch sử chuyển token và SOL đã được phân tích cú pháp để phục vụ thanh toán và đối soát (độc quyền của Helius)

getTransaction

Truy xuất toàn bộ chi tiết giao dịch theo chữ ký

getProgramAccounts

Truy xuất tất cả tài khoản thuộc sở hữu của một chương trình

getTokenAccountsByOwner

Lấy các tài khoản token của một ví

getMultipleAccountsInfo

Truy xuất hàng loạt thông tin chi tiết của nhiều tài khoản

getAccountInfo

Lấy thông tin về một tài khoản

accountSubscribe

Đăng ký nhận thay đổi của tài khoản qua WebSocket

programSubscribe

Đăng ký nhận thay đổi của tài khoản chương trình qua WebSocket

logsSubscribe

Đăng ký nhận nhật ký giao dịch qua WebSocket

Tóm tắt

Bằng cách triển khai các kỹ thuật tối ưu hóa này, bạn có thể đạt được:
  • Giảm 60-90% số lượng lệnh gọi API
  • Giảm đáng kể độ trễ cho các thao tác thời gian thực
  • Giảm mức sử dụng băng thông thông qua các truy vấn có mục tiêu
  • Khả năng phục hồi sau lỗi tốt hơn nhờ logic thử lại thông minh
  • Giảm chi phí vận hành nhờ sử dụng tài nguyên hiệu quả

Next Steps

Bạn đã sẵn sàng triển khai các biện pháp tối ưu hóa này chưa? Hãy xem Hướng dẫn tối ưu hóa giao dịch để tìm hiểu các phương pháp hay nhất dành riêng cho giao dịch.