首页Home 产品Products 服务Services 案例Work 知识库Blog 关于About 联系Contact
KNOWLEDGE · 2026-08

Solana 生态数据自动化采集:RPC 与第三方数据源聚合实践

Solana data automation: RPC and third-party aggregation in practice

#Solana #RPC #GitHub Actions #数据采集

背景

需要构建一个 Solana 生态的自动化数据报告系统:每日采集链上数据、聚合第三方指标、 输出可读报告。本机在大陆网络环境,直连 Solana RPC 与多数数据源要么超时要么被墙。 解决方案是把定时任务放到 GitHub Actions 的海外 runner 上执行。

架构:三个数据层

  • 链上层:Solana RPC 节点(getSlot / getBalance / getEpochInfo 等),采集区块高度、验证者状态、链上活动。
  • 生态层:DeFiLlama 协议 TVL、稳定币数据。
  • 市场层:Gate.io 等交易所行情(价格、成交额)。

GitHub Actions 海外 runner 的优势

ubuntu-latest runner 部署在 GitHub 的海外基础设施,天然绕开大陆网络限制: solana rpcapi.llama.fiapi.gateio.ws 都能直连。 这是大陆开发者在受限网络环境下最省事的「免费海外服务器」。

workflow 要点

name: Daily RPC collect

on:
  schedule:
    - cron: "0 2 * * *"   # 每天 02:00 UTC
  workflow_dispatch:

jobs:
  collect:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: "3.12"
      - run: pip install requests
      - name: Collect data
        run: python scripts/collect.py
      - name: Commit and push
        run: |
          git config user.name "bot"
          git config user.email "bot@toolgen.xyz"
          git add .
          git diff --cached --quiet || git commit -m "data: daily update"
          git push

输出格式:一鱼三吃

同一份采集结果输出三种格式,覆盖不同消费场景:

  • Markdown:GitHub 直接渲染,人类阅读。
  • JSON:机器可读,供下游程序消费。
  • HTML:部署到 GitHub Pages,展示为在线仪表盘。

踩过的坑

  • RPC 限流:公共 RPC 端点有速率限制,采集脚本要加退避重试,控制请求频率。
  • 数据源不稳定:第三方 API 偶尔 5xx,脚本要容错:单源失败不影响整体输出,报告中标注数据源状态。
  • 定时任务静默失败:workflow 失败不发通知。建议加 actions/github-script 在失败时创建 issue 告警。
  • commit 循环:自动提交必须幂等(有变更才提交),否则每天触发新 workflow 形成循环。

效果

系统稳定运行后:每日报告自动生成并部署,Markdown 报告在仓库可读, HTML 仪表盘在线可访问,全程零人工干预。这套「海外 runner + 定时任务 + 自动部署」 的组合可以复用到任何需要定时抓取数据的场景。

给 Agent 的任务书,要具体到「能写失败测试」才算合格;给维护者的 PR, 要具体到「红→绿证据链」才算专业。