ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

free-stockdb镜像协议详解:manifest.txt清单驱动的增量同步设计

free-stockdb镜像协议详解:manifest.txt清单驱动的增量同步设计 free-stockdb镜像协议详解manifest.txt清单驱动的增量同步设计【免费下载链接】free-stockdb面向 A 股日K、分钟K与ETF分钟数据的本地量化引擎集成增量同步、本地缓存、复权、批量查询、回测与指标计算。项目地址: https://gitcode.com/GitHub_Trending/fr/free-stockdbfree-stockdb 是一款面向 A 股日K、分钟K与 ETF 分钟数据的本地量化数据引擎。它的数据更新不依赖任何远程行情接口而是由一套简洁可靠的镜像协议完成以 manifest.txt 清单驱动的增量同步——首次拉取全市场数据之后每天只下载发生变化的文件并用 SHA-256 逐文件校验完整性。读懂这套协议你就能自建镜像、切换数据源也理解双击更新背后的全部机制。为什么用镜像协议而不是逐只调用行情 API全市场分钟线回测的瓶颈从来不在策略代码而在数据工程全市场 7000 只股票、多周期逐只请求受接口限频与风控约束实测需要数天远程接口无法自证数据内容未被截断或篡改每次全量拉取都浪费带宽与时间。镜像协议把取数据变成同步文件镜像端是一份数据文件 清单的静态目录同步端只做三件事——对比清单、下载差异、校验落盘。对比项远程 API 逐只拉取manifest.txt 增量同步首次全量3~5 天受频率限制一次性批量下载Zstd 压缩传输每日更新再次全市场拉取只下载清单中变化的文件完整性保障无文件大小 SHA-256 双重校验运行依赖Token、限频、IP 风控任意本地目录或 HTTP(S) 地址协议三要素镜像目录、sync_url.txt、同步器free-stockdb 的数据同步由三部分构成彼此完全解耦镜像根目录存放全部数据文件和manifest.txt清单可以是局域网共享目录、内网服务器或云存储节点sync_url.txt一行配置的指针第一条非注释行即镜像根目录换源只改这一个文件stockdb_updater 同步器读取清单、逐文件比对与下载数据落盘到本地./data目录。镜像根目录支持三种来源配置为空时同步器不会发起任何请求来源类型示例本地目录D:/stockdb-mirrorfile:// 路径file:///D:/stockdb-mirrorHTTP(S) 地址任意你信任的 HTTPS 节点逐行拆解 manifest.txt 清单格式镜像根目录必须包含 UTF-8 文本文件manifest.txt每行三个字段、空格分隔# sha256 size path 1d5e4a2b...9abcd 4096 000001.ldb字段含义第 1 列 sha256文件内容的 64 位哈希指纹第 2 列 size文件字节数第 3 列 path相对镜像根目录的路径以#开头的行是注释空行会被跳过。解析器内建了严格的安全规则cpp/src/updater.cppsha256 必须恰好 64 个字符否则整份清单判定无效路径必须是相对路径绝对路径或包含..的路径立即拒绝杜绝路径穿越任何一行格式非法都会终止本次同步宁可不更新不同步坏数据。增量同步的完整执行流程执行stockdb_updater --sync后同步器按以下顺序工作从 sync_url.txt 读取镜像根目录也可用--source参数临时覆盖获取manifest.txt清单HTTP 下载或本地读取逐行比对若本地文件已存在且大小与 SHA-256 双双匹配直接跳过——这正是增量的核心需要更新的文件先下载到.part后缀的临时文件不触碰正式文件对临时文件先校验大小、再计算 SHA-256任一项失败立即删除临时文件校验通过后将临时文件原子重命名为正式文件本地永远不存在写一半的数据。完成后同步器会打印一份同步报告清单文件总数、实际更新数、失败数、传输字节数与耗时cpp/tools/main_updater.cpp。⚡ 效果直观体现首次同步下载清单里全部文件次日若只有 2 个文件变化就只下载这 2 个文件其余全部秒级跳过。安全与完整性协议内建的四道防线防线机制路径穿越相对路径白名单校验拒绝..cpp/src/updater.cpp传输损坏先比对大小、再比对 SHA-256任一项失败即丢弃该文件半成品文件.part临时文件 原子 rename 替换信任边界公网镜像强制建议 HTTPS校验和只证明内容一致不代替对发布者的信任同步完成后还可随时复核stockdb_updater --verify会重新读取清单对本地已同步文件逐一重算哈希任何不匹配都会明确报出文件名cpp/src/updater.cpp。镜像发布者指南如何生成与更新清单如果你想自建镜像节点内网服务器、局域网共享目录、网络存储都可以规范如下完成数据快照组织好 Zstd 压缩的数据文件与 LevelDB 数据库文件为每个文件生成 SHA-256 与字节数写入manifest.txt先上传数据文件最后更新 manifest.txt——清单是总开关必须最后就位避免客户端读到半完成清单镜像包含 LevelDB 文件时清单必须涵盖同一快照中的CURRENT、MANIFEST-*、.ldb及必要日志文件客户端在同步期间应停止本地 stockdb 服务同步完成后再启动保证快照一致性。完整的生成与发布规范见 docs/DATA_SOURCE.md。同步完成之后本地数据即插即用数据落盘后查询、计算与回测全部走本地数据集与远程链路彻底解耦Python SDK、HTTP API、Excel/WPS、HTML 网页、AI MCP 五种调用方式共用同一份数据服务默认监听127.0.0.1:7899stockdb.conf。离线环境下已同步的数据依然可以完整查询与计算——这是镜像协议带来的最实在的收益。核心文件速查文件职责sync_url.txt镜像根目录配置换源只改这里docs/DATA_SOURCE.md镜像协议与清单格式官方规范cpp/include/stockdb/updater.hpp同步器 API 定义增量同步sync_incremental/ 校验verify_synced_filescpp/src/updater.cpp清单解析、下载、SHA-256 校验与原子替换实现cpp/tools/main_updater.cpp命令行入口--sync/--verify/--source等参数一句话总结manifest.txt 是一份带指纹的文件清单先比指纹、只下差异、临时文件、原子替换四步走完就是 free-stockdb 让全市场数据 30 分钟内从零到可运行的底层原因。【免费下载链接】free-stockdb面向 A 股日K、分钟K与ETF分钟数据的本地量化引擎集成增量同步、本地缓存、复权、批量查询、回测与指标计算。项目地址: https://gitcode.com/GitHub_Trending/fr/free-stockdb创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表