2023 SUI 区块链数据索引指南

  • Chainbase
  • 更新于 2023-11-09 18:15
  • 阅读 1107

在快节奏的区块链技术世界中,数据管理可能看起来令人生畏。合理利用工具是一个捷径,能够帮助你轻松地浏览链上生成的海量数据,甚至把它变成一个看板!

作者:masterdai

基本情况概述

索引是区块链生态系统中的一种基本工具,它简化了数据的组织和检索。索引提高了效率,增强了用户体验,简化了数据分析,并确保了可伸缩性。

通过促使快速数据访问,它支持实时应用程序,并优化了交互,这对于像 DeFi 这样的平台来说尤为重要。索引还在各种任务中发挥作用,从检测欺诈活动到了解用户行为。

随着区块链数据量的增加,索引确保了应用的程序性能保持高水平。

在本指南中,我将演示开发人员如何使用几个 SQL 示例有效地访问链上数据。用到的工具 Chainbase 是 Sui 区块链生态系统中唯一的数据云索引提供商,实现高效数据检索方面发挥着关键作用。这种工具的使用将为开发者提供另一种简单的思路,帮助您利用索引功能提高在 Sui 区块链内的数据交互和分析。

关于 SUI

Sui 是一款开创性的智能合约平台,通过以可编程实体为中心,彻底改变了传统的区块链模型。

与传统的基于账户的存储模型不同,在这种模型中,每个账户都包含一个键-值存储库,Sui 的方法是以对象为中心,将其作为数据存储的基本单元。

这些对象是直接在区块链上存储数据的数字实体。开发人员可以定义、创建和管理这些对象,它们代表用户级别的资产。每个对象都具有独特的属性,包括所有权,这些属性可以根据创建对象的智能合约的治理逻辑进行更新。

Sui 的这种面向对象的数据模型允许数字资产及其属性独立于智能合约存在于链上。这种创新为区块链领域提供了更灵活的方法,使我们与数字资产能进行更复杂和动态的交互。

先决条件

  1. 一个好用的 API 网站,本文内使用的是 Chainbase
  2. 一个集成开发环境(IDE)。我们的示例以 JavaScript 显示,您可以使用 VS Code 作为 IDE。

获取 API 密钥

密钥将用于对 API 的请求进行身份验证,需要提前准备。

SQL 示例

登录到你的工具后台

执行以下 SQL 查询以检索所需的数据:

查询 1:查找最活跃的地址

想要在区块链中识别交易最多的地址 吗?以下 SQL 查询可以帮助您:

SELECT
    sender,
    count() as total
FROM
    sui.transactions
GROUP BY
    sender
ORDER BY
    total DESC

查询 2:最常用的模块和事件类型

要识别最常用的模块和事件类型,请使用以下查询:

SELECT
  module,
  event_type,
  COUNT(*) AS total
FROM
  sui.events
GROUP BY
  event_type,
  module
ORDER BY
  total DESC;

查询 3:筛选数据提取

想要查找特定交易内容 吗?使用以下 SQL 查询进行搜索:

select
    *
from
    sui.transactions
where
    transaction_content like "%fuddies%%orderbook%"
order by
    id DESC
limit
    100

查询 4:获取特定事件数据

要从 Sui 区块链中检索特定事件数据,请执行以下查询:

SELECT
    id,
    module,
    sender,
    transaction_digest,
    event_type
FROM
    sui.events
WHERE
    event_type LIKE "%0xac176715abe5bcdaae627c5048958bbe320a8474f524674f3278e31af3c8b86b%"
ORDER BY
    id DESC
LIMIT
    100

生成 API

一旦您有了检索所需数据的 SQL 查询,下一步是生成一个 API 请求以获取实时的 Sui 区块链数据。请按照以下步骤操作:

chainbases-api.png

步骤 1:如果您尚未安装 Node.js 和 Axios 库,请先安装它们。

步骤 2:使用以下代码片段进行 API 调用:

const axios = require('axios');

