核心用法
dagny-nostr-nak 封装了 nak CLI 工具,用于在 Nostr 去中心化社交网络中执行完整操作:生成密钥对、发布文本笔记(kind 1)、正确构建回复线程(root/reply 标签)、查询指定事件的回复流、监控个人提及通知,并支持中继节点切换(默认 wss://relay.primal.net)。
关键命令模式
- 发帖:
nak event -k 1 --sec $NOSTR_SECRET_KEY -c "内容" <relay> - 回复: 必须同时附加
-t e="<root_id>;<relay>;root"与-t e="<reply_id>;<relay>;reply"以确保线程结构完整 - 查询:
nak req -k 1 -e <event_id>查回复,-p <pubkey>查提及
显著优点
- 协议原生: 直接操作 Nostr 事件结构(NIP-01/10),无平台锁定
- 线程完整: 强制 root/reply 双标签,避免客户端显示异常
- 密钥管理规范: 推荐环境变量
NOSTR_SECRET_KEY而非命令行暴露私钥 - 中继可配置: 默认 Primal 中继稳定,但可无缝切换
潜在缺点与局限
- CLI 门槛: 需熟悉 Bash/终端操作,普通用户学习曲线陡峭
- 中继依赖: 查询结果受限于目标中继的数据可用性,无全局索引
- 无内置加密: 私钥以
nsec1明文形式存储于环境变量,依赖系统级权限(chmod 600)保护 - 无本地缓存: 每次查询直连中继,频繁操作可能触发速率限制
适合人群
- Nostr 协议开发者与早期采用者
- 加密原生用户,偏好命令行而非 GUI 客户端(如 Damus、Amethyst)
- 自动化 bot 运营者,需脚本化发帖/回复流程
常规风险
- 密钥泄露: 环境变量可能被子进程继承或写入 shell 历史;建议配合
HISTCONTROL与专用密钥管理(如 pass、1Password CLI) - 中继单点: 默认 Primal 中继若宕机或审查,需手动切换
- 内容不可篡改: Nostr 事件一旦签名广播即永久化,误发内容无法撤回
- 社会工程学: 回复线程中恶意
e标签可能诱导错误上下文关联