logo
  • Tin tức
  • Báo cáo
  • Sự kiện
  • Nổi bật
  • Coin68 TV
  • E-Magazine
  • Góc nhìn
  • Báo cáo
  • Sự kiện
  • Nổi bật
  • Coin68 TV
  • E-Magazine
  • Góc nhìn
ads

Hướng dẫn sử dụng On-chain Tools (Phần 4): Dune Analytics

-22/06/2023

Dune Analytics là công cụ phân tích dữ liệu quá quen thuộc với các tín đồ on-chain. Ban đầu, bạn có thể gặp trở ngại trong việc tìm kiếm nguồn tài liệu cũng như hiểu ý nghĩa một số thuật ngữ trong ứng dụng này. Chính vì vậy, ở phần 4 này, Coin68 sẽ hướng dẫn bạn cách sử dụng Dune nhé.

Hướng dẫn sử dụng On-chain Tools (Phần 4): Dune Analytics

1. Giới thiệu về Dune Analytics

Dune Analytics là nền tảng cho bạn truy vấn (query) và trực quan hóa dữ liệu blockchain công khai. Đây là một công cụ tuyệt vời dành cho người phân tích và đầu tư muốn có cái nhìn toàn diện và chi tiết về hệ sinh thái và từng dự án riêng biệt.

Dune Analytics cung cấp giao diện đơn giản cho việc query SQL trên nhiều tập dữ liệu blockchain khác nhau. Điều này giúp dễ dàng trích xuất dữ liệu về các chủ đề như DeFi, NFT và hợp đồng thông minh. Sau khi trích xuất dữ liệu, bạn có thể sử dụng các công cụ trực quan hóa tích hợp sẵn trong Dune Analytics để tạo biểu đồ, đồ thị và bảng.

Dưới đây là một số lợi ích khi sử dụng Dune Analytics:

  • Query dữ liệu linh hoạt: Dune Analytics cung cấp khả năng truy xuất dữ liệu từ các bộ dữ liệu trên các chain khác nhau. Người dùng có thể linh hoạt lọc, sắp xếp và tổng hợp dữ liệu theo ý muốn.

  • Trực quan hóa dữ liệu: Dune Analytics cung cấp các công cụ trực quan hóa thân thiện người dùng, cho phép tạo ra nhiều dạng biểu đồ khác nhau. 

  • Chia sẻ và hợp tác: Người dùng của Dune Analytics có thể chia sẻ dashboard, query và kết quả với người khác. Điều này tạo điều kiện để cộng đồng cùng hợp tác và trao đổi thông tin với nhau.

  • Bộ dữ liệu đa dạng: Dune Analytics hỗ trợ dữ liệu trên các chain khác nhau, bao gồm Ethereum, Fantom, BSC, Polygon, Optimism, Arbitrum và các mạng lưới khác. Tuỳ theo nhu cầu từ cộng đồng mà Dune sẽ mở rộng để hỗ trợ các chain khác trong tương lai. Điều này cho phép người dùng query và phân tích dữ liệu từ nhiều nguồn dữ liệu khác nhau.

  • Bảo mật và quyền riêng tư: Dune Analytics đảm bảo bảo mật và quyền riêng tư cho người dùng. Dữ liệu query và kết quả được mã hóa và bảo vệ an toàn. Ngoài ra, Dune còn cung cấp chức năng chuyển các query và dashboard của người dùng sang chế độ private (riêng tư).

  • Tích hợp dễ dàng: Dune Analytics cung cấp API và tích hợp với các dịch vụ khác, cho phép người dùng kết hợp và sử dụng dữ liệu từ nhiều nguồn khác nhau trong các ứng dụng và dự án của mình.

  • Các gói trả phí: Dune Analytics cung cấp các gói trả phí khác nhau tùy theo nhu cầu và trải nghiệm cá nhân.

2. Giao diện Dune

Đầu tiên, để có thể sử dụng các tính năng của Dune bạn cần đăng ký tài khoản thông qua Email.


Đăng ký tài khoản trên Dune

Sau khi đăng ký thành công trên nền tảng Dune, giao diện chính của nền tảng sẽ bao gồm các chức năng cụ thể như sau:

Giao diện Dune

Hãy cùng đi qua những bộ phận chính của Dashboard.

1. Search: tìm kiếm thông tin dashboard, query, wizard (người tạo dashboard) và team.

2. Discover: hiển thị xu hướng và các dự án được quan tâm. Thông tin trong Discover gồm:

- Dashboard: Hiển thị dashboard đang được quan tâm nhất hiện tại. Trên giao diện này, bạn có thể sử dụng khung tìm kiếm ở góc trên bên trái (1) hoặc hộp tìm kiếm bên phải (14) để tìm kiếm các từ khóa mà bạn quan tâm.

- Queries: hiển thị danh sách các câu lệnh query được sắp xếp giảm dần theo số lượng sao.

- Wizards: xếp hạng người dùng theo số sao.

