Open lenkan opened 8 months ago
Would a general design approach to consider for resolving various multisig group ceremonies that could get stuck be to introduce a time-to-live concept? In such an approach where these ceremonies are stuck would get reset (expired) because the initial request would expire if not fully committed after the default TTL for that type of request or an explicit TTL in the request.
See https://github.com/WebOfTrust/signify-ts/pull/286 which addresses the 'catchup' for member 2 (they have the exn, notification).
Would a general design approach to consider for resolving various multisig group ceremonies that could get stuck be to introduce a time-to-live concept? In such an approach where these ceremonies are stuck would get reset (expired) because the initial request would expire if not fully committed after the default TTL for that type of request or an explicit TTL in the request.
@edeykholt a lot of these issues are with one member getting out-of-sync with the group ops (the group ops succeeded). in terms of the out-of-sync member, i think the rollback i'm implementing could eventually be part of the 'time-to-live' that you mention. Perhaps it should be configurable so that the member can configure their expectation for the event, something like 'Lets issue this credential over the next 60 minutes, but if it doesn't finish by then, rollback this operation so we can try again later'.
@2byrds Seems like a good step forward.
Affected versions
Reproduction script
See a reproduction script here: https://github.com/nordlei/vlei-sandbox/blob/main/src/issues/multisig-issuance-problem.test.ts
❯ src/issues/multisig-issuance-problem.test.ts (6) 49803ms ✓ Resolve OOBIs 5089ms ✓ All members create multisig group 7305ms ✓ All members create registry 4019ms ❯ Credential issuance (3) 23679ms ✓ Member 1 creates the credential 9502ms × Member 2 creates the credential - by misunderstanding 23677ms ✓ Member 3 joins credential issuance event 6332ms
Steps to reproduce
After this step, the group state of member 1 and 3 are synced. But member 2 is out of sync. The latest event on their multisig group will not be the same as for member 1 and 3.
How does member 2 get out of this state? They cannot simply join the event create by member 1 without first rolling back the event they accidentally created.
Notes
From previous discussion on discord