Skip to main content

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.

  1. There will be a proprosal to the network to add the new public key to the relevant routes.
  2. Grace period starts
  3. 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

  1. Notary: Test dynamic attribute attestation correctness (by Platform-D Ltd)
  2. Register multiple asset (without templates for now)
  3. Use public VC-API to notarise for different size VPs