ATProto in Practice #1: Identity
11 hours ago
- ATProto账号有两个标识符:不可变的DID和可变更的人类可读句柄。
- 句柄是域名,现有域名可作为句柄使用。
- 将句柄解析为DID需要同时检查DNS TXT记录和.well-known HTTP文件。
- DID文档包含带有句柄的'alsoKnownAs'字段和带有PDS端点的'service'字段。
- 验证是双向的:应检查两个方向以确认所有权。
- 保留的TLD(如.alt、.local、.example)应被拒绝作为句柄。
- DID主要有两种方法:did:plc(集中式,有历史记录)和did:web(自托管,无历史记录)。
- did:plc存储完整的变更历史,可作为审计日志查看。
- did:web绑定到某个域名且无法迁移;若保留域名则永久可用。
- 解析did:plc将访问plc.directory,而did:web则使用域名的.well-known/did.json。
- DIDKit是一个Ruby gem,可简化句柄和DID的解析。
- PLC导出API允许批量下载操作,满足大规模数据需求。
- 操作日志使用与DID文档不同的JSON格式;包含墓碑记录和旧版格式。
- 从alsoKnownAs中过滤无效句柄,并通过反向解析进行验证。
- 并非所有句柄都是真实的;需验证并处理多句柄等边缘情况。