fix: resolve missing AES on delegate's witness after delegation - #1402
fix: resolve missing AES on delegate's witness after delegation#1402krillero wants to merge 1 commit into
Conversation
5d84789 to
cbf7e8a
Compare
Witnesses accept delegated events (dip/drt) before the delegator has anchored them, to avoid a deadlock in the delegation flow. However, the authorizer event seal (AES) was never back-filled once the delegator's anchoring event arrived, leaving the witness permanently showing "Not anchored" for the delegated identifier. Introduce a pending witness delegation escrow (pwde) that tracks delegated events accepted by a witness without an AES. A new processEscrowWitnessAnchors method, called from processEscrows, periodically checks whether the delegator's KEL now contains the anchoring seal and stores the AES when it does. Fixes WebOfTrust#1317
cbf7e8a to
bea42cf
Compare
|
I also tried "repairing" a witness using this escrow. So, after completing the delegation ceremony on the broken version, where the witness then is missing the anchor event seal. I can switch to this branch, and then do The escrow will run on the witness, and the anchoring event seal is added. |
|
After reading through this I like it and believe it is half of the solution. The half we have in the PR is the witness side where it can accept the delegator's witness approval. What I believe the other half should be would be a seal propagation Doer and an escrow in the witness that would put the local delegate's dip event in a seal propagation escrow and after the delegate discovers the delegator's approving seal via a keystate query then the seal propagation doer would look up the current witness set for the delegate and push the seal to each witness, effectively doing |
|
conclusion of 5/5 meeting was to accept this on 1.3 branch if Phil approves. (or a sidecar watcher on 1.3). Reasonable approach on 1.2, given there isn't a local watcher (GLEIF). |
|
@krillero please reopen this PR to v1.2.14, the new release branch. |
|
I opened #1498 |
Witnesses accept delegated events (dip/drt) before the delegator has anchored them, to avoid a deadlock in the delegation flow. However, the authorizer event seal (AES) was never back-filled once the delegator's anchoring event arrived, leaving the witness permanently showing "Not anchored" for the delegated identifier.
Introduce a pending witness delegation escrow (pwde) that tracks delegated events accepted by a witness without an AES. A new processEscrowWitnessAnchors method, called from processEscrows, periodically checks whether the delegator's KEL now contains the anchoring seal and stores the AES when it does.
Fixes #1317