Timestamp GIT Secure your prior art without exposing code

← All posts

2026-09-14

安装 GitHub 应用,自动为你的提交添加时间戳

安装 GitHub 应用,自动为你的提交添加时间戳
timestamp git blockchain proof

安装 GitHub App,自动为你的提交添加时间戳

你已经自动化了构建、测试、代码检查和部署。那么,当你需要证明在先技术时,为什么还要手动为提交添加时间戳呢?困难的方式是逐个提交运行协议工具,并自己跟踪证明文件。Timestamp GIT 用一个托管式 GitHub App 取代了这一切,它会自动为每个提交添加时间戳,并将其锚定到比特币区块链上。

安装完成后的工作流刻意设计得平淡无奇:一次性安装 GitHub App,选择你要监控的仓库,然后让夜间流水线创建 .ots 证明回执。开发者机器上无需安装 CLI,发布前无需记住任何手动命令,也没有脆弱的本地时间戳存档。

本文涵盖一次性设置、从提交到比特币锚定之间发生的过程、如何监控证明,以及让你的证据经得起法庭检验的实践方法。

一次性设置:连接 GitHub App

自动化始于一次安装。之后,用于提交时间戳的 GitHub App 会为你完成重复性工作。

1. 安装 Timestamp GIT GitHub App

从 Timestamp GIT 仪表板将应用安装到你的个人账户或组织上。安装过程中,你像授权任何其他 GitHub App 一样授予仓库访问权限。

在标准模式下,应用需要:

  • 对源仓库的读取权限。 GitHub 不提供仅提交哈希的权限,因此应用至少需要只读权限来检测提交哈希。
  • 对目标仓库或分支的写入权限。 证明文件需要有存放位置。可以是源仓库中专用的 timestamps 分支,也可以是单独的影子仓库。

即使拥有读取权限,应用也只会读取被监控仓库的 HEAD 提交哈希。它不会读取源文件、差异、议题或拉取请求内容。

2. 选择要监控的仓库

安装后,选择应接收自动时间戳的仓库。公共仓库可在免费计划中使用。私有仓库需要付费的 Pro 或 Enterprise 计划,具体取决于你的安全和合规需求。

无需修改任何应用代码。你不需要在开发者机器上安装任何东西,你的团队也不需要改变他们的提交工作流。

3. 选择证明交付方式

默认情况下,应用会创建一个专用的 Git 分支或影子仓库来存放证明工件。这样可以将证据与主源历史分开,避免用 .ots 文件污染拉取请求。

企业 ZK 模式:零代码访问

如果你的代码是专有的、受监管的或处于隔离网络中,企业 ZK 模式是更严格的选择。一个 12 行的 GitHub Action 在你的基础设施上运行,只将提交哈希推送到 Timestamp GIT API。

在此模式下,Timestamp GIT 应用完全不需要对你的源仓库拥有读取权限。你安装 GitHub Action,只有提交哈希离开你的环境。你的源代码永远不会离开。

可选:Docker 自托管模式

为了获得最大控制权,Timestamp GIT 也以 Docker 镜像的形式提供。这对于隔离环境或必须将所有基础设施保留在本地的组织非常有用。

一个最小的 Compose 配置如下:

services:
  timestampgit:
    image: rue1401/timestampgit:prod
    ports:
      - "8080:8080"
    volumes:
      - ./data:/app/data
    restart: unless-stopped
  valkey:
    image: valkey/valkey:8
    restart: unless-stopped

使用以下命令启动:

docker compose pull
docker compose up -d
docker compose logs -f timestampgit

应用可在 http://localhost:8080 访问。首次启动时,设置向导会引导你连接 GitHub App 并配置实例。

自动化流水线:从提交到比特币锚定

GitHub App 安装完成后,时间戳流程会自动运行。

第 1 步:提交检测

在标准模式下,GitHub App 通过 webhook 检测新提交。在企业 ZK 模式下,你的 GitHub Action 在 CI/CD 过程中将提交哈希推送到 API。

无论哪种方式,进入 Timestamp GIT 流水线的唯一数据就是提交哈希。

第 2 步:夜间批处理和比特币锚定

提交哈希存储在内存键值存储中以进行批处理。每晚,一个 cron 工作进程会:

  1. 将所有待处理的提交哈希分组。
  2. 为每个仓库创建清单文件。
  3. 从每日批次构建 Merkle 树。
  4. 使用公共 OTS 日历创建 OpenTimestamps 证明。
  5. 将 Merkle 根锚定到比特币区块链中。

每日的 Merkle 根就是被嵌入比特币的内容。一旦该交易确认,哈希就被永久冻结在特定的比特币区块中。

第 3 步:证明交付

比特币交易确认后,Timestamp GIT 会将清单和 .ots 回执文件推送回专用的时间戳分支或影子仓库。

比特币确认通常在夜间批次提交后大约需要三小时。这意味着白天做出的提交通常会在第二天获得证明文件。

