云端签发与验票
商用模型包带「必须验票」标记时,打开前要持一张云端签出的票。本章说清票从哪来、谁签谁验、验不过会怎样。几条口径先钉死:
- 签发在云端,客户端只验不签。 随 SDK 发出去的包里没有签发功能,加不了密也签不了发(见 常见问题)。
- 签完即验。 出包即离线验票,验不过按签发失败处理,不产出坏包。
- 打不开 = 票验不过。 模型包带「必须验票」标记时,无票或票无效一律打不开。
- 票只在本次打开 / 探测用,不落盘、不留到下次。
- 验票全程离线,不联网向云端求证。
流程
登录 → 商用资格 → 云端签发 → 随包验票 → 离线推理。整条链现场那头不用联网:
| 步骤 | 谁做 | 做什么 |
|---|---|---|
| 登录 | 出包方 | Darra 账号登录 Studio。登录是身份,不等于商用资格,两件事分别看(见 常见问题) |
| 商用资格 | 出包方 | 加密签发属商业功能,账号查到商用授权才能签发;查不到一律按没有处理,不本地猜成有。详见 知识产权 |
| 云端签发 | 云端 | 出包时云端签出票。签发在云端,客户端只验不签 |
| 随包验票 | 出包方 | 签完即验:出包立刻离线验票,验不过按签发失败处理、清掉产物,绝不把验不过的包交给客户 |
| 离线推理 | 现场 | 带票打开模型,验过就推理。全程离线,断网照样跑 |
票是什么
票的组成就三样,缺一样验票就过不了:
| 三样 | 说明 |
|---|---|
| 票 | 云端签出的票原文 |
| 签发证书 | 票自带的签发证书,验票时在本机用,不回云端验 |
| 模型指纹 | 要开的模型哈希(64 位小写十六进制)。必须照容器实算,不许拿票里自带那串顶替 —— 那等于让票自己给自己盖章 |
票绑死到这一个模型,换一个模型这张票不通用。票与签发证书里不含任何口令。各语言类型页里就是那个票类型(C# WrapTicket、C darmk_wrap_ticket),只做搬运。
打不开 = 票验不过
模型包带「必须验票」标记时,开这个包必须验票:
- 没带票:一律打不开,没有「先放行再说」这条路。
- 票无效:同样打不开。缺票、票坏了、签发证书不被认可或已过期、票过期、票还没到生效时间、票绑的模型指纹跟要开的模型对不上,任何一项都按打不开处理,不降级、不绕过。
- 失败按拒因点名(
WrapTicketRejectReason,16 项),照拒因修;验不过报DARRA_BAD_LICENSE,错误消息里带拒因名。拒因表见各语言 类型页。 - 没置「必须验票」标记的包照旧,不受影响:密码 / 激活码对就开。
置了标记的包,首次绑机后照样要验票 —— 绑机不会把验票要求抹掉。
票只用一次
- 票随模型包一起交给现场,跟包走,不是每次上网取。
- 每次打开 / 探测把票交进去,只在本次调用里用完即弃:不落盘、不留到下次。下次再开要重新带票。
- 验票全程离线:票自带签发证书,本机对着认可的签发方核,不联网向云端求证。签完的票断网照样验、照样推理。这不是在线认证。
票怎么带进打开 / 探测
票怎么交进打开 / 探测(有的语言作打开 / 探测的形参,有的在打开选项里),字段名与用法按语言看类型页:C / C++ / C# / Python / Java / Rust。探测和打开各带各的票,先探再开就带两次。