Closed cl0ete closed 4 months ago
This first one is not a bug. The semantics of the “publish” operation is that when called it publishes the pending revocations. There is not a pick and choose feature. So I think that one is OK. If the documentation needs to be updated to clarify that, we should look at that.
The second one looks like a bug though. If the issuer has said to publish the revocations and indicates both cred_defs, then both should be published to the ledger. We’ll need to investigate that one.
Awesome report by the way. Thanks @cl0ete !
Hmm. Looks like scenario 2 is a problem with endorsement scenarios only. I'm looking into it.
Discovered two bugs with revoked credential that are pending publication.
Scenario one: Revocation registry has credential
a
andb
as pending publication. Credentialc
gets revoked and is immediately published to ledger. The response of revocation of credentialc
indicates thata
,b
andc
are revoke i.e. published. Revocation registry's pending publication field is now empty and revocation fora
,b
andc
is written to ledger. Only expect revocation of credentialc
to be written to ledger.Scenario two: Issuer has two credential definitions (associated with different schemas) with pending publications on both. Issuer calls publish all i.e.
Only publications for
rev_reg_id_a
are written to ledger. But both of the revocation registries are updated as if both of the ledger operations were done. From issuer side it looks like credentials are revoked but from holders side it still indicatesrevoked: false
Detailed example of scenario one
Response:
All credential revocations are published. Would expect just one to be published
cred_rev_id: 6
in this case. See onerevoc_reg_entry
on ledger with all credential revocations ids1-6
Detailed example of scenario two
Two revocation registries with pending publications:
Issuer publishes all pending revocations:
Response:
Only see one
revoc_reg_entry
on ledger:When issuer gets revocation registry of one not written to ledger we see this:
From issuers point of view the credentials are revoked but from holders side its not
"revoked": false
Holder can also still pass a proof exchange.Looks like the agents local records gets updated but the ledger write never happens or is interrupted (not sure)