docs(co-managed): co-sign 实施详细备注和回滚方法

## 提交信息
- 功能提交: ad4549e7
- 回滚目标: dbeef9f4

## 修改文件
1. services/server-party/application/use_cases/participate_signing.go
   - 新增 ExecuteWithSessionInfo 方法(Line 66-88)
   - 重构 Execute 委托给 executeWithSessionInfo(Line 90-107)
   - 新增 executeWithSessionInfo 私有方法(Line 109-241)

2. services/server-party-co-managed/cmd/server/main.go
   - 初始化 participateSigningUC(Line 152-156)
   - 传递 participateSigningUC 参数(Line 205)
   - 更新函数签名(Line 322-328)
   - session_created: 移除签名拒绝,添加 2-of-3 检查(Line 361-383)
   - session_started: 根据 messageHash 判断 keygen/sign(Line 420-505)

## 架构原则
 100% 寄生 server-party 的 use_cases(与 co-keygen 一致)
 不影响 server-party 现有功能
 仅支持 2-of-3 配置
 向后兼容(KeygenSessionID fallback)

## 回滚方法

### 方法 1: 完全回滚(推荐)
git reset --hard dbeef9f4
git push origin main --force

### 方法 2: 选择性回滚(保留 Android)
cd services/server-party/application/use_cases
git checkout dbeef9f4 -- participate_signing.go
cd ../../../server-party-co-managed/cmd/server
git checkout dbeef9f4 -- main.go
git commit -m "revert: 回滚 co-sign 后端"
git push origin main

### 方法 3: 手动回滚代码修改点

participate_signing.go:
1. 删除 ExecuteWithSessionInfo(Line 66-88)
2. 删除 executeWithSessionInfo(Line 109-241)
3. 恢复 Execute 原有实现(不委托)

server-party-co-managed/main.go:
1. 删除 participateSigningUC 初始化(Line 152-156)
2. 移除 participateSigningUC 参数(Line 205, 328)
3. session_created 恢复拒绝逻辑:
   if len(event.MessageHash) > 0 {
       logger.Debug("Ignoring sign session")
       return
   }
4. session_started 移除 isSignSession 判断,只保留 keygen 分支

## 部署验证
编译测试:  go build 成功
功能测试: 待部署后验证
日志关键字: "co_managed_sign", "Sign session detected (2-of-3)"

## 已知风险
- Android UI 已存在,后端未部署会导致功能不可用
- 用户勾选"包含服务器备份"会永久等待(不会丢失资产)
- 需要重启 server-party-co-managed 服务

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
hailin 2026-01-26 18:55:32 -08:00
parent ad4549e767
commit 514722143f

Diff Content Not Available