三步部署架构
2-of-3 门限签名:wallet-api SDK 经 ops.json 连接 BTCSY 远端开放平台 API,经 cli.json 连接内网 Broker;node 分片在您的环境完成签名。
私有化 MPC 标准路径:3 个签名节点 + 1 个 Broker + wallet-api SDK 对接 BTCSY 开放平台与您的业务系统。平台负责建单与广播,签名在您的 TEE / 内网完成。
2-of-3 门限签名:wallet-api SDK 经 ops.json 连接 BTCSY 远端开放平台 API,经 cli.json 连接内网 Broker;node 分片在您的环境完成签名。
从 GitHub Releases 下载 wallet-mpc-node,在 3 台(或 3 个 TEE 实例)分别运行 node0 / node1 / node2。每个节点使用独立配置连接 Broker 节点中继端口(默认 9522),分片加密落盘,私钥不出节点。
cli_nodeN.json:domain 指向 Broker 节点中继(默认 :9522)、source 为 node0/1/2nodeBindings 中的 clientNo / source / public_key 一一对应启动命令
# Linux / macOS — 三台机器(或 TEE 实例)各启一个进程
./wallet-mpc-node -config=cli_node0.json
./wallet-mpc-node -config=cli_node1.json
./wallet-mpc-node -config=cli_node2.json
# Windows
wallet-mpc-node.exe -config=cli_node0.json
wallet-mpc-node.exe -config=cli_node1.json
wallet-mpc-node.exe -config=cli_node2.json
下载官方 wallet-mpc-broker 二进制,配置 cli_config.yaml:9422 面向 SDK 签名 API,9522 面向 MPC 节点。绑定租户 appID(cliBindings.source)、tradeKey、合约白名单与节点列表。
walletMode: 3 表示 2-of-3,需 3 个 node 实例cliSigningOnly: true,仅暴露签名接口cliBindings.source 与控制台 appID、tradeKey 保持一致启动命令
# Linux / macOS — 同时拉起 API(:9422) 与节点中继(:9522)
./wallet-mpc-broker -serve -config cli_config.yaml
# Windows
wallet-mpc-broker.exe -serve -config cli_config.yaml
Go / Java / Rust / Python / TypeScript SDK 双通道:ops.json 配置 BTCSY 远端开放平台 WebSocket;cli.json 指向本地 Broker。
示例代码(Go)
wc, _ := client.NewFromFiles(
"config/ops.json", // 远端开放平台 API(控制台获取 domain / appID)
"config/cli.json", // 本地 Broker :9422
appKey, 300,
)
defer wc.Close()
res, _, _, err := wc.Transfer(
accountID,
map[string]string{"0xTo...": "0.01"},
"BETH", "",
)
其他语言:Java · Rust · Python · TypeScript
开源 MPC 签名节点(GPL-3.0)。CGGMP / FROST 门限签名,分片本地加密存储。
Releases →MPC 协调器(闭源)。Keygen / Sign 编排、签前策略、ML-KEM 消息转发;应用审核通过后由控制台发放。
控制台获取 →Go / Java / Rust / Python / TypeScript 客户端 SDK。封装远端开放平台 API + 内网 Broker WebSocket。
GitHub →