You can interact with the Validator Explorer that allows you to have a complete view of how the different validators are performing. This is one resource voters may use to find validator groups to vote for. The Validator Explorer tool is available in the following address: https://celo.org/validators/explore/
All of the existing validators and groups in the Celo network are included in this view. The default view shows all registered validator groups - if you click on any of the group names it will expand to show the validators affiliated with that group. You can also sort results by each column's value by clicking on the header field.
If you are looking to see how your validator is performing, you should first find the group your validator is affiliated with. Then you can click on the group name to see your validator and the rest of the validators affiliated with this group.
A critical element of this explorer is the Validator Group name, which can help voters recognize organizations or active community members. This name is fetched from the
account information registered on-chain for your validator and validator group. In order to combat name impersonation, a group can register a domain claim within their metadata, which you can read more about here. This verification is done by adding a TXT record to their domain which includes a signature of their domain claim signed by their associated account. This claim is then verified by the validator explorer. Individual users may also verify a claim using
For example, if a group was run by the owners of
example.com, they may want to register their Validator Group with the name
Example. The name does not need to be the same as the name of your domain, but for simplicity we do so here. To give credence to this name, they may want to add a DNS claim. They can do this by adding a DNS claim to their metadata, claiming the URL
example.com, while simultaneously adding a
TXT Record to
example.com that includes this claim signed by their group address. Let’s go through this example in detail, using a
ReleaseGold contract as our validator group.
Assuming you have already deployed your Validator Group via a
ReleaseGold contract, you will need these environment variables set to claim your domain.
The address of the validator signer authorized by the validator account
The address of the validator (group) signer authorized by the validator account
First let's create the metadata file:
# On your local machinecelocli account:create-metadata ./group_metadata.json --from $CELO_VALIDATOR_GROUP_RG_ADDRESS
Now we can set the group's name:
# On your local machinecelocli releasegold:set-account --contract $CELO_VALIDATOR_GROUP_RG_ADDRESS --property name --value Example.com
Now we can generate a claim for the domain associated with this name
# On your local machinecelocli account:claim-domain ./group_metadata.json --domain example.com --from $CELO_VALIDATOR_GROUP_SIGNER_ADDRESS
This will output your claim signed under the provided signer address. This output should then be recorded via a
TXT Record on your desired domain, so in this case we should add a
TXT Record to
example.com with this signed output.
You can now view and simultaneously verify the claims on your metadata:
# On your local machinecelocli account:show-metadata ./group_metadata.json
Take a look at the output and verify these claims look right to you. This tool also automatically verifies the signatures on claims you've added.
Once that record is added, we can then register this metadata under on our
Validator Group account for external validation.
Before we do this, you may also want to associate some validators with this domain. The benefit of doing this is to extend your DNS claim to your validators as well, meaning your validators can also verifiably be associated with your domain. You could also do this by adding individual DNS claims for each validator, but this would require separate
TXT Records for each, which is inconvenient. Instead, you can simply associate the group and validators together under a single claim.
In order to do so, you will need to claim each validator address on your group's metadata. You will also need to claim your group account on each of your validator's metadata to complete the association. We will run through an example of a single validator now:
First lets claim the
validator address from the
# On your local machinecelocli account:claim-account ./group_metadata.json --address $CELO_VALIDATOR_RG_ADDRESS --from $CELO_VALIDATOR_GROUP_SIGNER_ADDRESS
Now let's submit the corresponding claim from the
validator account on the
group account (note: if you followed the directions to set up the attestation service, you may have already registered metadata for your validator. If that is the case, skip the steps to create the
validator's metadata and just add the account claim.)
# On your local machinecelocli account:create-metadata ./validator_metadata.json --from $CELO_VALIDATOR_RG_ADDRESScelocli account:claim-account ./validator_metadata.json --address $CELO_VALIDATOR_GROUP_RG_ADDRESS --from $CELO_VALIDATOR_SIGNER_ADDRESS
And then host both metadata files somewhere reachable via HTTP. You can use a service like gist.github.com. Create two gists, each with the contents of the respective files and then click on the Raw buttton to receive the permalinks to the machine-readable file. If you had already registered a metadata URL for your
validator you just need to update that registerd gist, so you can skip the
validator metadata registration below.
Now we can register these URLs on each account:
# On your local machinecelocli releasegold:set-account --contract $CELO_VALIDATOR_GROUP_RG_ADDRESS --property metaURL --value <VALIDATOR_GROUP_METADATA_URL>celocli releasegold:set-account --contract $CELO_VALIDATOR_RG_ADDRESS --property metaURL --value <VALIDATOR_METADATA_URL>
If everything goes well users should be able to see your claims by running:
# On your local machinecelocli account:get-metadata $CELO_VALIDATOR_GROUP_RG_ADDRESS
If everything went well, you should now have your group and validator associated with each other and with your associated domain!