- Teams: xếp hạng các nhóm theo số sao.

3. Favorites: lưu lại các dashboard hay queries mà bạn đã tặng sao.

4. Chuyển đổi tài khoản: giúp bạn chuyển đổi nhanh giữa tài khoản cá nhân và team của bạn.


Chuyển đổi qua lại các tài khoản

5. My Creations: hiển thị các bảng dữ liệu và query mà bạn đã tạo. Bạn có thể tìm nhanh bằng cách sử dụng hộp tìm kiếm bên phải.

6. Biểu tượng tốc độ: thể hiện trạng thái tài khoản của bạn đang ở gói nào free (miễn phí) hay các gói trả phí và số lượng Credits mà bạn đã dùng. Credits là định mức Dune cung cấp cho bạn hàng tháng để chi trả cho việc đẩy nhanh tốc độ query dữ liệu. Nếu bạn dùng hết mức này khi chưa hết tháng và muốn tiếp tục đẩy nhanh việc chạy dữ liệu thì bạn phải trả phí.


Số credits của người dùng

7. Dấu cộng: dùng để chọn New query (tạo một query mới) và New dashboard (tạo bảng dữ liệu mới).


Tạo query và dashboard mới

8. Explore new plans: đưa ra các gói dịch vụ khác nhau của Dune. Mặc định khi đăng ký bạn sẽ ở gói free và được tặng 2.500 credits mỗi tháng. Nếu bạn có nhu cầu xử lý dữ liệu cao hơn thì có thể cân nhắc nâng cấp tài khoản.

9. Community: có thể xem như là "thư viện" của Dune. Bạn có thể xem lại các clip, newsletter và tài liệu tại mục này.

10. Docs: cung cấp các tài liệu hướng dẫn liên quan đến việc sử dụng và query dữ liệu của Dune.

11. Discord: là nơi bạn kết nối với những wizards khác. Tại server này bạn có thể hỗ trợ những thành viên khác giải đáp vấn đề và được hỗ trợ ngược lại.

12. Give feedback: là nơi cộng đồng đưa ra đề xuất để Dune cải tiến sản phẩm.

Đưa feedback cho team Dune

13. Dấu ba chấm: các lựa chọn khác như đến trang blog, tìm kiếm việc làm trên Dune, cài đặt và thoát tài khoản.


Tuỳ chọn khác

14. Lọc dashboard: theo Favorites (dashboard được sắp xếp theo số lượng sao), Trending (được nhiều người quan tâm) và New (mới được tạo).

15. Lọc dashboard theo tags: giúp bạn lựa chọn dữ liệu dễ hơn theo từng loại sản phẩm.

3. Dune deep-dive

3.1. Query Editor

Query Editor là nơi bạn dùng các câu lệnh SQL để query dữ liệu của mình. Có thể nói đây là nơi bạn dành phần lớn thời gian tương tác với Dune. Dưới đây là chú giải cho các phần trong Query Editor.

Giao diện Dune Editor

1.  Query Engine: Dune có định hướng phát triển cơ sở dữ liệu của riêng mình và dùng ngôn ngữ Dune SQL để truy vấn dữ liệu. Hiện tại bạn cũng có thể lựa chọn ngôn ngữ Spark SQL nhưng sắp tới ngôn ngữ này sẽ không được hỗ trợ trên Dune nữa.


Chọn loại SQL

2. Search dataset: dùng để tìm kiếm bảng dữ liệu có sẵn trên Dune.


Tìm kiếm bảng dữ liệu

3. Browse datasets by category là nơi phân loại các bảng dữ liệu. Bạn có thể vào từng mục để tìm dữ liệu muốn lấy. Chi tiết về phần này sẽ được trình bày ở mục sau.

4. Thể hiện trạng thái của query như lần cuối được lưu là khi nào, thời gian tạo, query này đang để chế độ công khai hay riêng tư.

5. Query Editor là nơi bạn để viết câu lệnh truy vấn dữ liệu.

6. Expand giúp mở rộng khung edit, giúp nhìn được nhiều dòng query hơn.

7. Settings có 3 lựa chọn chính là cho phép gợi ý từ khoá, chuyển đổi chế độ đen trắng và chế độ full màn hình.


Điều chỉnh Query Editor

8. Explain Query là tính năng Dune dùng kết hợp với Chat GPT-4 để hỗ trợ người dùng hiểu ý nghĩa và flow query dữ liệu của wizard.


Giải thích flow query

9. Format Query giúp căng chỉnh các dòng SQL dễ nhìn hơn.

10. Add Parameter: Parameter cho phép bạn triển khai biến trong query. Điều này hữu ích nếu bạn muốn tạo một query có thể tái sử dụng với các tham số khác nhau. Để sử dụng tham số: 

  • Chọn vị trí trong SQL của bạn mà bạn muốn triển khai một tham số.

  • Nhấp vào nút thêm tham số hoặc gõ {{tên_tham_số_mới}}.

  • Mở các tùy chọn tham số.

  • Chọn tên, loại dữ liệu cho tham số và giá trị mặc định cho tham số của bạn.


