Tổng quan
Blockchain Solana lưu trữ dữ liệu trong một sổ cái tuần tự, chỉ cho phép nối thêm. Cách này rất phù hợp để bảo đảm tính toàn vẹn của dữ liệu và thông lượng giao dịch, nhưng đi kèm một hạn chế đáng kể: việc truy vấn dữ liệu lịch sử trở nên rất kém hiệu quả và chậm đến mức không khả thi.
Các thao tác phức tạp thường bao gồm lọc, tổng hợp hoặc kết hợp dữ liệu từ nhiều nguồn. Trong những trường hợp này, việc truy vấn trực tiếp Solana không khả thi đối với hầu hết ứng dụng thực tế.
Để giải quyết vấn đề này, hầu hết doanh nghiệp xây dựng các chỉ mục riêng cho dữ liệu lịch sử của Solana.
Hướng dẫn này trình bày toàn bộ vòng đời: nạp dữ liệu lịch sử bằng getTransactionsForAddress và các phương thức RPC lưu trữ khác, chọn cơ sở dữ liệu và duy trì cập nhật chỉ mục bằng luồng dữ liệu thời gian thực.
Khi nào nên sử dụng
Hãy xây dựng chỉ mục khi:
- Sản phẩm của bạn cần các truy vấn được lọc và có tốc độ cao mà lệnh gọi RPC trực tiếp không thể đáp ứng (ví dụ: tài khoản token và số dư của một ví hoặc toàn bộ lịch sử của một cặp giao dịch)
- Bạn cần lọc, tổng hợp hoặc kết hợp dữ liệu trên chuỗi, hoặc kết hợp dữ liệu đó với dữ liệu ngoài chuỗi (giá CEX, KYC, nhãn)
- Bạn đang tính toán các thông tin như PnL, phân tích người nắm giữ hoặc lịch sử bán NFT vốn yêu cầu dữ liệu có thể truy vấn và đã được xử lý trước
- Bạn phục vụ nhiều người dùng và không thể chấp nhận độ trễ của từng yêu cầu khi truy vấn chuỗi
Nếu chỉ cần dữ liệu tiêu chuẩn về ví hoặc tài sản, một API được quản lý có thể đơn giản hơn so với việc vận hành chỉ mục riêng. Xem phần Các lựa chọn bổ sung bên dưới.
Lập chỉ mục dữ liệu Solana nghĩa là gì?
Lập chỉ mục là quá trình truy vấn dữ liệu từ blockchain Solana và lưu dữ liệu đó vào một cơ sở dữ liệu phụ trợ (ví dụ: PostgreSQL, ClickHouse). Sau đó, cơ sở dữ liệu này có thể nhanh chóng phục vụ yêu cầu của khách hàng mà không cần truy vấn trực tiếp blockchain bằng các lệnh gọi RPC Solana.
Một trình lập chỉ mục thường thực hiện bốn việc:
- Nạp dữ liệu lịch sử: dùng các phương thức RPC lưu trữ để truy vấn toàn bộ dữ liệu lịch sử
- Truyền dữ liệu mới: xử lý các khối mới khi được mạng xác nhận
- Phân tích cú pháp và chuyển đổi dữ liệu: trích xuất dữ liệu liên quan từ các khối đã xác nhận (ví dụ: giao dịch, thay đổi trạng thái, v.v.)
- Sắp xếp dữ liệu vào cơ sở dữ liệu: cập nhật chỉ mục bằng dữ liệu mới
Tại sao hầu hết công ty đều xây dựng chỉ mục Solana?
Các công ty xây dựng chỉ mục Solana vì hoạt động kinh doanh của họ phụ thuộc vào khả năng truy cập nhanh theo thời gian thực vào dữ liệu blockchain dành cho mục đích cụ thể mà RPC gốc không cung cấp (ví dụ: lịch sử bán NFT).
Các công ty cũng tận dụng chỉ mục tùy chỉnh để kết hợp dữ liệu ngoài chuỗi (ví dụ: giá trên sàn giao dịch tập trung, thông tin KYC, v.v.) với dữ liệu trên chuỗi.
Ví dụ về ví
Ví dụ: nếu một ví Solana cần nhanh chóng trả về tài khoản token và số dư của người dùng, việc truy vấn trực tiếp Solana bằng getTokenAccountsByOwner và getTokenAccountBalance sẽ quá chậm và có thể khiến sản phẩm không thể sử dụng được. Thay vào đó, ví thường duy trì chỉ mục riêng về địa chỉ, token và số dư tài khoản của khách hàng.
Ví dụ về giao dịch
Tương tự, một công ty giao dịch tiền mã hóa có thể muốn ghi lại mọi hoạt động giao dịch diễn ra trên một cặp giao dịch cụ thể (ví dụ: SOL-USDC) hoặc một thị trường cụ thể để kiểm thử ngược các thuật toán giao dịch của họ.
Việc truy vấn trực tiếp blockchain để lấy dữ liệu này sẽ quá chậm đối với mọi hoạt động phân tích giao dịch thực tế. Thay vào đó, các nhà giao dịch định lượng có thể chọn xây dựng chỉ mục cho thị trường SOL-USDC và cập nhật chỉ mục đó bằng các giao dịch mới nhất thông qua những sản phẩm truyền dữ liệu thời gian thực như LaserStream.
Ví dụ về lọc dữ liệu
Giả sử người dùng muốn lọc giao dịch theo các tiêu chí cụ thể trong ứng dụng frontend của họ (ví dụ: theo loại token, số tiền chuyển, ngày hoặc địa chỉ ví).
Nếu không có trình lập chỉ mục, ứng dụng của bạn sẽ phải quét hàng triệu giao dịch trên hàng trăm nghìn khối và đối chiếu từng giao dịch với các tiêu chí lọc.
Quá trình này quá chậm để mang lại trải nghiệm phù hợp cho người dùng sản phẩm hiện đại.
Ví dụ về PnL
Để tính lợi nhuận và thua lỗ (PnL) của một nhà giao dịch, bạn cần:
- Tìm mọi giao dịch liên kết với ví của họ trong một khoảng thời gian nhất định
- Lọc các giao dịch hoán đổi và gắn nhãn là mua hoặc bán
- Xác định tổng phí người dùng đã trả trong mỗi lần hoán đổi
- Lấy dữ liệu giá lịch sử của từng token tại thời điểm diễn ra mỗi giao dịch
- Tổng hợp PnL của từng giao dịch để tính tổng PnL của nhà giao dịch
Việc tính toán tất cả thông tin này theo thời gian thực là không khả thi và đòi hỏi một giải pháp nhanh hơn, có khả năng mở rộng tốt hơn.
Với chỉ mục, toàn bộ thông tin này đã được xử lý và lưu trữ trong một cơ sở dữ liệu có thể truy vấn. Khi đó, việc tính PnL của nhà giao dịch chỉ cần một lệnh gọi API và kết quả được trả về ngay lập tức.
Hãy xem xét ba phương pháp nạp dữ liệu cho chỉ mục Solana và duy trì cập nhật chỉ mục đó.
Bước 1: Lấy dữ liệu lịch sử
Bước đầu tiên để xây dựng chỉ mục Solana là lấy toàn bộ dữ liệu lịch sử mà bạn quan tâm.
Có ba cách chính để thực hiện việc này:
- getTransactionsForAddress (khuyên dùng)
- getSignaturesForAddress và getTransaction
- getBlock
Phương pháp 1: getTransactionsForAddress (khuyên dùng)
Phương thức RPC getTransactionsForAddress cho phép bạn truy xuất đầy đủ chi tiết giao dịch của một phân đoạn dữ liệu blockchain bất kỳ. Nhờ khả năng lọc mạnh mẽ, bạn sẽ không lãng phí thời gian truy xuất dữ liệu không cần thiết cho chỉ mục. Đồng thời, chức năng tìm kiếm ngược cho phép lấy giao dịch theo thứ tự thời gian.
Các bước sử dụng phương pháp này
- Xác định khoảng thời gian cần lấy dữ liệu và đặt bộ lọc tương ứng
- Đặt
transactionDetails thành full để lấy đầy đủ chi tiết giao dịch
- Cấu hình bộ lọc
tokenAccounts để bao gồm các giao dịch của tài khoản token liên kết nếu cần
- Phân trang qua các kết quả bằng
paginationToken
- Trong mỗi lần lặp, trích xuất dữ liệu cần thiết và lưu vào cơ sở dữ liệu
Lợi ích của việc sử dụng getTransactionsForAddress
Ưu điểm chính của việc sử dụng điểm cuối gTFA là tốc độ và tính đơn giản. Với bộ lọc theo slot và thời gian, khả năng hỗ trợ tài khoản token, tìm kiếm ngược và phân trang, bạn có thể lấy mọi dữ liệu mong muốn từ bất kỳ thời điểm nào trong lịch sử Solana chỉ bằng một lệnh gọi mà không cần vòng lặp phức tạp hoặc logic thử lại. Không giống getSignaturesForAddress, phương thức này cũng có thể bao gồm các giao dịch liên quan đến tài khoản token liên kết thuộc sở hữu của địa chỉ.
Nếu chỉ mục của bạn tập trung cụ thể vào hoạt động dịch chuyển token và SOL gốc (thanh toán, sổ cái, đối soát số dư), getTransfersByAddress trả về các hàng dữ liệu chuyển tiền đã được phân tích cú pháp và sẵn sàng để đối soát thay vì toàn bộ giao dịch, nhờ đó bạn có thể bỏ qua một bước phân tích cú pháp.
Phương pháp 2: getSignaturesForAddress và getTransaction
Trước khi gTFA được phát hành, phương pháp tiêu chuẩn để truy vấn dữ liệu lịch sử là lặp đệ quy qua các chữ ký bằng getSignaturesForAddress (từ mới nhất đến cũ nhất), sau đó gọi getTransaction để trích xuất đầy đủ chi tiết giao dịch.
Các bước sử dụng phương pháp này
Sau đây là các bước cơ bản để sử dụng phương pháp này:
- Gọi
getSignaturesForAddress
- Lưu chữ ký của giao dịch cuối cùng nhận được từ lệnh gọi này
- Trong lần gọi
getSignaturesForAddress tiếp theo, đặt tham số before thành chữ ký này
- Lặp lại quá trình này trong thời gian cần thiết
- Với mỗi chữ ký giao dịch được truy xuất theo cách này, gọi
getTransaction để lấy đầy đủ chi tiết giao dịch
- Chèn dữ liệu liên quan vào cơ sở dữ liệu
Nhược điểm của phương pháp này
Đáng tiếc là để sử dụng phương pháp này, bạn cần:
- Bắt đầu từ giao dịch mới nhất và lần ngược về trước
- Thực hiện thêm một lệnh gọi RPC cho mỗi giao dịch
- Xây dựng hàng đợi an toàn theo luồng để xử lý đồng thời
- Xây dựng logic thử lại và thời gian chờ tăng dần để tránh bỏ sót dữ liệu và bị giới hạn tốc độ
- Không bao gồm các giao dịch liên quan đến tài khoản token liên kết thuộc sở hữu của địa chỉ
Mặc dù phương pháp này hoạt động được, nhưng phức tạp hơn, kém linh hoạt hơn và tiêu tốn nhiều tín dụng hơn đáng kể. Để lấy toàn bộ lịch sử ví, bao gồm cả tài khoản token, hãy dùng getTransactionsForAddress.
Phương pháp 3: Sử dụng getBlock
Phương thức getBlock hiệu quả nhất khi tỷ lệ lớn giao dịch trong các khối mục tiêu có liên quan đến hoạt động phân tích của bạn, chẳng hạn như khi lập chỉ mục giao dịch của các chương trình Solana được sử dụng thường xuyên như Aggregator của DFlow, chương trình Pump.fun hoặc chương trình Token của Solana.
Các bước sử dụng phương pháp này
Quy trình cơ bản để truy vấn dữ liệu lịch sử bằng getBlock bao gồm:
- Chọn một khoảng thời gian để truy vấn
- Chuyển đổi khoảng thời gian này thành các số slot
- Truy xuất tuần tự các khối tương ứng (theo chiều xuôi hoặc ngược)
- Với mỗi khối, lọc các giao dịch liên quan đến chỉ mục
- Lưu thông tin liên quan từ các giao dịch đó vào chỉ mục
Đối với hầu hết trường hợp sử dụng, phương pháp này vốn gây lãng phí vì bạn truy xuất toàn bộ giao dịch trong một khối trong khi thường chỉ có một phần nhỏ liên quan đến hoạt động phân tích.
Chỉ sử dụng phương pháp này khi kiểm tra giao dịch của các chương trình được sử dụng thường xuyên hoặc khi bộ lọc dựa trên địa chỉ không thể thu thập dữ liệu mục tiêu.
Bước 2: Đồng bộ dữ liệu Solana với cơ sở dữ liệu
Sau khi truy xuất dữ liệu lịch sử, bạn cần chuyển đổi và lưu trữ dữ liệu đó một cách hiệu quả trong cơ sở dữ liệu.
Lựa chọn lưu trữ phải phù hợp với trường hợp sử dụng cụ thể của bạn — không có giải pháp chung phù hợp với mọi trường hợp. Cơ sở dữ liệu phù hợp phụ thuộc vào kích thước tập dữ liệu, yêu cầu về độ trễ, mẫu truy vấn và chuyên môn của đội ngũ.
Lựa chọn 1: Cơ sở dữ liệu SQL
Nên lưu trữ dữ liệu Solana trong cơ sở dữ liệu quan hệ như PostgreSQL đối với hầu hết trường hợp sử dụng. SQL linh hoạt, phổ biến và dễ học. Các cơ sở dữ liệu quan hệ hiện đại có thể mở rộng vượt quá 100 triệu hàng, đồng thời vẫn mang lại lợi ích về tuân thủ ACID, phép nối phức tạp và các chỉ mục phụ mạnh mẽ.
Sử dụng SQLite để tạo nguyên mẫu, phát triển cục bộ hoặc khi bạn muốn một cơ sở dữ liệu dạng tệp duy nhất mà không cần cấu hình. Đây là lựa chọn lý tưởng khi tập dữ liệu chỉ có kích thước dưới vài gigabyte.
Sử dụng PostgreSQL cho các ứng dụng sản xuất cần sao chép dữ liệu, truy cập đồng thời từ nhiều máy khách hoặc các tính năng nâng cao như tìm kiếm toàn văn và toán tử JSON.
Đối với hầu hết trình lập chỉ mục Solana cấp sản xuất, PostgreSQL là lựa chọn chúng tôi khuyên dùng.
Ví dụ triển khai:
Trong ví dụ này, chúng tôi sẽ trình bày cách lưu trữ các giao dịch chuyển token trong cơ sở dữ liệu PostgreSQL.
Trước tiên, hãy tạo một bảng:
Sau đó, thêm chỉ mục cho các cột được truy vấn thường xuyên:
Bạn cũng có thể tạo chỉ mục một phần nếu chỉ một tập con dữ liệu được truy vấn thường xuyên.
Sau đây là cách tạo chỉ mục chỉ dành cho các giao dịch chuyển có giá trị cao:
Khi nạp dữ liệu lịch sử, hãy nhớ sử dụng thao tác INSERT hàng loạt và câu lệnh chuẩn bị sẵn để đạt tốc độ ghi tối ưu.
Lựa chọn 2: Cơ sở dữ liệu dạng cột
Cơ sở dữ liệu dạng cột được tối ưu hóa cho truy vấn phân tích, tổng hợp và dữ liệu chuỗi thời gian có khối lượng lớn. Nếu cần lập chỉ mục hàng tỷ giao dịch, cơ sở dữ liệu dạng cột như ClickHouse hoặc Cassandra là lựa chọn tốt nhất.
Sử dụng ClickHouse khi cần truy vấn phân tích theo thời gian thực trên các tập dữ liệu lớn — hệ thống này được tối ưu hóa cho thao tác đọc nhanh, tổng hợp và phân tích chuỗi thời gian.
Sử dụng Cassandra khi cần thông lượng ghi cực cao, khả năng mở rộng theo chiều ngang dễ dàng và khả năng chịu lỗi cao. Điều này khiến Cassandra trở thành lựa chọn lý tưởng để liên tục tiếp nhận khối lượng dữ liệu Solana khổng lồ.
Ví dụ triển khai:
Chúng tôi sẽ trình bày cách lưu trữ các giao dịch chuyển token trong cơ sở dữ liệu ClickHouse.
Để thực hiện việc này, hãy tạo một bảng sử dụng công cụ bảng MergeTree. Công cụ này được thiết kế cho tốc độ tiếp nhận cao nên rất phù hợp để lập chỉ mục.
Sử dụng lệnh sau:
Trong cấu hình này, (token_mint, date) được đặt làm cả khóa chính lẫn khóa sắp xếp. ClickHouse sẽ sắp xếp dữ liệu trên đĩa theo khóa sắp xếp của bạn. Cách này tối ưu cho việc truy vấn một địa chỉ phát hành token duy nhất và thu hẹp phản hồi theo phạm vi ngày.
Sau đây là một truy vấn mẫu:
Chữ ký giao dịch và địa chỉ được lưu trữ bằng định dạng dữ liệu FixedString(N), vốn lưu trữ chính xác N byte. ClickHouse tự động nén dữ liệu, giúp giảm chi phí lưu trữ từ 10 đến 20 lần và cải thiện hiệu suất truy vấn.
Để tối ưu hóa hiệu suất truy vấn, hãy dùng Materialized Views để tính toán trước các phép tổng hợp phổ biến.
Ví dụ: bạn có thể tính toán trước khối lượng chuyển token hằng ngày để dùng cho các biểu đồ liên quan đến khối lượng trên bảng điều khiển.
Lựa chọn 3: Hồ dữ liệu
Hồ dữ liệu rất phù hợp để lưu trữ khối lượng lớn dữ liệu blockchain thô và đã xử lý nhằm phục vụ việc lưu trữ dài hạn và truy vấn phân tích.
Một cách triển khai đơn giản là sử dụng định dạng dữ liệu Parquet cùng Amazon Athena.
Parquet là định dạng tệp dữ liệu hướng cột được thiết kế để lưu trữ và truy xuất dữ liệu hiệu quả.
Amazon Athena là dịch vụ truy vấn tương tác cho phép bạn phân tích dữ liệu được lưu trữ trong Amazon S3 bằng SQL tiêu chuẩn mà không cần thiết lập cơ sở hạ tầng hoặc tải dữ liệu vào một cơ sở dữ liệu riêng.
Chỉ nên sử dụng hồ dữ liệu nếu bạn cần truy vấn khối lượng lớn dữ liệu phi cấu trúc. Đối với phần lớn trường hợp sử dụng, chúng tôi khuyên dùng cơ sở dữ liệu SQL (Lựa chọn 1).
Ví dụ triển khai:
Chúng ta muốn tạo một kho lưu trữ các giao dịch chuyển token và truy vấn chúng.
Trước tiên, cần lưu trữ chúng trong S3: Tạo một bucket có tên solana_index và phân vùng dữ liệu chuyển token theo thời gian bằng cấu trúc khóa sau:
Các giao dịch chuyển của mỗi ngày được lưu trong một tệp Parquet riêng ở thư mục ngày tương ứng.
Khi xử lý các giao dịch chuyển từ Solana, hãy chuyển đổi chúng sang định dạng Parquet và ghi vào đối tượng S3 tương ứng.
Sau đó, bạn tạo một bảng trong Athena và kết nối bảng đó với bucket. Nhờ vậy, bạn có thể chạy trực tiếp các truy vấn như sau trên dữ liệu trong bucket:
Sử dụng các framework lập chỉ mục
Sử dụng Carbon và các framework tương tự để tránh phải viết mã mẫu lặp lại và thiết lập trình lập chỉ mục trong vài giờ thay vì vài ngày.
Các tính năng chính:
- Bộ giải mã dựng sẵn cho các chương trình phổ biến (chương trình Token, giao thức DeFi, Metaplex)
- Nguồn dữ liệu có thể cấu hình (RPC, LaserStream, WebSocket nâng cao)
- Hỗ trợ tích hợp cho cả việc nạp dữ liệu lịch sử và truyền dữ liệu thời gian thực
- Xuất dữ liệu tới nhiều hệ thống lưu trữ phụ trợ (tích hợp sẵn Postgres)
- Hoàn toàn có thể tùy chỉnh: bạn có thể thiết lập nguồn dữ liệu, bộ giải mã và đích dữ liệu riêng
Bước 3: Duy trì cập nhật chỉ mục
Sau khi nạp dữ liệu lịch sử, bạn cần một giải pháp truyền dữ liệu thời gian thực để cập nhật chỉ mục theo hoạt động blockchain mới. Nếu không, chỉ mục sẽ trở nên lỗi thời.
Phương pháp 1: LaserStream (khuyên dùng)
Chúng tôi khuyên dùng LaserStream gRPC làm lựa chọn mặc định cho mọi trường hợp lập chỉ mục trong môi trường sản xuất. Giải pháp này được xây dựng chuyên biệt để truyền dữ liệu tin cậy, có độ trễ cực thấp và khả năng chịu lỗi cao.
Một số lợi ích khi sử dụng LaserStream bao gồm:
- Phát lại lịch sử trong 24 giờ: nếu trình lập chỉ mục bị ngắt kết nối, LaserStream tự động phát lại tất cả giao dịch bị bỏ lỡ kể từ vị trí bạn đã dừng
- Tự động kết nối lại: các SDK LaserStream của chúng tôi (Rust, Go, JS/TS) tự động xử lý gián đoạn mạng cho bạn
- Chuyển đổi dự phòng giữa các nút: kết nối LaserStream của bạn tổng hợp dữ liệu đồng thời từ nhiều nút, bảo đảm thời gian hoạt động tối đa
Kết hợp tốc độ và độ tin cậy, LaserStream rất phù hợp với các ứng dụng thời gian thực như nguồn cấp dữ liệu giao dịch trực tiếp, bảng điều khiển giao dịch và cập nhật số dư tức thì.
Cách sử dụng LaserStream để lập chỉ mục
Sử dụng phương thức subscribe để đăng ký nhận các sự kiện blockchain.
Sau đây là một số phương pháp hay nhất:
- Thu hẹp bộ lọc tối đa có thể: Chỉ đăng ký dữ liệu mà bạn thực sự cần lập chỉ mục để giảm thiểu mức sử dụng băng thông và khối lượng xử lý cần thiết.
- Sử dụng mức cam kết
confirmed: Mức này cân bằng giữa độ trễ và tính hoàn tất. Mức processed có thể không đủ tin cậy, trong khi finalized làm tăng độ trễ thêm ~13 giây
- Đặt
failed: false trừ khi bạn cần theo dõi cụ thể các giao dịch thất bại
- Loại trừ giao dịch bỏ phiếu (
vote: false) vì chúng không liên quan đến việc lập chỉ mục
Hãy xem một ví dụ.
Sử dụng đăng ký sau để lập chỉ mục tất cả giao dịch chuyển token mới:
Phương pháp 2: Sử dụng LaserStream WebSocket
LaserStream WebSocket — biến thể WebSocket của LaserStream, bao gồm phần mở rộng transactionSubscribe dành riêng cho Helius — chạy trên cùng hệ thống phụ trợ với LaserStream gRPC và là một giải pháp truyền dữ liệu thời gian thực tiết kiệm chi phí khi bạn không cần gRPC.
Bạn nên sử dụng LaserStream WebSocket khi:
- Ứng dụng của bạn có thể chấp nhận tình trạng thiếu dữ liệu không thường xuyên
- Các bản cập nhật theo thời gian thực quan trọng nhưng không mang tính sống còn
- Bạn có sẵn cơ sở hạ tầng để phát hiện và nạp bù dữ liệu bị thiếu
- Ngân sách bị hạn chế đáng kể và bạn cần giảm thiểu chi phí truyền dữ liệu
- Bạn đang tạo nguyên mẫu hoặc thử nghiệm trước khi cam kết sử dụng LaserStream
Tuy nhiên, khi chọn WebSocket, bạn cần cân nhắc một số đánh đổi:
- Tốc độ: LaserStream WebSocket chạy trên cùng hệ thống phụ trợ với LaserStream gRPC, nhưng giao thức WebSocket bổ sung khung JSON và chi phí xử lý trên mỗi thông điệp — để đạt độ trễ thấp nhất có thể trên cùng dữ liệu, hãy dùng LaserStream gRPC
- Độ tin cậy: Không bảo đảm phát lại dữ liệu lịch sử. Nếu WebSocket bị ngắt kết nối, bạn sẽ phải tự phát hiện và nạp bù các khoảng trống bằng phương thức RPC
- Độ phức tạp: Cần thêm cơ sở hạ tầng giám sát để bảo đảm dữ liệu đầy đủ
Cách sử dụng WebSocket để lập chỉ mục
Để cập nhật một chỉ mục lưu trữ tất cả giao dịch chuyển token, bạn sẽ đăng ký transactionSubscribe như sau:
Bắt đầu
Việc xây dựng một chỉ mục Solana mạnh mẽ và nạp dữ liệu lịch sử đòi hỏi giải quyết ba thách thức cốt lõi:
- Truy xuất dữ liệu lịch sử một cách hiệu quả
- Chuyển đổi và lưu trữ dữ liệu để truy xuất nhanh
- Duy trì cập nhật dữ liệu Solana đã lập chỉ mục theo thời gian thực
Với hệ thống lưu trữ hiện đại mới của chúng tôi, các lệnh gọi lưu trữ như getTransactionsForAddress và những giải pháp truyền dữ liệu hàng đầu ngành như LaserStream, việc xây dựng chỉ mục Solana hiện dễ dàng và thiết thực hơn bao giờ hết.
Các lựa chọn bổ sung
Việc vận hành chỉ mục riêng mang lại toàn quyền kiểm soát, nhưng không phải lúc nào cũng cần thiết. Đối với các nhu cầu phổ biến, API Helius được quản lý có thể thay thế hoặc bổ sung cho chỉ mục tùy chỉnh:
- DAS API — truy vấn NFT, token có thể thay thế và tài sản nén (siêu dữ liệu, quyền sở hữu, số dư, theo chủ sở hữu/bộ sưu tập/nhà sáng tạo) mà không cần tự lập chỉ mục dữ liệu tài sản.
- Wallet API — các điểm cuối REST cấp cao dành cho số dư ví, lịch sử, giao dịch chuyển và danh tính, kèm giá trị USD và cấu trúc phản hồi đơn giản hơn.
Nhiều đội ngũ sử dụng các API này cho dữ liệu danh mục đầu tư, token và ví, đồng thời chỉ dùng chỉ mục tùy chỉnh cho dữ liệu dành cho mục đích cụ thể mà các API được quản lý không hỗ trợ.
Các bước tiếp theo