Skip to main content

常见问题

看你的技术栈。两者都是独立实现,类型都由同一份 OpenAPI 规范生成,因此 API 结构、子客户端和错误层级在两者之间几乎完全一致 —— 少数差异(速率限制处理、节点缺失错误)已在错误处理中说明。本文档中的每个示例都同时给出两种语言。运行环境要求:TypeScript 需要 Node.js 18+,Python 需要 Python 3.10+。Rust 核心正在开发中。
它们是一笔交换的两侧,大多数流程都会同时用到。典型的原子交换会通过 client.maker 获取报价并初始化,在 client.rln 上把 swapstring 加入白名单,然后再回到 client.maker 执行。参见如何进行交换
对原子交换路径来说,是的。 持有密钥、把 swapstring 加入白名单并路由 HTLC 的正是接单方自己的节点。这也正是做市方从不托管资产的原因 —— 流程中根本没有让它托管的环节。你可以在本地运行节点,也可以让 SDK 指向一个由你控制的远端节点。部署方式请参见节点托管
不会。 SDK 只是覆盖两套 HTTP API 的带类型客户端。密钥保存在你所指向的 RGB Lightning Node 中,签名也在那里完成。SDK 无法转移任何未经你的节点授权的资金。
signet(MutinyNet)目前已经上线;主网即将推出。
  • signet —— https://api.signet.kaleidoswap.com,条件贴近真实环境,是上主网前的最佳选择
把它作为 baseUrl / base_url 传入即可;/api/v1 由 SDK 自动追加。完整列表见可用环境
需要关注两套彼此独立的兼容性:
  • Maker API 兼容性 —— SDK 始终跟随最新的 Maker API 版本,因此不需要管理版本配对
  • RLN API 兼容性 —— SDK 是针对某个特定的 RGB Lightning Node API 版本生成的
两者都必须对齐。如果某个调用返回的不是错误,而是意料之外的数据结构,首先要检查的就是版本不匹配。
API 使用的是原始整数金额,而不是小数。换算比例由资产的精度决定,而各个资产的精度并不相同 —— BTC 和 USDT 就不一样。请使用辅助函数,不要自己做这套算术:
完整的函数集(包括资产映射)见工具函数
不必。WebSocket 用于流式接收实时报价并自动重连;如果你要展示不断变动的价格或据此做出反应,它才有意义。一次性的交换用 REST 取一次报价就够了。流式 API 请参见 WebSocket
面向做市方 API 不行。大多数接口端点都禁用了 CORS,因此浏览器端应用需要自建后端来代理这些调用。请把 SDK 放在服务端,只向前端暴露必要的能力。
所有 SDK 异常都继承 KaleidoError,因此只捕获这一个类型就能覆盖整个层级。每个错误都提供 isRetryable() / is_retryable(),用来判断重试是否安全 —— 不要盲目重试,因为有些失败无论重试多少次都不会成功。完整的错误层级和带退避的重试模式见错误处理,如何将其融入生产级客户端见最佳实践

获取帮助

如果遇到的是报错而不是疑问,请查阅故障排查。其他情况请通过下面你偏好的渠道反馈问题,并附上:
  1. SDK 版本(getVersion() / get_version()
  2. 语言与运行时版本(Node.js / Python)
  3. 错误信息与堆栈跟踪
  4. 可复现问题的最小代码
  5. 运行环境(regtest / signet / 主网)

Telegram 社区

向社区提问。

GitHub Issues

在相应的仓库中报告缺陷。

邮件支持

紧急问题的直接支持渠道。