TSS Node 回调机制简介
Last updated
Last updated
TSS Node 启动后,会自动和 Cobo Custody 后台建立长链接,用于接收 Cobo Custody 后台下发的任务。目前下发的任务总共有三种类型,分别是私钥生成(KeyGen)、私钥签名(KeySign)和私钥恢复(KeyReshare)。如果没有启用回调机制,TSS Node 会自动完成所有任务的执行;如果启用了回调机制,对于每个接收到的任务,TSS Node 都会请求回调服务器(Callback Server),只有回调服务器审核通过的任务,TSS Node 才会继续执行。
TSS Node 和回调服务器之间采用 HTTP 的方式进行通信,为了确保 TSS Node 和回调服务器之间的通信安全,我们采用了基于 RS256 签名算法的 JWT 数据格式对通信数据进行签名保护。有关 JWT 的详细介绍,可以参考官方文档。
在初始化阶段,TSS Node 和回调服务器需要独立生成各自的 RSA 公私钥对,随后将各自的 RSA 公钥配置到对方的系统中。
在执行任务阶段,TSS Node 和回调服务器之间的典型交互流程如下图所示:
TSS Node 接收到待处理任务后,会构建 CallbackRequest 结构体,使用自身的 RSA 私钥对其进行签名生成 JWT ,随后对回调服务器发起 HTTP POST 请求;回调服务器接收到 HTTP 请求后,需要利用本地保存的 TSS Node 的 RSA 公钥对 JWT 进行签名验证,验证通过后继续处理本次请求;回调服务器内部逻辑处理完成后,会构建 CallbackRequest 结构体并使用自身的 RSA 私钥对其进行签名,再将签名后的 JWT 返回给 TSS Node;TSS Node 接收到 HTTP 响应后,需要使用本地保存的回调服务器的 RSA 公钥对其进行签名验证;验证通过后,TSS Node 会执行回调服务器返回的指令,例如执行任务、拒绝任务或者等待后重试请求等。
启用 TSS Node 的回调机制,主要包含如下几个步骤:
开发回调服务器
配置回调服务器
配置 TSS Node
启动服务