4. Testnet Tasks
1. Network wide VP issuer key rotation
All active validators were provided with Verifiable Presentations (VPs) for both ProcessProposal
and
VerifyVoteExtension
.
It is common practise for issuer public keys to rotate, in this case there will be a grace period for the validators to update their VPs. The validators will be able to continue to operate with the old VPs until the grace period expires.
The grace period supports both keys, then the old one will be removed. Any validators that have not updated their VPs will be unable to proposa / vote on blocks.
This key rotation is done in 2 steps for testnet.
- There will be a proprosal to the network to add the new public key to the relevant routes.
- Grace period starts
- The Oversight Committee will then remove the old public key
1. Get a new VPs
You can use the protocol/scripts/ask_for_testnet_vp.sh
script to get a new VP.
# ./scripts/ask_for_testnet_vp.sh <validator consensus addr> <deedid> <some-private-message-to-selectively-disclose>
./scripts/ask_for_testnet_vp.sh dchainvalcons1ncyc985j4nsg7fyua6cfj08guw0c2ye6u6dt4w 6472 some-private-message-to-selectively-disclose
This will return both the Verifiable Credential (VC - To be kept private) and the Verifiable Presentation (VP - To be shared with the network).
------------------ Your credential is:
<Verifiable Credential to be kept private>
------------------ Your presentation is:
<Verifiable Presentation to be shared with the network>
deedid
This is the id of the deed document when your organisation onboarded. You can also get this by parsing your existing
VP - which is in <App_HOME>/config/validator_vp
in the Paradym Debug Interface.
For example, for the Gayadeed validator VP
eyJ0eXAiOiJ2YytzZC1qd3QiLCJhbGciOiJFZERTQSIsImtpZCI6IiN6Nk1rd0ZWc2VkQ280cGhWZ3B6bVdvbkFkZTNjaFhlSGhGU0M3dWlXa2Z1anpIQ2sifQ.eyJpZHgiOjY0NDcsInZhbGlkYXRvciI6ImRjaGFpbnZhbGNvbnMxNnc3ZnpuYXd4M2R2NWRxNXM0bG1mZnA4dnFtcnR5M2NnNzJmNDgiLCJ2Y3QiOiJodHRwczovL21ldGFkYXRhLnBhcmFkeW0uaWQvdHlwZXMvRHFKUmVrdEdpbS1JZERvY3VtZW50IiwiaXNzIjoiZGlkOmNoZXFkOnRlc3RuZXQ6MjlkZjNiYWYtMTRhMy00MDczLThkOGUtYWU1OThkMGFkZGZiIiwiaWF0IjoxNzQzNTAyNDM5LCJfc2QiOlsiS1BoeTFSd2xqTDJJUW1sMXFuTXhxdjFKeTlVbklzZFJpbmR1a1BGVlZLWSJdLCJfc2RfYWxnIjoic2hhLTI1NiJ9.pI5vqBBz2nYem0Sp6QgWgve7HIXjAEhMV6BIdhZsK09WyQabJwyJbrVNoDJQbFc5lpzr5OZHO0WpsjS9aj_CAA~
You will find the decoded payload to be
{
"idx": 6447,
"validator": "dchainvalcons16w7fznawx3dv5dq5s4lmffp8vqmrty3cg72f48",
"vct": "https://metadata.paradym.id/types/DqJRektGim-IdDocument",
"iss": "did:cheqd:testnet:29df3baf-14a3-4073-8d8e-ae598d0addfb",
"iat": 1743502439
}
where idx
is the deedid
for this validator.
Selectively disclosed private message
The purpose of this is to provide more context and background to the selective disclosure feature of the
sd-jwt
format we are using.
This can be any arbitrary message.
In the example above for Gayadeed, you may look at the JSON Web Token tab and see that _sd
field which contains the
not disclosed values of the other attributes present at the
document generation step during the onboarding process.
You can try to decode the <Verifiable Credential to be kept private>
and see the disclosed values.
2. Update the VP file
You can change the content of the VP file in <App_HOME>/config/validator_vp
by running dchain vp update <vp>
You can now restart the node to read the file.
2. Revocation
Specific validators can be revoked by their VP index (idx
) field.
Some testnet validators will have their VP revoked by either the Oversight Committee or as a gov proposal.
In which case, the validator can re-issue a VP with the script provided in the previous step.
During this time, a significant of the validators will be jailed.
In each case, the validators can get new VPs with a new index which should be the initial index+1000. Follow the steps above to get the new VP.
Malicious validator test
This part is performed by the team
Another node will be added to run custom binary to vote on blocks with revoked VPs
3. Notary Test
This part is performed by the team
- Notary: Test dynamic attribute attestation correctness (by Platform-D Ltd)
- Register multiple asset (without templates for now)
- Use public VC-API to notarise for different size VPs