BitGo 签名驱动程序
使用 BitGo TSS MPC 保管钱包 API 签名和检索 Canton 交易的驱动程序, 执行 SigningDriverInterface 从 @canton-network/core-signing-lib。 。 。 .
如何运作
BitGo 标志 Canton 通过其 MPC TSS 协议同步进行交易 :
- 密钥创建 – BitGo 保管钱包按州方创建(
POST /api/v2/{coin}/wallet) (中文(简体) ). 回来的Key携带 BitGo 钱包 ID 为id(稳定的路由标识符)和 Ed25519 从钱包密钥链中衍生出来的公钥m/0作为publicKey(用于州政党分配和指纹生成). - 签名请求 - Canton交易作为电文签名请求提交(
POST /api/v2/wallet/{walletId}/msgrequests返回 atxRequestId立即获得状态pending。 。 。 . - 投票 钱包网关民调
getTransaction(txRequestId)直至status === 'signed'。Ed25519签名和Canton签名人的指纹取自签名的tx请求回复.
全权证书
- 签名到 位移 (或 BitGo 测试 (原始内容存档于2018-10-21). for testnet.
- 创建一个 长寿访问托肯 内 用户设置 – 开发者选项 – 访问托肯。选择您使用大小写所需的范围(至少是钱包管理和交易签名).
- 请注意你 企业编号 从 设置-企业。这是钱包创建所需的.
钱包网关配置
在钱包网关配置中配置非机密值 。 列名 bitgo 下级
signingProviders 在 :
| 网关配置字段 | 需求 | 说明 |
|---|---|---|
signingProviders.bitgo.baseUrl | 没有 | API 基础 URL. 默认为 https://app.bitgo.com (prod) (英语). 使用 https://app.bitgo-test.com 为测试网. |
signingProviders.bitgo.enterpriseId | 没有 | BitGo企业ID. 所需经费 createKey。启用重启安全 getTransaction 通过企业 tx 请求端点返回. |
signingProviders.bitgo.coin | 没有 | 广州硬币识别码. 自动检测 : tcanton 页:1 bitgo-test.com URL( URL) , (中文), canton 用于其他所有项目(工具、代理、自定义 URL). |
signingProviders.bitgo.accessTokenEnv | 没有 | 持有访问符的环境变量名称 。 默认为 BITGO_ACCESS_TOKEN。符号值留在环境中. |
若为 signingProviders 钱包网关使用遗留的发现
读取 BITGO_ACCESS_TOKEN, (中文(简体) ), BITGO_API_URL, (中文(简体) ), BITGO_ENTERPRISE_ID,以及 BITGO_COIN 从
环境。 非秘密变量被忽略一次 signingProviders 已存在.
交易状态生命周期
BitGo 签名是同步的——MPC TSS协议需要多个内部回合才能产生签名. 驱动程序将 BitGo 状态映射到 Canton SigningStatus数字 :
| BitGo 状态 | 州地位 | 页:1 |
|---|---|---|
initialized, (中文(简体) ), pendingApproval, (中文(简体) ), pendingDelivery, (中文(简体) ), pendingUserSignature, (中文(简体) ), pendingUserCommitment, (中文(简体) ), pendingUserRShare, (中文(简体) ), pendingUserGShare, (中文(简体) ), readyToSend | pending | MPC 回合进行中 |
messages[0].state === 'signed' | signed | 信件级别状态优先 – 签名完成, 即使 tx 请求仍在 pendingDelivery |
delivered, (中文(简体) ), signed | signed | |
canceled, (中文(简体) ), rejected | rejected | |
failed | failed |
恢复复原能力
驱动程序为快速查询保留内存( Q)txRequestId → walletId, (中文(简体) ), publicKey ↔ walletId) (中文(简体) ). 如果进程重新启动,这些缓存是空的. 交易通过 BitGo 企业 tx 请求端点回收( 需要) BITGO_ENTERPRISE_ID) (中文(简体) ). 公共密钥在不缓存时通过 BitGo 钱包和密钥链端点按要求解决每个钱包.
发展
pnpm build # compile
pnpm nx test @canton-network/core-signing-bitgo # run tests
pnpm nx test @canton-network/core-signing-bitgo -c coverage # with coverage report