Tạo Parameter

11. Run để chạy query. Dune cho bạn ba lựa chọn để chạy dữ liệu: Nếu dữ liệu bạn chạy nhỏ thì có thể dùng bảng free, nếu dữ liệu lớn và bạn không muốn xếp hàng chờ dữ liệu của mình được xử lý thì có thể dùng hai lựa chọn còn lại và trả số lượng credit tương ứng cho Dune.


Lựa chọn gói chạy dữ liệu

Trên Dune để duy trì các dashboard được cập nhật, bạn có thể lên lịch chạy query vào thời điểm cụ thể. Các query đã lên lịch yêu cầu sử dụng credit, với query mức trung bình và lớn tương ứng mất 10 và 20 credits. Bạn chỉ cần nhấn vào biểu tượng đồng hồ bên trái chữ Run, form hẹn giờ update sẽ hiện ra như hình dưới.


Hẹn giờ update query

12. Tab để xem kết quả query và biểu đồ đã tạo

13. Tải dữ liệu đã query về máy theo định dạng CSV. Tuỳ theo trạng thái account của bạn mà giới hạn số lượng file CSV được tải xuống.

14. Link embed kết quả query và biểu đồ.

15. Kết quả query được hiển thị trong một bảng dưới trình chỉnh sửa. Bạn có thể sắp xếp kết quả bằng cách nhấp vào tiêu đề cột. Nhấp một lần để sắp xếp tăng dần, nhấp lại để sắp xếp giảm dần. Kết quả được phân trang, vì vậy bạn có thể nhấp qua các trang để xem thêm kết quả. Bạn có thể tìm kiếm kết quả bằng cách sử dụng thanh tìm kiếm dưới bảng kết quả. Bạn có thể định dạng kết quả tạo các ô như hình dưới.

Định dạng kết quả

16. Fork là chức năng Dune cung cấp để bạn sao chép query của người khác nhưng vẫn hiển thị query gốc của tác giả.

17. Query Explorer cho phép bạn tìm lại những query cũ của mình.


Tìm kiếm query

18. Data explorer giúp tìm kiếm nhanh các bảng dữ liệu khác. Bạn có thể ẩn hoặc hiện phần này bằng cách nhấn vào biểu tượng đó.

19. Version History: tất cả các query hiện đã có phiên bản lịch sử, trong đó bạn có thể so sánh và phục hồi lại các phiên bản query trước. Bạn có thể truy cập lịch sử phiên bản bằng cách nhấn vào biểu tượng đồng hồ ở góc trên bên trái của trình chỉnh sửa query.


Xem lại lịch sử chỉnh sửa

20.  Settings này cho phép bạn thay đổi tên query, mô tả, gắn tag cho query, chuyển quyền sở hữu cà thay đổi chế độ riêng tư.


Cài đặt query

3.2. Visualization

Sau khi có kết quả query, bạn muốn trực quan hoá dữ liệu để có thể thấy được điểm đáng chú ý thông qua biểu đồ.

Dune cho phép bạn tạo ra các loại biểu đồ bằng cách chọn New visualization, nhấn chọn nút mũi tên tại ô Select visualization type, một loạt gợi ý sẽ hiện ra như biểu đồ cột, biểu đồ miền, biểu đồ phân tán, biểu đồ đường, biểu đồ tròn, counter và bảng.

Chọn loại biểu đồ

3.2.1. Tạo và định dạng biểu đồ

Sau khi chọn được loại biểu đồ phù hợp, bạn có thể tùy chọn chỉnh sửa. Hãy xem các tab dưới đây để biết cách chỉnh biểu đồ nhé.

Ví dụ mình muốn so sánh số lượng giao dịch mua và bán của token PRY theo thời gian và mình chọn biểu đồ cột.

So sánh số lần mua bán token PRY

Lựa chọn chỉnh sửa biểu đồ

- Chart options: Phần này cho phép bạn xác định cách hiển thị dữ liệu của mình như:

  • Tiêu đề: Tiêu đề sẽ xuất hiện nổi bật ở đầu của tất cả các biểu đồ. Mặc định biểu đồ sẽ luôn giữ tên của query.
  • Hiển thị chú giải biểu đồ: Chọn ô này để bật hoặc tắt chú giải cho biểu đồ.
  • Kích hoạt chồng dữ liệu: Chọn ô này để chồng các giá trị biểu đồ lên nhau dựa trên các giá trị trục x. Phép tính này luôn nhóm giá trị tương ứng với một giá trị trên trục x.
  • Chuẩn hóa thành dữ liệu phần trăm: Để hiển thị giá trị phần trăm của bảng dữ liệu đã chọn. 
  • Hiển thị nhãn dữ liệu: Chọn ô này để hiển thị các điểm dữ liệu trong biểu đồ. Chỉ chọn trong trường hợp bạn có ít điểm dữ liệu và chúng được phân bố đủ xa nhau để không chồng chéo lên nhau.


