Files
validator-list/doc/validator-list-guide.md
wilsonianb 26ee282bed Add docs
2018-06-07 13:58:56 -05:00

136 lines
17 KiB
Markdown

# Validator List Tool Guide
This guide explains how to publish an XRP Ledger validator list.
A validator list publisher uses a public/private key pair. The publisher is
identified by the public key. The private key should be tightly controlled.
It is used to:
* sign manifests authorizing an ephemeral key to sign validator lists as the
publisher identified by this public key.
* sign revocations indicating that the private key has been compromised and
the publisher public key should no longer be trusted.
Each new manifest invalidates all previous manifests for the publisher public
key.
The current manifest needs to be present in the published validator list.
Servers that trust the publisher will adapt automatically when the manifest
changes.
## Validator List Publisher Keys
When first setting up a validator list, use the `validator-list` tool to
generate the publisher key pair:
```
$ validator-list
```
1. Enter `1` for `Create validator list publisher keys`
2. Enter a name for the keys.
Sample output:
```
Select a name for this credential set: my-publisher-keys
Publisher keys stored in privkeys.txt and pubkeys.txt
Ephemeral keys stored in my-publisher-keys/
```
Keep the key files in a secure but recoverable location, such as an encrypted
USB flash drive. Do not modify its contents.
Use ephkey1.txt key and manifest to generates validator lists.
## Signing Validator Lists
Use the `validator-list` tool to generate and sign validator lists
```
$ validator-list
```
1. Enter `2` for `Sign validator list`.
2. Enter the ephemeral private key from ephkey1.txt
3. Enter the list sequence number. This should exceed the sequence number of the
previous list.
4. Enter the numbers of days from today for the list to expire.
5. Enter the manifest of the validators to include on the validator list, one per
line.
Best practice:
* The set of validators in a published list should have at least 90% overlap
with other known published lists.
* The set of validators in each new published list should have at least 90%
overlap with the set in the previous list.
* A list should expire before the sequence+2 list is published.
Failure to follow best practices could result in a ledger fork among rippleds
using your list.
Sample output:
```
Enter ephemeral private key:
****************************************************************
Sequence number: 1
Validity in days: 14
Enter validator manifests, ending with a blank line
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
Adding the following validator public keys to the list:
nHUBGitjsiaiMJBWKYsJBHU2shmYt9m29hRqoh8AS5bSAjXoHmdd
nHB1FqfBpNg7UTpiqEUkKcAiWqC2PFuoGY7FPWtCcXAxSkhpqDkm
nHUpwrafS45zmi6eT72XS5ijpkW5JwfL5mLdPhEibrqUvtRcMAjU
nHUgoJvpqXZMZwxh8ZoFseFJEVF8ryup9r2mFYchX7ftMdNn3jLT
nHUXh1ELizQ5QLLqtNaVEbbbfMdq3wMkh14aJo5xi83xzzaatWWP
nHBtzeujejMTAWCymPjcaQUjLgxnfxDGTGoZnP3PvHRkR24hVgjw
nHBvriTnYGxP8ix3HfWo2GTFFo2zuxNXyRh3U8F9LvVZd718hhxF
nHULGMbQHyXe92wtnxA1X9TEp26qPiRfwfTv5MskD1yMro7bQ2df
nHUKp8XUkaFN6GzQ3o4qTE1w9aAD5uFjZ8vDt6pwjBsTFRq5FWEb
nHBtDzdRDykxiuv7uSMPTcGexNm879RUUz5GW4h1qgjbtyvWZ1LE
nHUzum747yqip3HWSgzSNHNMjmLUqhroNVWidSRTREswEVhKNQEM
nHUon2tpyJEHHYGmxqeGu37cvPYHzrMtUNQFVdCgGNvEkjmCpTqK
nHU2Y1mLGDvTbc2dpvpkQ16qdeTKv2aJwGJHFySSB9U3jkTmj4CA
nHDDasc9BHNB99PW8KUduS8Phqg8NPUmjufzMU6HGGDMUH2xNpPh
nHUUrjuEMtvzzTsiW2xKinUt7Jd83QFqYgfy3Feb7Hq1EJyoxoSz
nHB29c3ohq7KDtecLSLRrTV9k9Z3rLgmo1v8uuNmEEHxhTqfaQwo
{
"blob" : "eyJzZXF1ZW5jZSI6MSwiZXhwaXJhdGlvbiI6NTgyOTQwODAwLCJ2YWxpZGF0b3JzIjpbeyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFRDZDOUU4NDU2RkRBNzAxNDRBNzNFNzA5RDUwOTY0NjNGMTU4NUY3MTU4ODgxRjNCREM1M0U4QjRGRjFBMUFCOUIiLCJtYW5pZmVzdCI6IkpBQUFBQVJ4SWUxc25vUlcvYWNCUktjK2NKMVFsa1kvRllYM0ZZaUI4NzNGUG90UDhhR3JtM01oQWplZjRIcnBOSm44RE9TUEFGbmNQV3ZNNUdOVFgzc1lLTlk5d21YcXQ1M0Rka1l3UkFJZ2ZsQ3c5SmxDVEFXd050QVB4SjJxTnA5K1pocWVEK0NxeHhkRlZhd3QyYmNDSUJ5VTFrQkN2M1F6dzFsM1hpMlluQUcvelM1TkxGNGc5bkR6dnRrY2JwSkpjQkpBT29NQzR6Njl6ZzhFYllHWGQ4TGxROVdjVFBMaEpNTmxpTkdhTWVXdmszRFhidWRGQUJBOVBvQjFZMC9iZ1hhVENsQXFLaW0rcHBjUkNyRGh3V3pZQXc9PSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRUQ0NEZGRTJGNjI0OUMzNzMyMUEzNDlDMEE5ODNDNUQ1RDNFRTMzNDAxM0FFNEE1RDg5ODZFMTY3NDkyMDM1NEM5IiwibWFuaWZlc3QiOiJKQUFBQUFKeEllMUUvK0wySkp3M01obzBuQXFZUEYxZFB1TTBBVHJrcGRpWWJoWjBrZ05VeVhNaEE1NW9HQXdqWGVUbGFVODZwVmNxbzJuQUIzU0dXcXNwWUJ1SW1SVExjKzVkZGtjd1JRSWhBUFJEaXF0QXZ0RHRwdk5VYzQ0VWdlRTFWSVVqdElvVTE4SGlMTW1MZmYvVEFpQnhpNy91T2NFT0l5TW0rM2hGdHQvRVlnN1V4MXFEU1Izd0JRd2duU1pVOEhBU1FDL0s2RnI2M3pjM1I4MVlNeWFjQzlXZHptMUQ4Z29sRmMvNjZwVVNsNDdsRE1rZDB2WVZZSWVhUk15SitybHhaV2k1cU1hdll4WFN6NDNBenluUWlBRT0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVENTdFQTQzRDUxRUE0RDFDNzg5MjlCQjI0MDkwRUQzQzg5RjAzRTFFRDcyQkM1NjRFOTU3RDg3MjczMDA2NTQ0RiIsIm1hbmlmZXN0IjoiSkFBQUFBSnhJZTFYNmtQVkhxVFJ4NGtwdXlRSkR0UElud1BoN1hLOFZrNlZmWWNuTUFaVVQzTWhBdFN6c0pqc2VSaVdYMWNyRTNCNEVmK2Z0S1dNYmpScjgxWkRDckNIcG1qSmRrWXdSQUlnSWVIMFU2UTJVOUovK0lqRDlKYm9GNmowTVNlaitYR2xCbE0xcDhIYjBJb0NJSEpubTVTUXVNbVQydW5JcjdEUzBuVVpTQmFWOVRlay9aR2RxS3FZaHZ1dWNCSkFLaDd2OVQwS2lEZU5tdk52d0dZdTdQaTBPb1QvS1k1YmdpYTlvNjVLbjY0M1Z6OERweFBYVWl2dGpJTTdaekMxKy9RYmdrSWRoaUhXUjA2cXM5VmNDUT09In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFREFGQThDNjgxMjFBNUE3RENGOEJFNTVCRDY4RDU2REQzNDJCODM0Mjg5OTYxQ0EzOUJFNkYyRDA2QjlGMUU2MDUiLCJtYW5pZmVzdCI6IkpBQUFBQUp4SWUydnFNYUJJYVduM1BpK1ZiMW8xVzNUUXJnMEtKbGh5am0rYnkwR3VmSG1CWE1oQXBCNmk4RWNqNWJEd3JhUXlIQ3lJOGs0VXV5L2xMMVNDZ3Y1UnZUU0tEQVJka1l3UkFJZ0Noc0E3S21jSTRaVkV0M285T3Y5ZXczMEdQVTEycE1lcEljZCtlMTFwdjhDSUVpajNXbGdESkh3d1U3SHNoMXZNWS9BbzVuM1o4RkhCSk9GU0hzWHp2dE5jQkpBeE9GWTVYY2Y4bEhmK0Z5ZnE5ZU1SWHBZV0ZRR2REYkRpajhBdEd2Y0xnQkpTT0toMWlWNUcwNTliQ0c4OEJ1cVE3cnFWNHljU1laNXVqMDMyaTY2REE9PSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRUQ5OThGRTY2OEIwNTQyOUE0NzkwNDEyQkVEMzc1QjIxOUYzQkJGNUFEQ0YyMTc2NTg3OTUxMUExNjU3MjIzNDU0IiwibWFuaWZlc3QiOiJKQUFBQUFKeEllMlpqK1pvc0ZRcHBIa0VFcjdUZGJJWjg3djFyYzhoZGxoNVVSb1dWeUkwVkhNaEFwN2lqa3dRelJ3OWlubU5zVGVtM0tVVWt4aDlZTjFCMTBYSVhrVDNTTlZSZGtZd1JBSWdLaDB6bjBvYkJQdi80T2dReE5mZVhhTkJFUkQrcEpWQzFwVzU2MGdMblFrQ0lGK1Q1WUUwa0tOQnhkRm5oVzhlMmpGK2xUbEZkcndIMUxrUnhtaG9VQXJkY0JKQTZ3Mk5CZmNwbDRlUnMrSHp0R0FvNHdCL296UXNTMzdPQTVsQm9BSHp3OVYzQ0I1WFFDRk1kMHpRdWpNREdUazd4K09pejk3UDRPTDVmLzF2T0IrV0F3PT0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVENDdBNzlGREI3MTIwNTYzNjZDMDg2MTczNTdBRjQxMzcwOENBMTE0OTlGRDQyNjM0RkRFRTQyQTcyMTM2MDM1NSIsIm1hbmlmZXN0IjoiSkFBQUFBRnhJZTFIcDUvYmNTQldObXdJWVhOWHIwRTNDTW9SU1ovVUpqVDk3a0tuSVRZRFZYTWhBMHNwYXBwRHFnREF4VHlacmYyVVllRlBLUE53Y3BzYjlKYzdWVGlwaEk1L2RrY3dSUUloQVBLOHlEYWtIZE9VS2MrekFGcU5HQWxjdzlWRDAvUDhFbHBxQmZVK0lBNXlBaUJyWGNJY3Z1RVFCWHhpZkZHSFNSalhGY2doWkxTVGFhUmNPNTRrOFBJU1VYQVNRSGpKZlByL01qLy9XaWhHS0puMnowMUxJNml6b1A4a3l1NFVhV2FUT2FVcU41bzZBR2NJeXN4NFEwMXZEVEJZWlk0dGozOXV3ekRwbGNqemY4ZGlmZzQ9In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFRDQ5RjhFQjgwNzFFMjZENEUwNjcyMzhENjJENjdDQTZFQkZCMjk4QjRBNzJEQ0ZBRDUzNkE3RUM4OTI1QzUxOUIiLCJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUxSitPdUFjZUp0VGdaeU9OWXRaOHB1djdLWXRLY3R6NjFUYW43SWtseFJtM01oQW9nTW1RVFJBRksvK20vWFdRZkp2WFRlTWNhaXlGNmdraGdBc3NkTE9jaUlka1l3UkFJZ054WWF2SlB5SEFOdXhvZ1FZN1JOQlA5dFpvZ1pKeEYxd1pxem00YTM3R2dDSUJPdmJlUTgrUDQ2Q0NJY3k0WkNaQTVyWlorOTNIMGFLSlpRMytJQTBPT3VjQkpBQVNUcFFLdEVKa2Vxd0h6K2pLV052V2wwc0hSUVpTU0p1WWlNeXlVYTd5dHBzZXY2TkdvRm4xYk5wWVRndnNhUHhvejd2SHNrRGgyWjZnZWJTRENSQ0E9PSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRUQ4MTA4RjdEOUVFNzc5REMxMDc1RUMzQ0Y4RUI5MDA0RERGODRDRDBBMEZGNTc3NUM5RTM3NUNDQUNEQUEzMDIyIiwibWFuaWZlc3QiOiJKQUFBQUFGeEllMkJDUGZaN25lZHdRZGV3OCtPdVFCTjM0VE5DZy8xZDF5ZU4xekt6YW93SW5NaEFsdlBKQU5RY1JVU05VUitObFp1bzRrR3BZRjhsOXBIUFAxWlJPT1VjTllSZGtZd1JBSWdSV1padUpMQWYzU05NR29GeWdVbHUrZUFENTFab0hGTWN5b2ljbjBXS3VjQ0lHdzRuOWNWRFBPQkdDOHdsSkR5OTI4Mng5UmRPd28xY28yZytOWmxjL0ROY0JKQUtKaEsvYW02TDdLRTQ1ME5WemhwVlZvTDhPRk1vMG1GeGs4QkRHNlFPMmNTTk1OM095d2Y0MEQrSWxlczlMWHh4dnZQQjZnV1NtUGx3RjdkTlI5R0FRPT0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVEN0UzQkFGRjkwMURFNTI1QjAwQjJDMUZFMTlBRjQ0OUEwODBCNUYzMTAwQzZFQzE4MkM4NjdBRjYxRjcxMEZGRCIsIm1hbmlmZXN0IjoiSkFBQUFBRnhJZTErTzYvNUFkNVNXd0N5d2Y0WnIwU2FDQXRmTVFERzdCZ3NobnIySDNFUC9YTWhBNStHREpoMkFwV0tDaDJONW9teDRGQU9GRXFYTWpxeTFISjVFN1dBM0ZyT2RrY3dSUUloQU1SZXp3alRBTDM1anBqajE1anFvSFV2Um03KzdpSHBVNDdhS0U2SEVDaFpBaUJTTUlaYU1XdjZxTkpIbmlZcHNZSHg0T1BQcEJvQ01NZE1WQUdmRmk5ZkszQVNRRTBUWWlJc0d2MC95bHBxR0VCaUxrazJYanJBOCsrQWt6cHI5dmNUdHJrSGlERG8wY0hLTzltUlVMQVhlc1JyT3lGYjVRY08wbDBWc3dldkQ1amxzd2s9In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFRDQ1RTgwQTA0RDc5Q0I5REYwMEFFQkQ4NkRDREMxNjg2RDY0MTlFQTlFNUUwRTcxRjFBODE3RTA4QjUwNzZBNTUiLCJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUxRjZBb0UxNXk1M3dDdXZZYmMzQmFHMWtHZXFlWGc1eDhhZ1g0SXRRZHFWWE1oQXhabzE1N3BjQjlkZTZTbWs3aG9LM3dOQ0FyNGFGWnRmQVBpN0NFNG1OSmxka2N3UlFJaEFMbFZqWENmaXkvbXRYQldzTnQ3N3Q0aktjTkVCcFJWOHp2K1NwVTVsQ2gwQWlCYTh2bzh4eHB2aVlsZjR6ZEcrblFoQjJPZ2ZrUVpaUE1IT3Q3Q2FYelhnWEFTUUw4TzVwMDgzbWc0S0tMOHVaZk1hVXFkZ3p1SjBHdGExbHlVV1BjdFRQQ3hZMTM1WHdLK25KQWRGc0lVRk5KOU1Qam5wQ21TallWelZhNk01L25BY0FJPSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRUREOEM4ODY0Mjc5NUNFNjlDNUI3ODBFMDE3MDJDMzcwRjk1MDdEMEI2NDQzM0YxN0VGRTcwRjI2MzdBNDBBREI3IiwibWFuaWZlc3QiOiJKQUFBQUFGeEllM1l5SVpDZVZ6bW5GdDREZ0Z3TERjUGxRZlF0a1F6OFg3K2NQSmpla0N0dDNNaEFuRmZyK3I5Qlhkc1hFL2NCbEpNeWQvWHNPMUE1WEVZQ2N0cnN2TEVYK0RtZGtjd1JRSWhBTlJjUk1nOVNBWG9hT3ZIRFoyYXY5UnpFYVphVkVOZlFpVmdzaStPeDNGMEFpQjJzblNJT202YzQvaW5idFUwVW1XTFFUenV3a09kVUZQSUI4QXg4ZG1HdUhBU1FNVUlmWE1qOTZrY0ZUU0puTUZDL21XL0FROGJLWGtGcnJrMENVVEZGS3dlRWpUcStTVHJGaTZxTEwyTVQ3bnZlR3hzWEJDZ3p0amMwcUdhczlLRldnTT0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVEQkRFQjkwMUY3Qzc1RDBFMjBDNkM0MkFGMDNCRTBEQTQwMzc3QUYxOTM5QTE4QjNDQjM2Nzk2NjFERDVGOUY3NCIsIm1hbmlmZXN0IjoiSkFBQUFBRnhJZTI5NjVBZmZIWFE0Z3hzUXE4RHZnMmtBM2V2R1RtaGl6eXpaNVpoM1YrZmRITWhBZzNjeUtOUE1QcUtnUjdrSWk3Yy84R0wvWWdkQnRnNG1TQVd2d21hZXZWR2RrWXdSQUlnV3pHOEdxWWczWXB3RHM4eFhhOVhxTEhzczc2S1QydUFIUmhVWEZWVXFDUUNJRzJFdmJGS254ZXpSZDljcFBIU3QzMkhYSytQNCthTDNwMit2cWxDeFJSOWNCSkFib1hUbVlUYXlvY0EzemY5ZFdFWHR5YWVPR0MxazVXZFlVUnpQbGVldnZhbFI0eFZvWHpzMzhpR1B4RnIvcEE5bkwrTTRkdXUwR0tDSGxWaXIrZkJBZz09In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFREExNzg3MUU3MkIwQzU3MEFDNDM0NUM2MENGMDJBRkJCQjc0MEE2MzFCN0FEMEUxRTU3MzIxNjU3NEQ5QUVBMDIiLCJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUyaGVISG5Ld3hYQ3NRMFhHRFBBcSs3dDBDbU1iZXREaDVYTWhaWFRacnFBbk1oQW9qeXV6Z3RyZVFreFFqOHBySHhPc2JEY0Y1ZnU0WFhiMEt4RUwvUHE1SGhka2N3UlFJaEFOZlBETFpQNDdhQ1d3dDVrQm5wNzVCdXVDZ3A5YzRCZkpQZDY2U0ZDdzYxQWlBSnZlZ0J2dlBJcmVjK1hPU3pLUmZpNXV1WFd4dGw5RXlyMmFQQllYdmJSSEFTUU1VTFlFbzdiZVJmb1VDbmprMXNUWXlZOTF0TElHTGdubmFXWGhVbTgwK3pzNUlHZWdrOHFpaktBdEJPTXVCQzcxbEFCNEtoSmMrZEIycnBNT0ZjNWd3PSJ9LHsidmFsaWRhdGlvbl9wdWJsaWNfa2V5IjoiRURGNDZFRTI3QUQwRTFBNzE0QUZFQ0RBODE2RUFCNzExNDYxNEZDQjkyRDBDQjREOTdCNkE4OEVENDM0MzRBRkM5IiwibWFuaWZlc3QiOiJKQUFBQUFGeEllMzBidUo2ME9HbkZLL3Myb0Z1cTNFVVlVL0xrdERMVFplMnFJN1VORFN2eVhNaEF3MEFUV2pWVHQ0RmZlS083a3Y2ZkZnZC9nbzIrZDVCU3lVY1VSbVJXblR0ZGtjd1JRSWhBTXdPZ0RlYzdRWVlObmdzcGc5MHdFdlZic29oMnV4MTRSUFR3K0dIYVhObEFpQUxnZkVzeitBRjRleVgvWTVpNDRWckZqRkZJTVdVZk9aYVFKdHN4dGVNMVhBU1FMT2FGMHQyWnBxVktkOEpFU1FWWSt6VTU2N2lBQUcyYW1UUFp4OTU4NzVTOUE2UGwra0g1VEdITUFlV2pnV1NxZmgzbTJIQkpYN05JY1hiOTh2eTlBQT0ifSx7InZhbGlkYXRpb25fcHVibGljX2tleSI6IkVENkU0QzQxRTU5RkZCRUI1MTcyNkU1NDQ2ODUwMkZFNjQzNzIzOEZBNzhFQTUxNjM0RTdCRjBEMDkxNzFBRUU4RiIsIm1hbmlmZXN0IjoiSkFBQUFBRnhJZTF1VEVIbG4vdnJVWEp1VkVhRkF2NWtOeU9QcDQ2bEZqVG52dzBKRnhydWozTWhBdXp0R1diL09pMS9WNW01ZHVqV3I5SG1iS1J5SzRYWWsra211RlBTZ0FGcmRrWXdSQUlnZlErQmdYWDZRYmxaeTRIMDVvN0dQU0l3cVM3UVFSVVc3ZHFGNTRJQWlpTUNJSDRYZkx3OTU2aUVhb3haT2s3S2N0aW4yWDloTWZhTE43d3lzOXlBVUZvWmNCSkF1ZUVpODRYUjNMbDFHTEpXYW5XMWcxTWRVai8wUEF4SmJ3NkVFUVJ1RzN6ZG51UkhOWGxkNlVaQWJJa1ZjUDB6dGZxdWxCempiY3NMRE9LRkVpY1NCZz09In0seyJ2YWxpZGF0aW9uX3B1YmxpY19rZXkiOiJFRDFDREQwOTU0RTk1REU1RTM2QUI1RTk2NTc1MDMxN0UwNDMzMTIxMDZCMEU2RUVFRjFDMTlFQ0ZBNkI0MUNCRkIiLCJtYW5pZmVzdCI6IkpBQUFBQUZ4SWUwYzNRbFU2VjNsNDJxMTZXVjFBeGZnUXpFaEJyRG03dThjR2V6NmEwSEwrM01oQW1UaEZUMmJ2eU02Uy9TNVUyVVY0VmtyYjNnVGRkbmZjOFhiVGxrRTRMMm9ka2N3UlFJaEFOMFNBV3lXNTZlcmVSK1dSOHZSMlpXWjl5ZGhwR0RWRm51WDFlVWRKU1FqQWlBVXAxZFpDOU1ISkhKRTVkc09WNWwrT2J5a3pSblo5MkM0TGZDUzF6Y3BXbkFTUUlqSmY4T2VrWlFGczRNQWcrdDE4T2xUTmgzeURTblAvd0wvbGFsV0hVSkYrYS9VQ2d1cERGYjh1TVRTNTRDWGgvWDM4cWRBNGw4dEtrRUhZc1owRXdrPSAifV19",
"manifest" : "JAAAAAFxIe3O84babkQJIsShuQSSesg3zlYYTzffZn3HQDasAdIr4nMh7dwKxFnWQR/HrmpAUP/u6vmG9O7JY7HwVxajnj755ApvdkAvGmaDIcFyXtL1+kjX6AqNWSfLOsed9zcS2KNgvjBuLOJbW1g/TSYoDzvcTXdFQ0gWALPqTMHUoex5/NZYViwDcBJAUnf/+rB9CbG9m6mq2A1zx23Ul9BPt0x4x+w0WK7i0KTLNUy3eQntCs6tj2OJKFY/e7IuaCMoBfLFk6Fv7unyAg==",
"signature" : "C0B8BFECDF2E1D8E94AC911373B14F36325E9B6C3049A4366FC06A8692A8F66447C1AC5C6FFB6796F314FC192CFDFB4D07CDCBA7C2F4AB7508E21CE39BDDDC04",
"version" : 1
}
```
Serve the outputted JSON at your published validator list site.
## Using Your Validator List
Rippled operators can add the following to their [validators.txt](https://github.com/ripple/rippled/blob/develop/cfg/validators-example.txt)
file to configure their rippled to use your published validator list:
* Add the hex-encoded public key from your [pubkeys.txt file](#validator-list-publisher-keys) to `[validator_list_keys]`
* Add the URI serving your published validator list to `[validator_list_sites]`