Trên không gian blockchain, các dApp muốn hoạt động thì phải tương tác với dữ liệu được lưu trữ trong blockchain mà nó xây dựng trên. Nói cách khác là một dApp cần phải truy vấn được dữ liệu từ blockchain nền tảng. 

Việc truy vấn dữ liệu là không đơn giản, thậm chí ngày càng phức tạp hơn dựa trên khối lượng dữ liệu khổng lồ, được lưu trữ rải rác trong từng block. Để giúp các dApp dễ dàng truy vấn vào dữ liệu trong Blockchain, Indexing là một công cụ hữu ích.

Trong bài viết này, chúng ta sẽ tìm hiểu về khái niệm Indexing trong blockchain, về những cơ hội và thách thức của mảnh ghép này.

Indexing Và Vấn Đề Truy Vấn Dữ Liệu Blockchain

Indexing hay nói một cách đầy đủ là “Blockchain data indexding” – lập chỉ mục dữ liệu blockchain là quá trình tạo ra một cơ sở dữ liệu mới từ dữ liệu có sẵn trên blockchain. 

Tại sao lại cần đến Data indexing?

Blockchain là một hệ thống phân tán lưu trữ dữ liệu, và truy cập trực tiếp vào dữ liệu này một cách trực tiếp có thể tốn rất nhiều thời gian và tài nguyên. Vì vậy, Indexing là các dịch vụ cung cấp một bản sao ưu việt hơn dựa trên cơ sở dữ liệu truyền thống, cho phép truy vấn dữ liệu với tốc độ cao và dễ dàng hơn.

Những hạn chế trong việc truy vấn dữ liệu blockchain:

  • Dữ liệu bị phân cấp: Điều này có lợi về mặt phi tập trung, nhưng dự liệu được phân phối trên nhiều nút khác nhau thay vì tập hợp lại tại một nơi sẽ gây khó khăn trong việc truy vấn và lọc dữ liệu
  • Thiếu ngôn ngữ truy vấn hiệu quả: Mỗi loại cơ sở dữ liệu sẽ phù hợp với những ngôn ngữ truy vấn nhất định. Ví dụ, các cơ sở dữ liệu tập trung thì phù hợp với ngôn ngữ truy vấn SQL. Còn đối với cơ sở dữ liệu phân tác như trên blockchain thì không phù hợp với ngôn ngữ truy vấn nào cả. Vì thế nên nó gây khó khăn cho việc truy vấn dữ liệu
  • Hạn chế API: Các API hiện tại vẫn còn hạn chế trong việc cung cấp khả năng truy vấn dữ liệu với độ phức tạp cao.

Tổng kết lại, có thể liên tưởng về vai trò của data indexing giống như việc lập một mục lục cho một cuốn sách dày hàng nghìn trang. Nếu không có mục lục, người đọc phải lật từng tờ giấy để tìm kiếm nội dung mà mình quan tâm, trong khi nếu như đánh số trang và sau đó tạo mục lục cho quyển sách thì việc tìm kiếm thông tin sẽ trở nên dễ dàng hơn rất nhiều.

Quy trình hoạt động của một nền tảng Data indexing:

  • Bước 1: Trích xuất (thu thập) dữ liệu từ blockchain nền tảng, sau đó lưu trữ trong một cơ sở dữ liệu mới. Các dữ liệu được thu thập có thể bao gồm các thông tin chi tiết về giao dịch, địa chỉ của các hợp đồng,…
  • Bước 2: Lập chỉ mục (chỉ mục hóa) dữ liệu. Những phương pháp lập chỉ mục phổ biến ví dụ như:
    + Lập chỉ mục các token và NFT để theo dõi các hoạt động giao dịch, khối lượng giao dịch, nguồn cung,…
    + Lập chỉ mục địa chỉ ví, địa chỉ hợp đồng thông minh để theo dõi số dư, lịch sử giao  dịch,…
    + Lập chỉ mục thông tin giao dịch bao gồm người gửi, người nhận, dấu thời gian, hashcode,…
  • Bước 3: Các nền tảng Data indexing cung cấp API cho các dApp.
  • Bước 4: Thông qua đó, các dApp có thể truy cập vào cơ sở dữ liệu thứ cấp được tạo nên từ bước 2 một cách dễ dàng, thay vì trực tiếp truy vấn dữ liệu từ blockchain.

