
Cách xây dựng bảng điều khiển dữ liệu Solana với Dune
Mục lục
- Tìm hiểu khối lượng dữ liệu của Solana
- Các khái niệm nền tảng: Cấu trúc dữ liệu của Solana
- Mô hình tài khoản Solana
- Cấu trúc của một giao dịch Solana
- Phân tích giao dịch trên Dune
- 1. Dữ liệu thô
- 2. Dữ liệu đã làm sạch
- 3. Dữ liệu đã giải mã
- Hậu trường: Cách Dune xử lý dữ liệu
- Hướng dẫn từng bước: Xây dựng bảng điều khiển Solana
- Bước 1: Xác định mục tiêu
- Bước 2: Truy vấn dữ liệu
- Bước 3: Lắp ghép và tùy chỉnh
- Mẹo 1: Kết hợp dữ liệu thô và dữ liệu đã giải mã
- Mẹo 2: Tối ưu hóa tốc độ
- Mẹo 3: Tận dụng nguồn cấp giá
Blockchain của Solana nổi bật về tốc độ và khả năng mở rộng, xử lý hàng nghìn giao dịch mỗi giây.
Điều này tạo ra một kho tàng dữ liệu lịch sử Solana cho các nhà phân tích và nhà phát triển—nhưng để khai thác dữ liệu đó, cần có công cụ phù hợp. Dune là nền tảng dữ liệu onchain hàng đầu, giúp chuyển đổi dữ liệu blockchain thô thành thông tin chuyên sâu có thể ứng dụng và API dành cho nhà phát triển.
Trong hướng dẫn này, bạn sẽ tìm hiểu cách xây dựng bảng điều khiển Solana toàn diện trên Dune bằng cách tận dụng các chỉ số theo thời gian thực, xu hướng lịch sử và dữ liệu chương trình đã giải mã.
Tìm hiểu khối lượng dữ liệu của Solana
Thông lượng cao của Solana—thường vượt quá 3.000 giao dịch mỗi giây—tạo ra lượng dữ liệu khổng lồ. Dữ liệu này bao gồm mọi thứ, từ hoạt động tạo block và nhật ký giao dịch đến các tương tác dành riêng cho từng chương trình như hoán đổi token hoặc đúc NFT.
Dune ghi nhận hoạt động theo thời gian thực của Solana với độ trễ tối thiểu. Các luồng dữ liệu thô, như header block và chữ ký giao dịch, được cập nhật trong vòng chưa đầy một phút. Ví dụ, truy vấn solana.transactions cho phép bạn theo dõi hoạt động mạng, chẳng hạn như mức độ tương tác của người dùng tăng đột biến khi ra mắt token.
Việc trực quan hóa dữ liệu này trên nền tảng của Dune rất đơn giản. Dune lập chỉ mục toàn bộ lịch sử Solana, từ block khởi nguyên năm 2020 đến slot mới nhất. Nhờ đó, bạn có thể phân tích các xu hướng dài hạn, như mức tăng của tổng số giao dịch (hiện đã vượt 300 tỷ) hoặc biến động theo mùa trong hoạt động DeFi. Ví dụ, truy vấn này theo dõi số giao dịch tích lũy kể từ khi mạng ra mắt, còn một truy vấn khác xác định các block được ghi nhận sớm nhất và mới nhất.
Khi so sánh với Ethereum, BSC hoặc Polygon, khối lượng dữ liệu của Solana nổi bật nhờ thông lượng cao. Một phép so sánh trực tiếp cho thấy Solana chiếm ưu thế về số giao dịch hằng ngày, dù Ethereum vẫn dẫn đầu về phí và thanh khoản DeFi.
Các khái niệm nền tảng: Cấu trúc dữ liệu của Solana
Hãy cùng tìm hiểu mô hình tài khoản của Solana, cấu trúc của một giao dịch và cách phân tích giao dịch Solana bằng Dune.
Mô hình tài khoản Solana
Cốt lõi của Solana là mô hình tài khoản độc đáo. Mọi dữ liệu onchain đều được lưu trữ trong các tài khoản, bao gồm logic chương trình, số dư token và mã thực thi. Sau đây là những điểm khác biệt của tài khoản Solana:
Địa chỉ tài khoản
Một mã định danh 32 byte bắt nguồn từ khóa công khai hoặc seed cho Program Derived Addresses (PDA). Ví dụ, địa chỉ pool thanh khoản Raydium là các PDA được tạo từ token mint và những tham số khác.
Lưu trữ dữ liệu
Tài khoản có thể chứa tối đa 10MB dữ liệu đối với chương trình bytecode có thể thực thi hoặc 10KB đối với thông tin trạng thái trong PDA.
Quyền sở hữu và tiền thuê
Tài khoản phải chứa lamport (các phần nhỏ của SOL) để thanh toán chi phí lưu trữ (tiền thuê) tương ứng với kích thước dữ liệu. Trường owner chỉ định chương trình hoặc ví kiểm soát tài khoản. Chỉ chủ sở hữu mới có thể sửa đổi dữ liệu hoặc khấu trừ lamport. Cờ executable cho biết tài khoản có chứa mã thực thi hay không.
Trong một ví dụ thực tế, tài khoản token SPL lưu trữ số dư của ví liên kết trong trường data, còn chủ sở hữu của tài khoản là Token Program.
Cấu trúc của một giao dịch Solana
Giao dịch là phương tiện để tương tác với các chương trình Solana. Mỗi giao dịch bao gồm:
- Một signature (mã định danh duy nhất) và phí được thanh toán bằng lamport
- Một hoặc nhiều instructions (ixs), chỉ định:
- Chương trình cần thực thi (ví dụ: hàm hoán đổi của Raydium).
- Các tài khoản cần đọc và ghi (ví dụ: kho token, ví người dùng).
- Các đối số dành riêng cho instruction (ví dụ: số lượng hoán đổi, phí).
Các đặc điểm chính của giao dịch gồm:
- Thực thi nguyên tử: Giao dịch thành công hoàn toàn hoặc thất bại—không có trạng thái từng phần.
- Gọi chéo chương trình (CPI): Các chương trình có thể gọi chương trình khác, tạo ra các instruction lồng nhau.
- Nhật ký và lỗi: Giao dịch thất bại sẽ kèm theo thông báo lỗi, còn nhật ký ghi lại các sự kiện trong thời gian chạy (ví dụ: chi tiết hoán đổi).
Phân tích giao dịch trên Dune
Bảng solana.transactions của Dune cung cấp thông tin chuyên sâu chi tiết:
- block_slot: Số slot khi giao dịch được xử lý.
- fee: Chi phí giao dịch tính bằng lamport.
- error: Lý do thất bại (nếu có).
- accounts: Địa chỉ của tất cả tài khoản liên quan.
- log_messages: Nhật ký sự kiện được phát ra (ví dụ: đúc token).
Để kiểm tra sâu hơn, hãy sử dụng solana.instruction_calls:
- outer_instruction_index: Vị trí của instruction trong giao dịch.
- inner_instruction_index: Theo dõi hệ thống phân cấp CPI. Đây là vị trí của inner_instruction trong instruction tương ứng, khác với stack_height. Dune hiện đang bổ sung stack_height.
- executing_account: Chương trình thực thi instruction.
- data: Các byte instruction thô (được mã hóa hex).
Khám phá dữ liệu Solana trên Dune
Dune hỗ trợ hơn 150 chương trình Solana đã giải mã, bao gồm các giao thức lớn như Raydium và Magic Eden. Cộng đồng đã xây dựng hơn 2.000 bảng điều khiển, bao quát các chỉ số từ hiệu suất trình xác thực đến xu hướng meme coin. Các chương trình mới được bổ sung thường xuyên. Người dùng có thể gửi yêu cầu giải mã qua trang web của Dune.
Dune phân loại dữ liệu Solana thành ba lớp:
1. Dữ liệu thô
Các bảng như solana.blocks và solana.instruction_calls cung cấp quyền truy cập không qua bộ lọc vào hoạt động onchain.
2. Dữ liệu đã làm sạch
Các lớp trừu tượng được xử lý trước, như giá token hoặc giá trị tương đương bằng USD, giúp đơn giản hóa việc phân tích.
3. Dữ liệu đã giải mã
Các tập dữ liệu dành riêng cho từng giao thức (ví dụ: dex.trades cho giao dịch hoán đổi trên DEX hoặc nft.trades cho giao dịch bán NFT) cung cấp các chỉ số có thể sử dụng ngay.
Để theo dõi tài sản, hãy khám phá các bảng như staking.actions cho hoạt động của trình xác thực hoặc prices.usd cho giá token. Các nhà phân tích giao dịch có thể tận dụng dex.trades để so sánh khối lượng trên các nền tảng như Orca và Raydium.
Hậu trường: Cách Dune xử lý dữ liệu
Dune nạp dữ liệu Solana thông qua plugin Geyser, truyền trực tiếp các bản cập nhật onchain đến hệ thống lập chỉ mục. Từ đó, dữ liệu thô được giải mã bằng IDL của chương trình và sắp xếp thành các bảng thuận tiện cho việc truy vấn. Để tìm hiểu chi tiết về cơ sở hạ tầng dữ liệu của Solana, hãy xem hướng dẫn của Helius về các công cụ dữ liệu Solana.
Hướng dẫn từng bước: Xây dựng bảng điều khiển Solana
Bước 1: Xác định mục tiêu
Bắt đầu bằng cách xác định lĩnh vực trọng tâm. Bạn muốn phân tích doanh số NFT, lợi suất DeFi hay hiệu suất mạng? Trong ví dụ này, chúng ta sẽ xây dựng bảng điều khiển theo dõi khối lượng DEX hằng ngày.
Bước 2: Truy vấn dữ liệu
Truy cập trình chỉnh sửa truy vấn của Dune và lấy dữ liệu giao dịch từ dex.trades:
SELECT DATE(block_time) AS date, SUM(amount_usd) AS volume
FROM solana.dex.trades
WHERE project = 'orca'
GROUP BY 1
ORDER BY date DESC; Thao tác này truy xuất khối lượng giao dịch hằng ngày của Orca. Hãy lưu truy vấn và trực quan hóa dữ liệu dưới dạng biểu đồ cột.
Bước 3: Lắp ghép và tùy chỉnh
Tạo một bảng điều khiển mới và thêm biểu đồ. Bổ sung các tiện ích khác, chẳng hạn như bộ đếm tổng số giao dịch hoặc bảng xếp hạng các token hàng đầu theo khối lượng. Sử dụng hộp văn bản để chú thích xu hướng, chẳng hạn như các đợt tăng đột biến do một token mới ra mắt.
Xem loạt video ngắn này để được hướng dẫn đầy đủ về cách xây dựng bảng điều khiển Solana trên Dune.
Mẹo chuyên sâu cho phân tích nâng cao
Mẹo 1: Kết hợp dữ liệu thô và dữ liệu đã giải mã
Nếu một chương trình chưa được giải mã hoàn toàn (ví dụ: một thị trường NFT mới), hãy dùng solana.instruction_calls để phân tích nhật ký theo cách thủ công. Sau đó, đối chiếu với các bảng token đã giải mã để xác định chi tiết tài sản.
Mẹo 2: Tối ưu hóa tốc độ
Khối lượng dữ liệu của Solana có thể làm chậm các truy vấn.
Hãy lọc sớm theo block_slot hoặc block_time, đồng thời sử dụng chế độ xem cụ thể hóa cho các chỉ số được truy cập thường xuyên.
Mẹo 3: Tận dụng nguồn cấp giá
Chuyển đổi số lượng token sang USD bằng cách kết hợp các giao dịch với prices.usd. Điều này cung cấp thêm bối cảnh cho khối lượng, đặc biệt là với các tài sản biến động mạnh.
Lời kết
Dune biến luồng dữ liệu khổng lồ của Solana thành một tài nguyên có cấu trúc và dễ tiếp cận. Khi thành thạo các tập dữ liệu và công cụ của Dune, bạn có thể khám phá những thông tin chuyên sâu giúp định hướng quyết định—dù đang tối ưu hóa giao thức hay theo dõi xu hướng thị trường.
Để tìm hiểu thêm, hãy khám phá kiến trúc plugin Geyser của Solana và xem các video hướng dẫn trong danh sách phát Solana Data trên YouTube.
Bài viết liên quan
Đă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