Định dạng chung cho biểu đồ

 

- Result data: Bạn có thể lựa chọn giá trị cần thể hiện lên biểu đồ ở mục này. Như ví dụ bên dưới cột X mình để thời gian, cột Y mình để hai loại giá trị là mua và bán.


Lựa chọn giá trị cần hiển thị

- Y-axis option: Cho phép bạn đặt tên cột Y, thể hiện dữ liệu theo logarit và mở rộng thêm một cột Y thứ 2. Tick/label format cho phép định dạng cách trị số và nhãn trong biểu đồ của bạn được hiển thị.


Lựa chọn kiểu dữ liệu muốn hiển thị


Cách chỉnh tick/label

- Nếu muốn chỉnh màu biểu đồ hay thay đổi thứ tự dữ liệu thì bạn thực hiện ở mục Series.

Chỉnh màu biểu đồ

3.2.2. Tạo và định dạng bảng

Sau khi chạy lệnh SQL bạn sẽ thấy kết quả bên dưới phần Query Editor. Mặc định kết quả đó được thể hiện theo dạng bảng. Nếu muốn bạn cũng có thể tạo một bảng khác bằng cách chọn New visualization và chọn Table.


Chọn hiển thị dạng bảng

Bên dưới phần kết quả là khu vực bạn có thể dùng để điều chỉnh bảng dữ liệu của mình. Dữ liệu bạn có bao nhiêu cột thì sẽ có bấy nhiêu ô để bạn tùy chỉnh.

Ví dụ: Đây là kết quả tính lời lỗ giao dịch NFT. Dữ liệu này có 13 cột nên mình sẽ có 13 vùng để tùy chỉnh các cột.

Kết quả query

Chỉnh sửa dữ liệu từng cột

- Tiêu đề: Tiêu đề xuất hiện ở đầu bảng. Nếu bạn không chỉnh sửa thì tiêu đề bảng của bạn giống như tiêu đề/tên của query. Nếu bạn nhập tên thì trường này sẽ thể hiện tên bảng trước, tiếp theo là tên của query.


Đặt tên bảng

- Sau đó bạn tiếp tục định dạng dữ liệu cho từng cột. 

- Đổi tên cột: Bạn có thể thay đổi tên cột tại Title hoặc để mặc định tên theo kết quả query.

- Align: Định dạng dữ liệu sang lề trái, lề phải hoặc ở giữa cột.

- Format: bạn muốn hiển thị giá trị như thế nào. Xem lại phần 3.2.1 định dạng tick/label format.

- Type: Có hai dạng là Normal thể hiện số liệu bình thường, còn Progress bar thể hiện độ lớn giá trị.


Chọn kiểu thể hiện dữ liệu


Progress bar và normal

 

- Hide column: Ẩn cột bạn không muốn trong bảng

- Colored positive/negative values: Hiện màu xanh cho giá trị dương, đỏ cho giá trị âm.

3.2.3. Tạo và định dạng counter

Counter giúp cho người dùng trực quan hoá tổng quan dữ liệu, cung cấp cho bạn cách hiển thị một giá trị duy nhất và đáng chú ý liên quan đến dự án.

Counter

Counter dùng tốt nhất để thể hiện một con số tổng nào đó nên tốt nhất bạn nên chạy ra kết quả chỉ một dòng hoặc nếu giá trị là tích luỹ thì sắp xếp theo thứ tự giảm dần để không hiển thị sai giá trị.

Ví dụ kết quả query

Tương tự như định dạng bảng, định dạng counter gồm các bước sau:

  • Đặt tên cho counter.

  • Chọn cột cần hiển thị giá trị.

  • Chọn dòng lấy giá trị. Như đề cập ở trên, tốt nhất bạn nên thể hiện kết quả muốn trực quan ở dòng đầu tiên.

  • Thay đổi màu cho giá trị âm hoặc dương.

  • Prefix cho phép bạn thêm ký tự trước giá trị hiển thị như đô la ($).

  • Suffix cho phép bạn thêm ký tự sau giá trị hiển thị như triệu (M), ETH (E).

  • Label dùng để đặt tên cho giá trị, nếu không thay đổi thì sẽ mặc định là tên theo kết quả query.

  • Decimals thể hiện phần thập phân. Nếu bạn muốn hiển thị hai số sau dấu phẩy thì chọn 2.


Chỉnh cách hiển thị giá trị


Minh hoạ prefix và label

3.3. Tạo Dashboard

Dashboard là nơi bạn trực quan hoá tất cả dữ liệu liên quan đến một dự án nào đó mà bạn đã truy vấn.

Dashboard trên Dune bao gồm nhiều tiện ích. Ngoài việc chèn biểu đồ, bạn còn có thể chèn văn bản, chèn hình ảnh hoặc GIF và tự do thay đổi kích thước của mỗi tiện ích để phù hợp với bố cục bạn muốn tạo ra.

