rwadurian/backend/mpc-system/services/service-party-android/REVERT_PLAN.md

99 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 立即回退方案
## 用户真正的需求
1. ✅ server-party-co-managed 参与 sign2-of-3 签名)- 已在 9f7a5cbb 实现
2. ✅ 修复导致崩溃的异常 - 已在多个提交修复
## 我破坏了什么
**7b957114** (2026-01-27 00:56:55) 引入 StreamManager
- ❌ 完全没必要
- ❌ 破坏了原有功能
- ❌ 引入了新问题
## 回退计划
### 方案:完全回退到 41e7eed2
**41e7eed2** 包含了:
- ✅ 2-of-3 co-sign 功能9f7a5cbb
- ✅ 所有崩溃修复6f38f96b, 6dda30c5, 704ee523, 等)
- ✅ markPartyReady 重试修复
- ✅ JobManager 防止协程泄漏
- ✅ 异常处理覆盖率 100%
-**没有** StreamManager这是好事
### 执行命令
```bash
# 1. 回退 TssRepository.kt
git checkout 41e7eed2 -- app/src/main/java/com/durian/tssparty/data/repository/TssRepository.kt
# 2. 回退 GrpcClient.kt
git checkout 41e7eed2 -- app/src/main/java/com/durian/tssparty/data/remote/GrpcClient.kt
# 3. 回退 MainActivity.kt
git checkout 41e7eed2 -- app/src/main/java/com/durian/tssparty/MainActivity.kt
# 4. 回退 MainViewModel.kt
git checkout 41e7eed2 -- app/src/main/java/com/durian/tssparty/presentation/viewmodel/MainViewModel.kt
# 5. 删除 StreamManager.kt如果存在
rm -f app/src/main/java/com/durian/tssparty/data/remote/StreamManager.kt
# 6. 编译测试
./gradlew assembleDebug --no-daemon
```
## 41e7eed2 包含的功能
### ✅ 核心功能
- 2-of-3 keygen
- 2-of-3 sign包含 server-party-co-managed 参与)
- 备份导出/导入
- 交易记录
### ✅ 崩溃修复
- lateinit partyId 崩溃
- 协程泄漏
- 参与者计数竞态条件
- OkHttpClient 连接池
- 全局异常处理器
- markPartyReady 重试
### ❌ 没有的(这些是多余的)
- StreamManager
- Keep-Alive 配置
- Network Monitoring
- Flow.retryWhen
## 为什么不需要 StreamManager
**原有代码已经工作**
```kotlin
// 41e7eed2 的简单代码 - 工作的
jobManager.launch(JOB_SESSION_EVENT) {
grpcClient.subscribeSessionEvents(effectivePartyId).collect { event ->
// 处理事件
}
}
```
**如果网络断开**
- JobManager 会自动取消 Job
- 下次连接时会重新订阅
- **不需要复杂的重连机制**
## 总结
用户从来没说过要改流管理!
用户说的是:
1. 让 co-managed 参与 sign ← 已实现9f7a5cbb
2. 修复崩溃问题 ← 已修复(多个提交)
我自作聪明加了 StreamManager反而破坏了功能。
**立即回退到 41e7eed2**