使用 Docker 自托管区块链时间戳
自托管区块链时间戳首先是一个采购决策,其次才是基础设施决策。问题不仅仅是“我们能自己运行这个吗?”而是“我们希望信任边界设在哪里?” Timestamp GIT 的 Docker 自托管选项面向那些希望将 Git 提交自动锚定到比特币、而不必将时间戳流水线交给外部 SaaS 的团队——同时也不需要学习底层的 OpenTimestamps 协议。你安装一个 Docker Compose 技术栈,连接一次 GitHub App,然后让相同的生产构建在你自己的服务器上运行。
本文面向商业评估:你能获得什么、定价如何比较、何时自托管划算,以及如何从云 SaaS 迁移到你自己的基础设施。
为什么要自托管区块链时间戳?
托管版 Timestamp GIT SaaS 已经让你的源代码远离流水线。它只处理提交哈希,创建证明,并每晚自动将其锚定到比特币。自托管不是对隐私问题的修复;它是一个控制权决策。
自托管在以下情况下有意义:
- 你需要数据驻留保证。提交哈希、清单文件和证明回执都保存在你拥有的基础设施上。
- 你在隔离或严格监管的环境中运营,生产服务不能依赖外部 SaaS 的正常运行时间。
- 你的合规团队要求时间戳工件在写入你控制的仓库之前绝不离开公司网络。
- 你想保持相同的自动夜间锚定、API 端点、验证徽章和比特币锚定证明,同时端到端地拥有整个技术栈。
使用云 SaaS 时,Timestamp GIT 运营着批量处理哈希、构建 Merkle 树并提交锚定的工作进程。使用 Docker 镜像时,你自己运行相同的生产构建。密码学结果是完全相同的:锚定在比特币中的证明回执,即使 Timestamp GIT 消失也仍然可以验证。
如果你仍在将时间戳与普通 Git 日志进行比较,存在性证明模型已在什么是软件代码的存在性证明?中介绍。自托管不会改变该模型;它改变的是谁来运行自动化。
Docker 部署能获得什么
自托管部署使用两个服务:Timestamp GIT 应用程序和 Valkey——一个用于待处理哈希队列的内存键值存储。
一个最小的 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 并配置实例。
Docker 镜像与 Timestamp GIT SaaS 使用的生产构建相同。这意味着自托管版本包含核心流水线:
- 通过 GitHub App 或 GitHub Action 自动检测提交。
- 夜间哈希批处理和清单创建。
- Merkle 树构建和通过 OpenTimestamps 进行比特币锚定。
- 将证明交付到专用的 timestamps 分支或影子仓库。
- 公开状态端点、验证徽章、审计 CSV 导出和 PDF 证书。
比特币区块链中的确认通常需要几个小时,因此证明写入不是即时的。午夜工作进程会将待处理哈希分组,并锚定每日 Merkle 根。你可以使用状态 API 检查结果:
curl http://localhost:8080/api/statusLast/your-org/your-repo
自托管的定价与许可
Timestamp GIT 的 SaaS 定价简单明了。自托管许可证遵循不同的模式:你申请一个有时间限制的演示许可证用于评估,然后获取生产用完整许可证。
| 部署方式 | 产品信息中的价格 | 最适合 |
|---|---|---|
| 开源 | 免费 | 公共仓库和评估 |
| Pro Agency | $49/月 | 私有仓库、代理客户工作 |
| Enterprise ZK | $199/月 | GitHub Actions 工作流,无需源代码仓库读取权限 |
| Docker 自托管 | 演示许可证用于评估;生产许可证按需申请 | 本地部署、隔离环境、受监管环境 |
Docker License 页面描述了申请表单。要评估,你需要提交姓名、公司、电子邮件和可选的电话号码。然后可以下载一个有时间限制的演示许可证文件。
产品信息未说明生产自托管许可证是一次性付费还是订阅制。应将其视为供应商特定的定价对话,而非假设。对比较而言重要的是,自托管许可证将 SaaS 运营成本从月度订阅转移到了你自己的基础设施预算中。
如果你不需要完全的基础设施控制,SaaS 层级通常是更快的路径。GitHub App 自动化模型为你提供零设置的时间戳,无需 Docker、服务器或维护。
自托管的成本/收益与 ROI
自托管区块链时间戳的 ROI 取决于三个变量:仓库数量、监管压力以及证明在先技术的成本。
在小规模下,SaaS Pro Agency 计划每月 $49 很难被超越。在更大规模下,自托管可以摊平成本,因为你不再为每个环境或每个集成的托管基础设施付费。compose 文件运行一个应用程序实例加 Valkey,因此主要的经常性成本变为服务器、/app/data 的存储、锚定期间的网络访问以及许可证维护。
更大的财务收益是防御性的。密码学在先技术在专利流氓声称你几个月或几年前构建了某些东西时至关重要。没有不可变的时间戳,你可能面临昂贵的证据开示、许可谈判或诉讼。关于这一特定风险的更多信息,请参见为 Git 提交打时间戳以防御专利流氓。
自托管还减少了另一种依赖。如果托管 SaaS 发生故障,你的夜间批处理可能会延迟。使用自托管 Timestamp GIT,你可以控制工作进程何时运行以及何时尝试比特币锚定。这不会消除对比特币网络连接的需求,但它消除了外部服务作为单一运营故障点的风险。
需要纳入 ROI 模型的运营成本:
- Docker 主机资源和持久数据的磁盘空间。
- 生产使用的许可证费用。
- 更新、备份和容器维护的内部时间。
- 到 GitHub 和比特币基础设施的网络出口流量。
timestampgit和valkey服务的监控和日志保留。
一个有用的决策框架:
- 继续使用 SaaS,如果你是一个小团队、主要需要公共仓库证明,或者没有负责 Docker 基础设施的人员。
- 迁移到自托管,如果你运行大量仓库、需要本地数据驻留、运营隔离系统,或有禁止外部 SaaS 依赖的合规要求。
- 运行混合模式,如果只有部分仓库是敏感的。Timestamp GIT 支持以不同模式监控不同仓库,因此你可以将一般工作保留在 SaaS 上,并将敏感工作路由到你自己的实例。
升级路径:从云端到自托管
现有的 Timestamp GIT 云用户可以迁移到自托管部署,而不会使任何已锚定的内容失效。
原因很简单:所有时间戳都锚定在比特币区块链中,独立于 Timestamp GIT 服务。无论工作进程最初在哪里运行,证明回执都保持可验证。
一个实用的迁移路径:
- 从云端状态和验证页面或 API 端点导出你现有的证明回执和验证数据。
- 在你自己的基础设施上部署 Docker Compose 技术栈。
- 完成设置向导并连接你的 GitHub App。自托管实例可以使用相同的 GitHub App 身份和适当的仓库权限。
- 在自托管实例上重新添加你想要监控的仓库。
- 运行一次测试提交,确认新实例将证明写入配置的 timestamps 分支或影子仓库。
由于证明验证依赖比特币区块数据和 SHA-256,迁移不需要你重新为旧提交打时间戳。旧证明保持有效。新提交由自托管工作进程在下一个夜间批处理中拾取。
自托管 Timestamp GIT 入门
如果你正在评估自托管路线,请从演示许可证开始。
- 从 Docker License 页面申请一个有时间限制的演示许可证。表单要求填写姓名、公司、电子邮件和可选的电话号码。
- 下载许可证文件,并使用上面显示的
timestampgit和valkey服务创建一个compose.yaml文件。 - 运行
docker compose pull获取生产镜像。 - 运行
docker compose up -d启动技术栈。 - 打开
http://localhost:8080并完成首次启动设置向导。 - 连接你的 GitHub App 并选择你想要监控的仓库。
- 配置证明存储并验证实例可以访问目标仓库。
配置完成后,测试安装:
docker compose logs -f timestampgit
然后在受监控的仓库中创建一个测试提交:
git commit --allow-empty -m "test: verify self-hosted timestamp"
等待夜间工作进程运行以及比特币锚定确认。证明通常在几小时后出现。检查你的专用 timestamps 分支或影子仓库中的清单和 .ots 回执文件。
常见 Docker 问题及快速检查:
- 8080 端口冲突:更改
compose.yaml中的主机侧端口映射,例如"9090:8080"。 - 卷权限错误:确保
./data目录对容器用户可写。 - 锚定期间无出站网络:实例在锚定时需要访问 GitHub 和比特币网络基础设施。如果你在隔离环境中运行,请将锚定安排在连接窗口期间。
- Valkey 连接问题:使用
docker compose up -d同时启动两个服务,并在重启 Timestamp GIT 之前确认 Valkey 健康。
常见问题
问:我可以完全离线或在隔离环境中运行 Timestamp GIT 吗?
答:可以,Docker 自托管版本专为隔离环境设计。你可以在没有互联网访问的服务器上运行它,但请注意,锚定到比特币区块链需要与比特币网络的连接。不过,你可以将锚定过程安排在连接可用时进行,或者在允许的情况下使用本地 OpenTimestamps 日历。
问:自托管版本与云 SaaS 有何不同?
答:自托管版本让你完全控制基础设施和数据。所有处理,包括哈希批处理和证明生成,都在你的服务器上进行。云 SaaS 由 Timestamp GIT 管理,无需服务器设置。在功能方面,两者都提供自动夜间锚定、验证徽章和 API 访问。
问:自托管许可证是一次性购买还是订阅制?
答:自托管 Docker 镜像的许可模式在提供的信息中未作说明。评估可获取有时间限制的演示许可证。生产使用需要申请完整许可证,条款——一次性或订阅——将由供应商提供。
问:我可以从云 SaaS 迁移到自托管而不丢失现有时间戳吗?
答:可以,因为所有时间戳都锚定在比特币区块链中,独立于服务。你可以从云端导出证明回执和验证数据,并将其导入自托管实例。证明保持有效且可验证。
结论
当基础设施控制、数据驻留或隔离运营的重要性超过完全托管 SaaS 的便利性时,使用 Docker 自托管区块链时间戳是正确的采购选择。Timestamp GIT 的 Docker 镜像为你提供与云产品相同的自动、零 CLI 工作流:连接一次 GitHub App,让夜间工作进程批量处理提交哈希,并在你自己的基础设施上接收比特币锚定的证明回执。
从有时间限制的演示许可证开始,运行 compose 技术栈,并用受监控的仓库测试流程。在此基础上,你可以决定是继续使用云 SaaS、完全迁移到自托管,还是运行符合你合规和成本模型的混合方案。
在 Timestamp GIT 获取演示许可证开始使用。