Để tạo một bảng điều khiển trên Dune:

1. Sử dụng menu tạo và chọn "Bảng điều khiển mới".

Tạo dashboard

Hoặc bạn có thể thêm trực tiếp dashboard từ Query Editor bằng cách định vị query và chọn biểu đồ muốn thêm vào dashboard. Chọn Add to dashboard ở phần dưới biểu đồ.

Thêm biểu đồ từ query

2. Đặt tên cho dashboard của bạn.


Đặt tên dashboard

3. Nhấn vào Save and open.

4. Bật chế độ chỉnh sửa bằng cách nhấp vào nút Edit ở góc bên phải.


Chọn Edit

5. Sau đó chọn Add visualization. Bạn có thể tìm bằng tên query hoặc kéo chuột. Nếu tài khoản của bạn tham gia vào nhiều nhóm thì bạn có thể lọc query theo account của nhóm đó bằng cách chọn Show queries from other users.


Tìm query có biểu đồ muốn thêm

6. Chọn tiện ích mà bạn muốn thêm bằng cách nhấn Add text widget.


Chọn tiện ích

Ở mục này, nếu bạn muốn tuỳ chỉnh thêm thì chọn vào Some markdown is supported và làm theo gợi ý từ Dune.


Thêm tiện ích theo cú pháp

7. Bạn có thể thay đổi kích thước của tiện ích bằng cách kéo thả góc phải tiện ích hoặc nhấn giữ và di chuyển chuột để thay đổi vị trí của chúng.

8. Nhấp vào nút Save ở góc trên bên phải để lưu các thay đổi của bạn.

9. Sau khi Edit xong bạn chọn Done.


Done sau khi chỉnh sửa xong

3.4. Decoding Contracts

Dữ liệu thô trên blockchain rất khó dùng và phân tích. Vì vậy Dune hỗ trợ người dùng bằng cách decode (giải mã) dữ liệu trong hợp đồng thông minh. Thay vì làm việc với dữ liệu giao dịch, nhật ký và logs thô, các hợp đồng được giải mã thành các bảng sự kiện và chức năng được xác định thông qua ABI (Giao diện nhị phân ứng dụng) của hợp đồng thông minh.

Để thực hiện decode hợp đồng thông minh bạn làm các bước sau:

  • Trên góc phải màn hình, nhấn vào biểu tượng 3 dấu chấm rồi chọn Submit a contract. 


Gửi contract cần decode

  • Trước tiên, bạn cần cung cấp địa chỉ hợp đồng và blockchain.

Ví dụ, dưới đây là hợp đồng USDT 0x94b008aA00579c1307B0EF2c499aD98a8ce58e58 trên Optimism:

Form điền thông tin

  • Sau khi nhấn Next, bạn cần cung cấp thêm thông tin khác về hợp đồng cần để giải mã nó như đặt tên, cung cấp mã ABI. Thông thường khi bạn paste địa chỉ hợp đồng vào ở bước 1, thì qua bước 2, Dune sẽ tự động đưa ra dữ liệu ABI. Nếu không có, bạn có thể lên explorer của chain đó để lấy hoặc liên hệ với bên dự án để họ cung cấp.

Đặt tên và cung cấp ABI

  • Trong một số trường hợp, Dune có thể tự động phát hiện và lập danh sách nhiều địa chỉ hợp đồng trong cùng một đề xuất, thuận tiện cho các dự án có nhiều hợp đồng thông minh như Tranchess. Nếu bạn muốn Dune decode nhiều hơn một hợp đồng thì chọn Advanced options để cung cấp thêm thông tin. Đầu tiên chọn Yes cho câu hỏi "Are there several instances of this contract?"

Sau đó, đối với câu hỏi thứ hai "is it created by a factory contract?" - chọn "No" để decode tất cả các hợp đồng khác có cùng mã bytecode hoặc Yes để decode tất cả các hợp đồng khác được tạo ra bởi cùng một người viết hợp đồng thông minh.


Form Advance options

Lưu ý: Chỉ sử dụng các tùy chọn này nếu bạn quen thuộc với cấu trúc dự án. Sử dụng các cài đặt này một cách không chính xác có thể dẫn đến việc bị từ chối yêu cầu.

  • Cuối cùng chọn Submit để gửi yêu cầu decode hợp đồng thông minh.

  • Bạn có thể xem các đề xuất của mình và trạng thái xử lý của chúng bất cứ lúc nào bằng cách điều hướng đến My Creations > Contracts. Sau khi một hợp đồng được chấp thuận, cần khoảng sáu tiếng để bạn có thể truy cập tất cả dữ liệu. 

4. Giải thích các bảng dữ liệu

4.1. Spellbook Tables

4.1.1. Spellbook Tables là gì?