axios.post('https://api.chainbase.online/v1/dw/query', {"query":"SELECT\n    id,\n    module,\n    sender,\n    transaction_digest,\n    event_type\nFROM\n    sui.events\nWHERE\n    event_type LIKE \"%0xac176715abe5bcdaae627c5048958bbe320a8474f524674f3278e31af3c8b86b%\"\norder by\n    id desc\nlimit\n    100"}, {
headers: {
'x-api-key': '[api-key]'
}
})
.then(response => {
const data = response.data.data;
console.log(data);
})
.catch(error => {
console.error(error);
});

此代码片段利用 Axios 库向 Chainbase API 端点发送 POST 请求( https://api.chainbase.online/v1/dw/query )。 SQL 查询包含在请求负载中,开头的 “x-api-key” 用于身份验证。

检索和打印 Sui 区块链数据

在进行 API 调用后,您将收到一个包含实时 Sui 区块链数据的响应。请按照以下步骤提取并打印数据:

  1. 使用 response.data.data 访问响应中检索到的数据。
  2. 通过将数据打印到控制台日志中显示数据。

运行 node 'filename'.js 以执行代码。

{
"event_type": "0xbc3df36be17f27ac98e3c839b2589db8475fa07b20657b08e8891e3aaf5ee5f9::mint_event::MintEvent<0xac176715abe5bcdaae627c5048958bbe320a8474f524674f3278e31af3c8b86b::fuddies::Fuddies>",
"id": "306968",
"module": "fuddies",
"sender": "0x65afcd7679a1570f11b3865d8c0d13e070b4cf7587af11c3eacd98e97b6252a3",
"transaction_digest": "6GMShTdQyeLzieJBLyVjrJn7nZTeFKEEnhRDTKZd6dqX"
},
{
"event_type": "0xbc3df36be17f27ac98e3c839b2589db8475fa07b20657b08e8891e3aaf5ee5f9::mint_event::MintEvent<0xac176715abe5bcdaae627c5048958bbe320a8474f524674f3278e31af3c8b86b::fuddies::Fuddies>",
"id": "304865",
"module": "fuddies",
"sender": "0x65afcd7679a1570f11b3865d8c0d13e070b4cf7587af11c3eacd98e97b6252a3",
"transaction_digest": "FDPsGKnux8gCDcPWbKqkLbg28bnu6A16NUdsQN9LQb5x"
},
{
"event_type": "0xbc3df36be17f27ac98e3c839b2589db8475fa07b20657b08e8891e3aaf5ee5f9::mint_event::MintEvent<0xac176715abe5bcdaae627c5048958bbe320a8474f524674f3278e31af3c8b86b::fuddies::Fuddies>",
"id": "304864",
"module": "fuddies",
"sender": "0x65afcd7679a1570f11b3865d8c0d13e070b4cf7587af11c3eacd98e97b6252a3",
"transaction_digest": "FDPsGKnux8gCDcPWbKqkLbg28bnu6A16NUdsQN9LQb5x"
},
{
"event_type": "0xbc3df36be17f27ac98e3c839b2589db8475fa07b20657b08e8891e3aaf5ee5f9::mint_event::MintEvent<0xac176715abe5bcdaae627c5048958bbe320a8474f524674f3278e31af3c8b86b::fuddies::Fuddies>",
"id": "304863",
"module": "fuddies",
"sender": "0x65afcd7679a1570f11b3865d8c0d13e070b4cf7587af11c3eacd98e97b6252a3",
"transaction_digest": "FDPsGKnux8gCDcPWbKqkLbg28bnu6A16NUdsQN9LQb5x"
},
...

通过前端演示体验 Sui 仪表板

现在!让我们一起尝试使用 Sui 仪表板的前端演示,将您对 Sui 的了解提升到新的水平。

该演示在 GitHub 上提供,可帮助您亲身体验 Sui 界面,熟悉其功能和能力。请访问此处查看演示

chainbase-sui-dashboard.11.png

写码愉快!

原文链接:Guidelines for Indexing SUI Blockchain Data

  • 原创
  • 学分: 14
  • 分类: Sui
  • 标签: data 
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Chainbase
Chainbase
0x7C46...d02D
Chainbase 是领先的 Web3 数据基础设施,帮助开发者轻松访问加密数据,并支持对数据的大规模索引、转换和使用。