第 4 步:状态与验证

你可以从仓库状态仪表板查看锚定历史。公共仪表板显示:

  • 证明持久性
  • 最早锚定日期
  • 每日锚定规律性
  • 比特币区块和交易数据
  • 日历热力图
  • 可下载的审计 CSV 和 PDF 证书

对于程序化访问,提供了公共状态端点:

# 最后锚定的比特币区块信息
curl -s https://timestampgit.dev/api/statusLast/acme/payments-api

# 已提交和已盖戳的提交总数
curl -s https://timestampgit.dev/api/statusCount/acme/payments-api

# 用于 Shields.io 徽章的综合摘要
curl -s https://timestampgit.dev/api/statusSummary/acme/payments-api

该产品还提供了一个经过认证的徽章端点,让你可以通过一次请求生成 README 徽章。对于私有仓库,徽章 URL 包含加密的 HMAC,只有授权用户才能看到状态。

监控与故障处理

自动化并不意味着可以忽视系统。你应该像监控 CI 健康状况一样监控锚定规律性。

状态仪表板是发现缺失日期的最快方式。如果夜间批次没有产生证明,缺失的日期会在日历热力图和每日规律性视图中显示为空白。

对于程序化检查,上述端点可以接入你的内部监控:

  • 使用 /api/statusLast/{user}/{repo} 确认最近的比特币锚定。
  • 使用 /api/statusCount/{user}/{repo} 将已盖戳的提交数与预期提交数进行比较。
  • 使用 /api/audit/{user}/{repo} 以 CSV 格式下载完整的审计台账。

示例:

# 下载完整的审计台账
curl -OJ https://timestampgit.dev/api/audit/acme/payments-api

# 下载特定日期的 PDF 证书
curl -OJ https://timestampgit.dev/api/report/acme/payments-api/2026-09-13

由于系统在午夜批处理哈希,比特币确认大约需要三小时,因此在证明文件出现在时间戳分支之前,不要将新推送的提交视为已完成时间戳。

最后,任何人都可以独立地对照比特币区块链验证 .ots 文件。证明依赖于标准的 OpenTimestamps 回执和比特币区块数据,因此验证不依赖于 Timestamp GIT 的持续可用性。

自动时间戳的最佳实践

1. 在所有关键仓库上启用

只对公共仓库添加时间戳会让私有内部工作得不到保护。专利流氓和员工纠纷往往涉及从未离开你基础设施的专有系统。对这些仓库使用私有仓库计划或企业 ZK 模式。

2. 对商业秘密使用企业 ZK 模式

如果仓库包含商业秘密或受监管的代码,不要授予任何第三方应用读取权限。使用 GitHub Action,让只有提交哈希离开你的环境。

3. 保护时间戳分支

.ots 回执和清单文件是你的证据。将专用的时间戳分支或影子仓库视为不可变的证据存储。将写入权限限制为应用和必需的管理员。

4. 定期归档审计记录

按计划下载审计 CSV 和 PDF 证书,例如每季度一次或在重大发布之前。将副本保存在你的合规或法律档案中。区块链证明独立存在,但将审计轨迹整理好会让法律审查容易得多。

5. 在 README 中添加验证徽章

公开验证徽章是表明仓库已启用自动时间戳的简单方式。使用仪表板或认证 API 中的徽章链接,在 README 中嵌入 Shields.io 徽章。

常见问题

GitHub App 会读取我的源代码吗?

不会。在标准模式下,应用只读取 HEAD 提交哈希。在企业 ZK 模式下,你方的 GitHub Action 只将提交哈希推送到 API,因此应用对你的仓库没有任何访问权限。

一个提交需要多长时间才能完成时间戳?

提交在一天中持续收集,并在夜间批次中锚定到比特币。批次提交后,比特币确认通常需要大约 3 小时。确认后你会收到 .ots 证明文件。

我可以在不使用 Timestamp GIT 的情况下验证时间戳吗?

可以。证明是标准的 OpenTimestamps .ots 文件。任何人都可以下载该文件,并使用开源工具在本地对照比特币区块链进行验证。Timestamp GIT 还提供基于 Web 的验证器和 PDF 证书。

是否支持自托管?

支持。Timestamp GIT 提供用于自托管的 Docker 镜像,适用于隔离网络或高度受监管的环境。可应要求提供限时演示许可证。

结论:设置一次,高枕无忧

手动时间戳之所以脆弱,是因为它依赖于有人记得去做。基于 GitHub App 的流水线消除了这种故障模式。

使用 Timestamp GIT,你只需安装一次,选择仓库,然后让夜间工作进程将提交哈希锚定到比特币。你的团队继续正常编写代码。证据以 .ots 文件、审计报告和状态徽章的形式自动积累。

立即安装 Timestamp GIT GitHub App,或从公共仓库的免费计划开始。Pro 和 Enterprise 计划适用于私有仓库和更严格的零知识部署。

相关文章

EU label: AI-generated content