背景
ADR-020 当前要求由上一版正式成员中的过半数确认,才能正式加入新设备。该规则能防止旧设备把新设备带回过期成员名单,但也意味着:其余成员离线时,即使一台仍可信的成员在线,也无法完成新设备加入。
这不符合产品期望。目标是允许一台已可信、在线的成员继续把新设备加入同一 Space,而不是让用户因其他设备暂时离线而被阻塞。
关联:#12;docs/adr/020-quorum-confirmed-membership-transitions.md。
需要解决的问题
当网络分区两侧都可能由单台设备接纳新成员时,之后重新连接不能出现以下情况:
- 已经较新的成员名单被旧名单覆盖;
- 新成员先被宣布加入成功,随后又因另一侧状态到达而失去资格;
- 同一 Space 出现无法自动判定的两份正式成员名单;
- 已移除设备借助旧状态重新取得权限。
期望结果
- 一台当前可信且在线的成员可以完成新设备加入,不必等待其他成员上线。
- 加入完成后的权限、成员可见性和内容收发语义明确且稳定。
- 旧邀请、旧名单和延迟到达的状态不能覆盖较新状态,也不能恢复已撤销的权限。
- 设备重新连接后,对同时发生的成员变化有可预测、可验证的处理规则;不能依赖到达顺序或临时在线名单。
- 设备永久丢失时,用户不应因为无法取得旧成员过半数而被迫重建整个 Space,除非这是经过明确评估后仍不可避免的边界。
决策范围
需要重新设计或明确成员变化的授权与冲突处理模型,并据此修订 ADR-020 及受其影响的规格。可比较的方向包括:单成员授权下的唯一历史规则、具备明确权力边界的指定授权者,或把临时可用与正式成员资格分离;但本议题不预先指定方案。
无论采用哪种方向,必须明确:谁有权接纳新成员、两个离线分区分别接纳新成员后如何处理、已移除成员如何被阻止恢复权限、加入何时可以向用户报告成功,以及永久设备丢失的恢复体验。
验收标准
- 其余成员离线时,一台当前可信成员可让新设备完成加入并正常使用。
- 已保存较新状态的设备收到旧成员发出的同 Space 邀请时,不改变自身成员名单、权限或当前 Space。
- 两个分区各自发生加入后重新连接,结果符合预先定义的规则;不得静默覆盖、任意择一或让成员资格反复变化。
- 已正式移除的设备不能凭旧邀请、旧状态或恢复连接重新取得内容权限。
- 方案在两成员、三成员及永久设备丢失场景下都有明确且可验证的结果。
- ADR、规格、对外状态和端到端验证同步更新;不保留与新规则冲突的旧路径。
背景
ADR-020 当前要求由上一版正式成员中的过半数确认,才能正式加入新设备。该规则能防止旧设备把新设备带回过期成员名单,但也意味着:其余成员离线时,即使一台仍可信的成员在线,也无法完成新设备加入。
这不符合产品期望。目标是允许一台已可信、在线的成员继续把新设备加入同一 Space,而不是让用户因其他设备暂时离线而被阻塞。
关联:#12;
docs/adr/020-quorum-confirmed-membership-transitions.md。需要解决的问题
当网络分区两侧都可能由单台设备接纳新成员时,之后重新连接不能出现以下情况:
期望结果
决策范围
需要重新设计或明确成员变化的授权与冲突处理模型,并据此修订 ADR-020 及受其影响的规格。可比较的方向包括:单成员授权下的唯一历史规则、具备明确权力边界的指定授权者,或把临时可用与正式成员资格分离;但本议题不预先指定方案。
无论采用哪种方向,必须明确:谁有权接纳新成员、两个离线分区分别接纳新成员后如何处理、已移除成员如何被阻止恢复权限、加入何时可以向用户报告成功,以及永久设备丢失的恢复体验。
验收标准