Skip to content

Lock CaitSith threshold during 3.11 transition #3304

@gilcu3

Description

@gilcu3

Background

#3292 partitions ECDSA triples per t in DBCol::TripleV2 while dual-writing to the legacy DBCol::Triple (unprefixed key) for downgrade safety until #3298 drops the legacy column. If, during this transition window, a single node ever runs with two TripleStorages — i.e. two CaitSith domains whose reconstruction_threshold values differ — their dual-writes to the
unprefixed legacy mirror can collide and silently overwrite each other. The consequence is data loss rather than nonce reuse, but it's a real liveness hazard.

The cleanest way to keep that scenario unreachable in 3.11 is for the contract to refuse any operation that would introduce a second CaitSith threshold on the network. Once #3298 lands and the legacy column is gone,
the restriction can be relaxed.

Acceptance Criteria

  • vote_add_domains rejects a CaitSith DomainConfig whose reconstruction_threshold differs from the network's current CaitSith threshold (i.e. from any already-registered CaitSith domain.
  • Resharing votes are rejected if they would allow CaitSith domain with different reconstruction_threshold
  • Comment / inline doc on the new check pins the rationale and references Remove legacy Triple column family after 3.11 release #3298 as the trigger for removing it.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions