全部文章

阅读约 7 分钟

运行你自己的 Label 309 网关

是的——公司或开发者可以运行自己的 Label 309 网关,为它的 Cardano 钱包和存储钱包注资,发布标准的存在性证明,而无需把 CardanoWall 作为托管运营方。本文讲清楚这需要什么。

是的,你可以运行自己的网关。Label 309 网关是一个开源服务,负责对存在性证明记录进行报价、上传、发布、确认和建立索引。运行你自己的网关,你的组织就成了运营方:你为 Cardano 钱包和存储钱包注资,管理账户和 API 密钥,并发布标准记录,而不必依赖 CardanoWall 的托管服务。你锚定的记录和其他任何人的记录完全相同,因为格式由标准定义,而非由运营方定义。

自托管不是轻松的路,而是掌控的路。本文讲清楚什么时候这笔取舍值得,网关实际运行了什么,以及自己运行它你要承担些什么。

什么时候应该运行自己的网关?

当运营掌控比便利更重要时,就运行你自己的网关。

对大多数用户而言,托管的 CardanoWall 网关才是正确答案。它上手更简单、注资更容易,并且完全免去了基础设施工作。如果你只是偶尔发布,又没有任何政策上的理由非要自己持有密钥,那读到这里就够了——托管路径就是为你准备的。

不过,有些团队需要另一种模式:

  • 严格的供应商与数据驻留政策
  • 受监管或受审计的工作流
  • 高频发布
  • 内部合规归档和法律证据系统
  • AI 来源溯源基础设施和 CI/CD 证明流水线
  • 以自有品牌构建在 Label 309 之上的产品
  • 对密钥、账户、注资和定价的直接掌控

对这些团队来说,自托管让组织能够掌控整条流水线,而不是把它交给第三方经手。

网关实际运行了什么?

网关掌管整条发布流水线,以及它背后的资金、链上和存储状态。它是单一的 Rust 二进制程序加上 PostgreSQL,负责处理:

  • 报价创建与定价
  • 把内容或密文上传到存储
  • 存储注资与记账
  • Cardano 交易的构建、提交与确认跟踪
  • 处理链重组,并在发布永久失败时自动退款
  • 公开的链上记录索引
  • 账户余额与余额账本
  • API 密钥、账户令牌以及运营方控制平面
  • webhook 与审计轨迹

这就是一项可靠发布服务背后的机制。客户端仍然掌握面向用户的意图和私钥;网关掌管链、存储、定价和账户基础设施。这种分工是刻意的——无论网关由 CardanoWall 运行还是由你运行,边界都一样。

自托管需要什么?

至少要在运营层面掌握五样东西。

**一套网关部署。**包括二进制程序、它的配置、一个 Postgres 数据库、网络访问、日志、监控,以及一条升级路径。二进制程序在启动时会应用自己的 schema 迁移,并把每个后台循环都置于同一个监督进程之下,因此某个循环出错会让整个进程停止,而不是悄无声息地降级。

**Cardano 注资。**网关需要一个已注资的钱包来支付交易费用。你不必自己管理一个个交易输出——钱包会维护一小批随时可用的输出并加以整理,使每次发布支付的是一笔精确的费用,而非估算值。你只需让那个钱包保持充值,其余的交给网关。

**存储注资。**如果你的网关接受文件或密文上传,它就需要一个存储后端,以及为存储字节付费的资金。在生产环境中,这是经由 Turbo 打包器写入的 Arweave,通过你从 Arweave 钱包充值的预付存储额度来支付。你也可以运行一个纯哈希的部署,完全不带存储:此时记录只携带内容哈希(以及任何外部托管的 URI),实例本身什么都不存。

**运营方凭据。**控制平面由一个运营方根密钥保护,它在你配置实例时仅打印一次。日常管理使用由它派生出的短时运营方令牌。这些密钥绝不能进入浏览器、客户端包、移动应用或 CI 日志。

**一套账户与计费策略。**即便只有你一个用户,网关仍然需要决定谁可以发布、余额如何充入。余额由网关自己掌权;你通过控制平面,从你所运行的任何计费通道把额度充入余额。

自托管是真正的基础设施。把它当真,它就可靠;草草对待,它就会变成负担。

自托管会改变标准吗?

不会。自托管的网关发布的 Label 309 记录,和任何其他运营方发布的一样,记录始终是标准的。

验证方只需要 Cardano 交易元数据、可选的内容字节,以及一个公开的 Cardano 浏览器。它不需要知道——也无从分辨——一条记录究竟来自托管的 CardanoWall 网关、你公司的网关,还是某位开发者的笔记本电脑。这正是把开放标准与托管产品分开的全部意义所在:经久的成果是 Label 309,而每个网关都是它的下游实现。

自托管会消除所有成本吗?

不会。它消除的是托管运营方的利润空间,但底层成本仍然由你承担。

你仍然要支付:

  • Cardano 交易费用,以及任何上传字节的存储成本
  • 基础设施、数据库和备份成本
  • 监控、日志和安全运维
  • 人员时间、资金管理和故障恢复
  • 升级和持续维护

如果你的发布量很低,一旦把运行基础设施的人力成本算进去,托管网关在实践中往往更便宜。(关于发布为什么会产生费用的原理,参见为什么发布是要付费的。)如果你的发布量很高,或者政策要求你自己持有密钥,自托管就开始划算了。

不应该自托管?

不要仅仅为了不去想费用问题就自托管。

如果你只是偶尔发布、缺乏运维能力、不想管理已注资的钱包,又不需要自定义的策略掌控,那么托管网关几乎肯定是更好的选择。自托管让你为可用性、安全、注资、监控和升级负起责任——只有当你真的想要这份责任时,这才算是一项好处。

