Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Data Statistics #699

Open
Danie0918 opened this issue Jun 13, 2024 · 6 comments
Open

Data Statistics #699

Danie0918 opened this issue Jun 13, 2024 · 6 comments
Assignees
Labels

Comments

@Danie0918
Copy link
Contributor

PRD:https://u7vn34.axshare.com/

@poor-defined
Copy link
Contributor

  • UI 26 jun

@Kirl70
Copy link

Kirl70 commented Jun 26, 2024

Design Draft(13-1--13-5):
https://www.figma.com/design/6XNoimRDbFTTNm016rbIdU/Magickbase?node-id=39644-61556&t=9CXwBUQI9Lvs1toq-1
image

@rabbitz
Copy link

rabbitz commented Jul 2, 2024

@rabbitz
Copy link

rabbitz commented Jul 31, 2024

  1. ckb transaction tracking
# 接口
https://blockchain-stats-staging.magickbase.com/api/v1/transaction_tracking

# 参数
duration: 枚举值可选类型为 day week month year all, 不带参数默认值为 all
  • 统计方式
    • 确定起始时间: 从创世区块的时间戳(blocktimestamp)或数据库记录的最后一条时间戳作为 start_timestamp,然后将 start_timestamp 加 1 小时并取整作为 end_timestamp 进行统计
    • 获取交易IDs:在统计时间范围内,获取所有交易ID (transaction_ids),并将其切分为每组100条的请求,每组请求结果计算为 [{ transactionId: outputCapacities - inputCapacities }...], 请求完则合并 transactionId 对应计算值
    • 计算交易总数和交易量:
      • 获取到的 transactionId 数量即为1小时内的交易总数
      • 将 outputCapacities - inputCapacities 的结果累加,即为1小时内的交易量
  1. hot contracts
# 接口
https://blockchain-stats-staging.magickbase.com/api/v1/hot_contracts
  • 统计方式
    • 取 udts 数据,按照 h24_ckb_transactions_count 降序取前 10 条数据
  1. top senders
# 接口
https://blockchain-stats-staging.magickbase.com/api/v1/top_senders
  • 统计方式
    • 更新时间: 整点小时
    • 确定时间范围:
      • 获取当前时间的整点数,例如 10:36 则取 10:00
      • 往前推24小时,将时间范围内的数据按1小时间隔进行切片
    • 数据获取和存储
      • 每1小时时间间隔内的数据按照地址 addressId 统计 inputCapacities 和 outputCapacities,并分别存入 Redis
      • 对应的 addressId 的 inputCapacities 和 outputCapacities 进行累加
    • 计算得分并排序
      • 将 inputCapacities - outputCapacities 的值作为 score,addressId 作为 key,放入 Redis 中进行排序
    • 获取前十名
      • 取 score 不为 0 的前10个值作为 topSenders
      • 取 score 不为 0 的倒序前10个值作为 topReceivers
  1. top receivers
# 接口
https://blockchain-stats-staging.magickbase.com/api/v1/top_receivers

@rabbitz
Copy link

rabbitz commented Aug 21, 2024

  1. token analyzer
  • 数据查询及统计范围: 类型为 sudt, xudt, 和 xudt_compatible 的已发布 udt,统计当前日期近一年的数据

  • 统计方式

    • 更新时间: 每天 UTC 0 点统计前一天的数据。
    • 交易图表
      • 获取当前时间对应的 UTC 0 点作为结束时间,并将前一天的 UTC 0 点作为开始时间。
      • 针对 udt 进行交易统计,计算对应的交易数 (transactions_count)。
      • 统计 inputUdtAmounts 和 outputUdtAmounts,并计算 outputUdtAmounts - inputUdtAmounts 作为 transactions_udt_amount
    • 持有人图表
      • 获取当前时间对应的 UTC 0 点作为结束时间,筛选结束时间之前与 udt type_hash 和 cell_type 一致的活跃 cell_outputs
      • 按地址 (addressId) 累加对应的 udtAmount,地址总数即为 holdersCount。
    • Top 持有人图表
      • 获取当前时间对应的 UTC 0 点作为结束时间,筛选结束时间之前与 udt type_hash 和 cell_type 一致的活跃 cell_outputs,累加 udtAmount 作为 totalUdtAmount。
      • 分别取出 udtAmount 排名前 100,50,20,10 的地址,并计算其百分比

    5.1 search udt

    # 接口
    https://blockchain-stats-staging.magickbase.com/api/v1/udts/search
    
    # 参数
    q: string 类型
    • 对 full_name 和 symbol 进行模糊匹配, 或者 type_hash 进行完全匹配

    5.2 udt indicators

    # 接口
    https://blockchain-stats-staging.magickbase.com/api/v1/udts/:type_hash/indicators

@rabbitz
Copy link

rabbitz commented Aug 21, 2024

  1. top holders
# 接口
https://blockchain-stats-staging.magickbase.com/api/v1/top_holders
  • 统计方式
    • 更新时间: 整点小时
    • 确定时间范围: 当前时间整点小时近 24 小时

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: 📌CurrentWeek
Development

No branches or pull requests

4 participants