Spellbook tables hay còn gọi là Spells là cách đơn giản nhất để query dữ liệu blockchain trên Dune. Spellbook là một kho lưu trữ dữ liệu mã nguồn mở để tạo và duy trì các bảng dữ liệu blockchain bằng cách sử dụng SQL và mẫu Jinja.

Spells là các bảng tùy chỉnh được xây dựng, duy trì bởi Dune và cộng đồng. Nó cho phép cộng đồng xây dựng dữ liệu thành cấu trúc dễ dùng và dễ đọc hơn. Với dữ liệu Web3, thường sẽ có một lớp cơ sở dữ liệu Raw, là dữ liệu mà chúng ta thấy trong các tab Transactions, Internal transactions và Logs ở Etherscan. Spellbook cho phép bạn tạo ra các bộ dữ liệu như dex.trades và nft.trades, tổng hợp và tổ chức dữ liệu thô từ nhiều nguồn khác nhau để query dễ dàng hơn rất nhiều.

Để tìm Spellbook, bạn chọn New query, sau đó bên phía tay trái màn hình chọn Spells.

Tìm Spellbook

4.1.2. Vì sao cần có Spellbook?

Ví dụ dưới đây sẽ giải thích cho bạn lý do vì sao nên dùng spellbook. Trên OpenSea, chọn dự án Imaginary Ones và xem bất cứ NFT ID nào.

Xem NFT ID trên OpenSea

Kéo xuống để xem lịch sử giao dịch và nhấn vào một giao dịch để xem nó trên blockchain explorer. Giao dịch sẽ bao gồm những thông tin cơ bản sau:

  • Khối giao dịch và hash của giao dịch

  • Địa chỉ gửi/nhận trong giao dịch

  • Số lượng ETH đã được chuyển

Thông tin giao dịch trên Etherscan

Ở mức cơ bản, dữ liệu blockchain được đóng gói trong các khối, đó là Raw data trong Dune. Vì vậy chúng ta có thể query để lấy dữ liệu từ khối mà giao dịch này đã xảy ra.

Query


Kết quả truy vấn

Rõ ràng khi nhìn vào kết quả query, có rất nhiều thông tin trong khối, rất khó để người dùng định hướng được cần làm gì với dữ liệu này và với việc phân tích NFT thì những dữ liệu này có cần thiết hay không. Nhìn vào đó rất khó cho bạn xác định được volume giao dịch cũng như tần suất mua bán NFT. Vì vậy Dune đã decode hợp đồng thông minh của Seaport và phân tích bảng Seaport_evt_OrderFulfilled nơi chứa dữ liệu cho giao dịch cụ thể.

Sau khi giải mã tất cả dữ liệu từ Seaport, Dune cho ra mắt Spells nft.trades. Bảng dữ liệu này cho phép bạn phân tích số lượng người mua bán NFT của một bộ sưu tập, volume giao dịch theo thời gian và nhiều insight hơn nữa. Bạn chỉ cần biết biết địa chỉ hợp đồng của NFT sau đó có thể tuỳ ý phân tích và biến hoá dữ liệu với Spells. Spells giúp bạn rút ngắn rất nhiều thời gian khi phân tích dữ liệu on-chain. Nếu không có Spells, bạn có thể mất vài ngày để clean và biến đổi dữ liệu thô.

Kết quả query với nft.trades

Ngoài ra, nếu bạn muốn làm việc với nhiều Spellbook hơn có thể truy cập đường link: https://dune.com/spellbook#!/spellcasters. Đây là thư viện tổng hợp tất cả các Spells được xây dựng và cũng giúp chú giải ý nghĩa từng cột dữ liệu.

4.2. Decoded Tables

Dữ liệu thô trên blockchain rất khó dùng và phân tích. Để giúp việc phân tích các hợp đồng thông minh dễ dàng hơn, Dune đã giải mã dữ liệu từ tất cả các giao dịch (tất cả các hàm và logs) thành các bảng dễ đọc. Điều này có nghĩa là bạn không cần làm việc với bất kỳ dữ liệu gốc nào từ blockchain. Cách yêu cầu giải mã hợp đồng thông minh đã được hướng dẫn ở mục 3.4. 

Tìm Decoded Projects

Các bảng dữ liệu được giải mã bởi team Dune gồm EVM và Solana nhưng chúng ta tập trung nói đến bảng EVM. 

Dune hỗ trợ các bảng giải mã cho các chain dựa trên Ethereum (EVM) như Ethereum, Optimism, Arbitrum, Polygon,... Có hai loại bảng giải mã EVM, một loại giải mã các hàm (Call Tables) và một loại giải mã các log sự kiện (Event Logs).

4.2.1. Call Tables

Call có thể định nghĩa như một lời gọi của một hàm hợp đồng. Đây là một hoạt động chỉ đọc và sẽ không tiêu thụ bất kỳ ETH nào. Nó mô phỏng những gì sẽ xảy ra trong một giao dịch, nhưng loại bỏ tất cả các thay đổi trạng thái khi hoàn thành.

