跳到主内容
L2 · DEVICE AGENT · 零成本

一条命令,让你的机器自己作证 / 设备签名身份 L2

在机器上生成一对设备密钥,遥测在本地签名,服务端验签通过才落库。私钥不出这台机器。不要账户、不要 API key、不要钱。

已签名设备
0
真实设备(站内演示不计)
可认领主机
1,239
台账里已有公开报价
已认领
0
台设备完成主机桥接
为什么现在才做这一页:L2 从 v0.1 就写进规范,但真实设备一直是 0 台——不是没人愿意,而是从来没有人能跑起来的一条命令。这一页就是那条命令,连同它证明什么、不证明什么,一起写清楚。

跑起来

bash
# 1) 下载(单文件、零依赖、Node 16+)
curl -sO https://cvin.org/cvin_attest_agent.js

# 2) 先看它要发什么(不上传)
node cvin_attest_agent.js --dry-run

# 3) 上报(升 L2),顺手认领你的市场主机号
node cvin_attest_agent.js --link vast.ai:513108 --operator "你的机房名"

# 4) 长期维护:每小时重签一次(超过 30 天不签会退回 stale)
node cvin_attest_agent.js --watch 60
只读 nvidia-smi——不碰你的业务负载、不开端口、除了你指定的接口之外不回传任何地方。

证明什么,不证明什么

能证明① 你声明的 CVIN 与这台 GPU 的序列号/UUID 哈希一致(序列号原文不出机器);② 此后每条遥测都由同一把设备私钥签名,验签通过才落库;③ 如果认领了主机号,服务端会拿台账里该主机已有的公开报价做机型核对。
不能证明不证明机器没换过卡(换卡必须换 CVIN)、不证明运营方没说谎(只证明「同一把钥匙持续发言」)、也不证明你是这台机器的合法所有人(我们没有平台账户权限,这一点不假装有)。
私钥怎么管首次运行写到 ~/.cvin/device-*.pem(权限 0600),之后复用。丢了只能换 CVIN(旧履历仍在,但无法继续签名);已绑定的密钥不允许更换——这是防密钥替换的设计。

遥测字段(白名单)

只接受并落库这些字段。签名校验前会先按白名单裁剪——所以「你签的」和「第三方从台账能复算的」是同一份数据。

字段来源
hours_power_onagent 参数 --hours(你的系统有统计时)
ecc_errorsnvidia-smi
ecc_uncorrectablenvidia-smi
temp_cnvidia-smi
power_wnvidia-smi
sm_count驱动读取
mem_total_mbnvidia-smi
driver_versionnvidia-smi
uuid不做明文落库(只存哈希)
pcie_bdfnvidia-smi
utilization_pctnvidia-smi

常见问题

一台 8 卡机是不是 8 个 CVIN?是。身份是按卡(按 GPU UUID)建的,8 张卡可以各自认领同一个主机号。主机级报价对应整台机器,报告里会写明「主机报价 ÷ 在册卡数」的除法算式。
这台机器没有 GPU那它就不是 GPU 资产——agent 会以退出码 2 结束并直接告诉你原因,而不是硬造一个身份。
AMD / 昇腾 / 其他厂商规范本身覆盖(厂商标识在编号里),但当前 agent 只读 nvidia-smi。把型号与序列号发到 hi@cvin.org,我们按同一规则给你编码。
换卡了 / 重装了系统换卡 = 新序列号哈希 = 新 CVIN(旧 ID 保留,走别名表关联)。重装系统只要保留 ~/.cvin 就不受影响。
服务端会收费吗?不会。写入方永远免费——declare / attest / bind 三条都是永久免费。我们收的是决策文件的费,不是收证据的费。
认领你的主机号 身份分级 L0/L1/L2 下载 agent