用途:通过 nostr-sdk 库与 Nostr 去中心化社交协议交互,发布公开笔记、回复帖子、收发加密私信、读取全局信息流,并管理密钥。
安装:npm install nostr-sdk
主要能力:
- posttoNostr:发布公开文本笔记,支持 tags、自定义 relays、powDifficulty(默认 4,0 关闭),自动提取话题、提及、链接与引用标签。
- replyToPost:回复指定事件,需事件 ID、回复内容与作者公钥。
- sendmessage(NIP-4):发送旧版加密私信,兼容性广,但发送者/接收者元数据可见。
- sendMessageNIP17(NIP-17):发送礼物包装加密消息,隐藏发送者、使用 NIP-44 加密与临时密钥,隐私更强。
- getmessage / getMessageNIP17:监听并解密收到的私信,返回可取消订阅函数。
- getGlobalFeed:按 limit、since、until、kinds、authors、relays 拉取公开帖子。
- generateNewKey / generateRandomNsec:生成密钥对或 nsec。
- nsecToPublic:在 nsec、npub 与十六进制格式间转换。
关键概念:nsec 为 bech32 私钥,npub 为 bech32 公钥,relays 为传播事件的 WebSocket 服务器,事件为已签名 JSON 对象,POW 用于降低垃圾信息。默认使用多个公共 relay。
使用方式:直接 require 导出函数,无需类实例,因此无客户端清理步骤。私信监听返回 unsubscribe 用于停止。
限制与注意:私钥不应提交到 git,建议用环境变量或安全存储;常见错误包括未设置私钥、nsec 格式无效、relay 连接失败、解密失败。NIP-4 元数据可见,需最大隐私时用 NIP-17。具体收费、平台与效果资料未提供。