对大多数个人和许多小团队来说,托管的 CardanoWall 才是务实的路。

谁适合自托管?

那些已经在运营严肃基础设施、并且有具体理由要自己掌握整条流水线的团队。合适的人选包括:

  • 大量发布证明的公司
  • 每天或每小时锚定证据的合规团队,最好是在单条记录下批处理
  • 提交数据集与输出清单的 AI 团队
  • 把证明嵌入发布流水线的 DevSecOps 团队
  • 处理敏感证据的法律平台
  • 想以自有品牌使用 Label 309 的产品
  • 无法把敏感工作流交由第三方托管服务经手的组织

在这些情况下,运行网关会成为组织既有安全与基础设施体系的一部分,而不是一件需要时刻照看的新事物。

产品如何构建在网关之上?

产品可以把网关当作自己的底层。网关负责链、存储、定价、余额、记录和发布状态;你的产品负责用户、会话、计费展示、通知、工作流、UI 以及特定领域的含义。

举例来说:

  • 合规产品发布每日的控制项快照
  • 媒体产品锚定 Content Credentials(C2PA)清单的哈希
  • 法律产品为特定接收方封存证据
  • 开发者工具发布版本证明
  • AI 产品为一批批生成的输出加时间戳

产品永远不会重新搭建 Cardano 提交或存储记账——它调用网关。CardanoWall 正是这样构建的:web 应用和 worker 是对第三方所用的同一套公开网关平面的封装,没有任何私有后门。如果你想深入了解集成模式,参见在 Label 309 网关之上构建

客户端如何连接到网关?

通过网关的 HTTP API,它分为两个平面。

web 应用、桌面应用、CLI、SDK 集成或后端服务,使用账户令牌API 密钥来调用数据平面:报价、上传、发布、读取余额、读取记录。运营方操作——创建账户、充入余额、设置利润率、签发凭据——则走控制平面,并且只能从受信任的后端发起。

通常的划分是:

  • 客户端以受限范围的短时账户凭据来操作
  • 你的后端持有运营方凭据,且绝不暴露它们
  • 私有身份密钥留在用户设备上,或受你自己的密钥策略约束
  • 网关绝不解密封存内容

一种实用的模式是令牌签发代理:客户端向你自己的会话系统认证,你的后端用那个会话换取一个短时账户令牌,其范围恰好限定为该页面所需,而客户端始终只看到那个令牌。这样,令牌一旦泄露,也只是一个持续一小时的小麻烦,而不是一起安全事件。记录的读取接口更简单——它面向匿名调用方,因此公开的验证页面和浏览器完全不需要任何凭据。

运营方应该保护什么?

有几样东西,大致按严重程度排列如下。

**密钥与凭据。**网关使用单一的加密密钥环进行签名——Cardano、存储和 webhook 的密钥都在同一个文件里,由同一个口令保护。请离线创建它,对文件和口令都保留一份离线备份,并像守护生产数据库密码那样守护运营方根密钥。这里没有密钥导出或归集(sweep)通道:丢了密钥环,就会让其地址上的任何资金被搁浅。

**资金与权限。**控制谁可以创建账户、签发 API 密钥、调整余额和更改利润率。每一次控制平面操作都会被审计记录,余额调整在每次调用时都设有上限作为影响范围的限制,因此一次手误的输入或一个被盗用的令牌,单次最多只能动这么多。

**运营。**保留日志和审计轨迹、一套备份与恢复方案,以及对以下情况的监控:钱包余额过低、存储即将耗尽、上传卡住、发布失败,以及链顶端(chain tip)陈旧。二进制程序会输出结构化 JSON 日志供日志聚合器使用,并暴露一个健康探针。

**最小权限。**浏览器绝不能拿到运营方凭据。CI 任务绝不能获得超出其所需的权限。把账户令牌的范围限定到最窄,并让它保持短时。

针对自托管网关的验证是如何工作的?

和针对任何网关一样:验证根本不信任网关。

验证方依照标准规则检查 Cardano 交易、Label 309 元数据、各个哈希、可选的签名、任意 Merkle 证明以及封存载荷——整个过程中没有任何签发方服务器参与。网关帮你发布建立索引;它无法让一份无效的证明变得有效。

这一点对内部系统最为重要。运行自有网关的公司,仍然应当独立地验证自己的记录。「我们的网关说它发布了」不构成证明。链上的那条记录加上一次独立核验,才是证明。你可以用开源的 cardanowall 命令行工具来做这次核验,也可以手动验证一条记录——两者都不需要你的网关在运行。

这和 CardanoWall 是什么关系?

CardanoWall 是托管、精致的产品,也是该标准的参考运营方。自托管则是独立自主的路。两者并不冲突。

用户可以从 CardanoWall 起步,日后迁移到自托管网关,或者在不同工作流中两者并用。开发者可以基于网关模式构建产品。公司可以为简单团队保留托管的 CardanoWall,同时为受监管的自动化运行自己的网关。所有这一切底下的共享层是 Label 309——开放、厂商中立,无论谁来发布,在链上都是同一份。

简短版

当你想自己运营这项发布服务时,就运行你自己的网关。你获得对注资、账户、利润率、API 密钥、基础设施和策略的掌控——同时也为可用性、安全、钱包、存储、监控和升级承担起责任。

托管的 CardanoWall 是便利,自托管是掌控。无论走哪条路,证明记录都始终是标准的。

延伸阅读

gatewayself-hostingdevelopers