Mặc dù blockchain có tính phân cấp, bảo mật và minh bạch cao nhưng vẫn tồn tại hạn chế về việc thiếu những tính năng giúp truy xuất dữ liệu một cách trực tiếp và dễ dàng. Do đó, các nhà phát triển dApp nếu muốn truy vấn dữ liệu blockchain sẽ phải sử dụng dịch vụ từ các nguồn thứ cấp, đến từ các dự án Indexing. 

Vậy trên thị trường hiện nay đang có những dự án Indexing nào nổi bật?

Một Số Dự Án Data Indexing Đầu Ngành

The Graph – Graph Protocol

Các dApp có thể tận dụng công cụ blockchain data indexing của The Graph là Subgraph. Về cốt lõi, Subgraph là một API mở cho phép các nhà phát triển dApp truy xuất dữ liệu từ các blockchain như Ethereum và các EVM-chain khác bằng ngôn ngữ truy vấn dữ liệu mà họ phát triển là GraphQL. 

Có thể hiểu, vai trò của The Graph giống như là một Google của blockchain, người dùng có thể tìm kiếm bất kỳ dữ liệu nào trên Ethereum thông qua The Graph mà chỉ cần thực hiện những truy vấn đơn giản.

Subgraph là các API cho phép user truy cập vào data của trên blockchain. Với mỗi giao thức, The Graph lại cung cấp những subgraph khác nhau.

Graph Protocol hoạt động được nhờ 3 trụ cột sau:

  • Indexers: Là những người vận hành node cho Graph Protocol, đồng thời nhận reward bằng emissions token GRT để khuyến khích cho việc vận hành node. Những indexers này sẽ phải stake token GRT để tham gia vào quá trình cung cấp dịch vụ lập chỉ mục và xử lý truy vấn. GRT mà họ stake sẽ bị tịch thu nếu cung cấp dữ liệu độc hại, không chính xác.
  • Curators: Những người này có vai trò tìm kiếm những subgraph cần được lập chỉ mục. Từ đó nhận GRT như phần thưởng khuyến khích.
  • Delegators: Những người này gián tiếp tham gia vào quá trình vận hành Graph Protocol, nhưng không phải chạy node mà ủy quyền GRT lại cho các Indexers.

Bất cứ ai cũng có thể tham gia vào mô hình của Graph Protocol, lựa chọn trở thành một trong 3 vai trò trên. Cuối cùng, người dùng của Graph – các dApp cần sử dụng dữ liệu từ blockchain sẽ tích hợp API mà The Graph cung cấp, sau đó trả phí như việc sử dụng một dịch vụ.

Subquery Network

Subquery Network cũng là một dự án cung cấp dịch vụ dữ liệu tương tự, nhưng phục vụ chủ yếu trên hệ sinh thái Polkadot. Subquery cung cấp những công cụ chủ yếu như sau:

  • SubQuery’s SDK: Subquery SDK là một bộ công cụ phần mềm (Software Development Kit) được Subquery Network cung cấp, giúp nhà phát triển xây dựng và triển khai các chỉ mục dữ liệu của riêng họ trên Subquery Network. 
  • SubQuery Projects: Là chức năng cho phép các lập trình viên public dự án Subquery của mình lên SubQuery Explorer để được lưu trữ và sử dụng một cách riêng tư hoặc cho cộng đồng cùng sử dụng.
  • SubQuery Explorer: Đây là một Market Place, nơi các SubQuery Projects được niêm yết lên và người dùng có nhu cầu sử dụng dữ liệu thì sẽ lên Subquery Explorer, lựa chọn các sản phẩm được cung cấp và trả phí để sử dụng.

Subquery Network cũng được vận hành một cách tương tự như The Graph, với một mô hình bao gồm sự tham gia của:

  • RPC Provider: Những người chạy node cho Subquery Network, những người này sẽ nhận lại SQT là phần thưởng. Cần stake SQT để tham gia.
  • Data Indexers: Duy trì các dự án SubQuery chất lượng, sau đó nhận SQT là phần thưởng. Cần stake SQT để tham gia.
  • Delegators: Ủy quyền  SQT cho những đơn vị trên.

Cuối cùng là người dùng – consumer – sẽ sử dụng các SubQuery Project được cung cấp và trả phí bằng SQT cho việc sử dụng dịch vụ.

Kết luận

Trên đây là những thông tin cơ bản về Blockchain data indexing và các dự án nổi bật trong ngành. Đây là một mảnh ghép cơ sở hạ tầng không thể thiếu đối với sự phát triển chung của các dApp trên thị trường crypto, đồng thời mở ra cơ hội để những người dùng nhỏ lẻ có thể đóng góp vào các giao thức indexing để kiếm phí dịch vụ