Transaction là một giao dịch được phát đến mạng lưới, được xử lý bởi các máy đào, và nếu hợp lệ, sẽ được bao gồm trong block. Đây là một hoạt động sẽ ảnh hưởng đến các tài khoản khác, cập nhật trạng thái của blockchain và tiêu thụ ETH.

Thường thì các hợp đồng thông minh có các hàm có thể được gọi bởi một tài khoản EOA hoặc các hợp đồng thông minh khác. Các hàm như call lệnh mint và call các hợp đồng thông minh khác.

Trên Dune, chúng ta phân tích tất cả các lệnh call và giao dịch được thực hiện tới các hợp đồng thông minh trong bảng riêng. Các bảng được đặt tên để người dùng dễ nhận diện theo cú pháp sau:

Ví dụ, khi một pool uniswap v3 được tạo ra thông qua hàm createPool của uniswap v3 factory (trên Ethereum), Dune sẽ ghi lại giao dịch đó trong bảng dữ liệu. Thiết lập câu lệnh SQL để xem giao dịch, Dune sẽ trả kết quả query như bên dưới:

Kết quả query

4.2.2. Event Logs

Hợp đồng thông minh sẽ tạo ra các event logs khi hoàn thành các hành động đã được xác định trước. Cấu trúc được tạo ra trong các log này được xác định trước bởi người phát triển hợp đồng thông minh.

Việc hiểu và theo dõi được log rất hữu dụng với người phân tích dữ liệu. Bạn có thể theo dõi, và nhìn tổng quát những gì xảy ra bên trong một hợp đồng thông minh vì chúng cung cấp dữ liệu một cách đáng tin cậy để phân tích sau khi sự kiện xảy ra.

Dune giải mã tất cả các event log cho hợp đồng thông minh và đặt tên theo cấu trúc sau:

Ví dụ: Tiếp tục với trường hợp uniswap v3 factory ở mục 4.2.1. Khi tạo một pool mới thì event (sự kiện) sẽ được tạo ra. Sự kiện này được gọi là PoolCreated và được tạo ra mỗi khi có ai đó triển khai thành công một pool Uniswap V3 mới bằng cách gọi hàm createPool. Sự kiện này sẽ cung cấp cho chúng ta thông tin về các token trong pool, mức phí của pool và khoảng cách giữa các tick. Trên Etherscan, bạn có thể dễ dàng xem các logs của giao dịch bằng cách mở tab logs. 

Xem sự kiện trên Etherscan

Kết quả query

4.3. Raw Tables

Bảng Raw cung cấp cho bạn dữ liệu gốc, chưa được lọc và chỉnh sửa.

Với dữ liệu gốc, bạn có thể query bất kỳ giao dịch, blocks, logs hoặc traces (giao dịch nội bộ) nào trên các blockchain mà Dune hỗ trợ. Bảng dữ liệu gốc rất hữu ích để có thông tin về blockchain, giao dịch, giao dịch nội bộ hoặc sự kiện cụ thể.

Tuy nhiên, các query được viết bằng cách sử dụng dữ liệu gốc thường khó hiểu và khó kiểm tra. Hơn nữa, bảng dữ liệu gốc có một số lượng rất lớn các hàng và do đó có thể chậm trong việc query. Trong hầu hết các trường hợp, bạn nên gửi các hợp đồng để giải mã và làm việc với dữ liệu đã được chuyển đổi.

Các bảng dữ liệu gốc được chia thành ba nhóm EVM, Solana và Bitcoin. Trong bài này chúng ta chỉ đi qua dữ liệu dành cho nhóm EVM, dữ liệu trong Solana và Bitcoin sẽ phức tạp hơn

4.3.1. Blocks

Một khối chứa các giao dịch sẽ làm thay đổi trạng thái của một hệ thống EVM. Giao dịch trong một khối chỉ có thể được thực thi tuần tự.

Trên Dune, bạn chọn Raw → Vào All chains để chọn chain bạn muốn xem → chọn ethereum.blocks.

Chọn Raw để lấy dữ liệu blockchain gốc


Bảng dữ liệu trong Raw


Dữ liệu Raw trên Ethereum

Khi bấm vào bảng ethereum.blocks, bạn sẽ thấy một loạt các cột dữ liệu hiện ra như thông tin ngày khối được đào, mã hash, gas limit, lượng gas đã dùng, địa chỉ thợ đào,...


Cột trong bảng Blocks

4.3.2. Event logs

Event logs lưu trữ tất cả dữ liệu nhật ký được tạo ra bởi hợp đồng thông minh, giúp cho người phân tích có thể query các hợp đồng chưa được giải mã hoặc không thể được giải mã do mã nguồn của hợp đồng thông minh không công khai.

Event logs hữu ích để cho phép những người khác biết rằng một sự việc đã xảy ra mà không cần họ phải query từng hợp đồng một. Trong logs, khi xem trên Etherscan bạn sẽ thường thấy các topic được đánh số từ 0 còn với Dune topic tính từ 1, vì vậy topic 0 trên explorer sẽ hiển thị như topic 1 trên Dune. 

Để tìm dữ liệu logs bạn vào Raw → chọn chain → ở Filter Tables nhấn logs → lúc này sẽ có hai bảng logs và logs_decoded.

Điểm khác biệt hai bảng này ở chỗ: với logs hầu như là dữ liệu gốc, những thông tin trên explorer như thế nào thì ở bảng này sẽ thể hiện như vậy. Còn logs_decoded đã được team Dune lọc, chuyển đổi dữ liệu và đặt tên cho từng sự kiện của từng topic.


Dữ liệu logs

Kết quả query

4.3.3. Traces

Các giao dịch có thể kích hoạt các hoạt động ở các tầng khác để sửa đổi trạng thái nội bộ của EVM. Thông tin về việc thực thi các hành động này được ghi lại và có thể được tìm thấy dưới dạng một trace của EVM. Trên Etherscan, chúng được gọi là Internal Transaction (giao dịch nội bộ).

Trên Dune có ba bảng dữ liệu cho traces: traces là bảng dữ liệu thô kéo từ blockchain về mà chưa định dạng hoặc giải mã lại, traces_decoded đã được lọc, xử lý dữ liệu và đặt tên cho những hàm có liên quan còn creation_traces tổng hợp dữ liệu về một hợp đồng thông minh được tạo và chuyển ETH vào đó.


Dữ liệu traces

4.3.4. Transactions

Theo định nghĩa của Ethereum thì một giao dịch Ethereum đề cập đến một hành động được khởi tạo bởi một tài khoản do người ngoài sở hữu quản lý (EOA) không phải là một hợp đồng. Ví dụ, nếu Bob gửi cho Alice 1 ETH, tài khoản của Bob sẽ bị giảm số dư và tài khoản của Alice sẽ được tăng số dư. Hành động này thay đổi trạng thái và diễn ra trong một giao dịch.

Với bảng ethereum.transactions cơ bản bạn có thể phân tích được số lượng giao dịch trên mạng lưới theo thời gian cũng như là số lượng địa chỉ ví giao dịch, phí gas, phí giao dịch và volume giao dịch được tính theo ETH.

Kết quả query

5. Các mẹo phân tích với Dune Analytics

Sau khi làm quen với giao diện từ tìm kiếm bảng dữ liệu, tạo biểu đồ, dashboard đến hiểu ý nghĩa các bảng dữ liệu chính của Dune, bạn đã có thể bắt tay vào phân tích dữ liệu blockchain. Việc phân tích bất kỳ cơ chế và hoạt động của dự án là thách thức đối với người phân tích. Điều quan trọng là bạn phải biết mình muốn phân tích gì và các chỉ số mà bạn muốn trình bày. Một số bước dưới đây có thể giúp ích cho bạn khi bắt tay vào làm.

Tìm dự án để phân tích:

  • Sau khi nắm vững các khái niệm SQL và blockchain cơ bản, bạn có thể bắt đầu phân tích bất cứ dự án nào. 

  • Khi xem xét một dự án, bạn cần hiểu cấu trúc và flow di chuyển dữ liệu liên quan đến hợp đồng thông minh. Bạn có thể bắt đầu bằng việc tìm hiểu các chức năng, sự kiện và tổng quan giao dịch liên quan đến giao thức hoặc bạn có thể thử trải nghiệm sản phẩm và kiểm tra giao dịch với chính ví của mình. 

  • Khi bạn đã hiểu rõ về giao dịch lịch sử và flow của giao thức, bạn có thể bắt đầu xây dựng các chỉ số có ý nghĩa.

Chia sẻ với cộng đồng:

Dune có một cộng đồng sôi động trên Discord, ở đây những vấn đề của bạn liên quan đến việc query dữ liệu sẽ được giải đáp bởi động đồng hoặc team Dune hoặc bạn có thể củng cố lại kĩ năng của mình bằng cách hỗ trợ người khác hoặc săn các giải thưởng phân tích dữ liệu. Khi hoàn thành dashboard, bạn có thể chia sẻ trong kênh Discord và trên Twitter. 

6. Tổng kết

Phần trên là tất cả hướng dẫn cơ bản liên quan đến việc sử dụng Dune Analytics. Vì công cụ này đòi hỏi khả năng hiểu về blockchain cũng như dùng SQL nên sẽ gây khó khăn trong giai đoạn ban đầu. Tuy nhiên, sau khi đã có thể tạo ra sản phẩm đầu tiên với Dune, Coin68 tin rằng bạn sẽ thấy những giá trị mà tool này mang lại trong quá trình tìm hiểu và đầu tư các dự án blockchain.

-22/06/2023
logo-footer
Kết nối với chúng tôi
    Coin68 là nơi cung cấp cái nhìn tổng quan nhanh và chính xác nhất về tiến bộ công nghệ blockchain trên toàn cầu.
      Copyright © 2016 by Coin68