|
| 1 | +# vspd 1.4.0 |
| 2 | + |
| 3 | +vspd v1.4.0 contains all development work completed since v1.3.2 (November 2023). |
| 4 | +All commits included in this release can be viewed |
| 5 | +[on GitHub](https://github.com/decred/vspd/compare/release-v1.3.2...release-v1.4.0). |
| 6 | + |
| 7 | +## Downgrade Warning |
| 8 | + |
| 9 | +This release contains a backwards incompatible database upgrade. |
| 10 | +The new database format is not compatible with previous versions of the vspd |
| 11 | +software, and there is no code to downgrade the database back to the previous |
| 12 | +version. |
| 13 | + |
| 14 | +Making a copy of the database backup before running the upgrade is suggested |
| 15 | +in order to enable rolling back to a previous version of the software if required. |
| 16 | + |
| 17 | +## Dependencies |
| 18 | + |
| 19 | +vspd 1.4.0 must be built with go 1.22 or later, and requires: |
| 20 | + |
| 21 | +- dcrd 2.0.4 |
| 22 | +- dcrwallet 2.0.4 |
| 23 | + |
| 24 | +Always use release versions of all binaries when deploying vspd to production. |
| 25 | +Neither vspd nor its dependencies should be built from master when handling |
| 26 | +mainnet tickets. |
| 27 | + |
| 28 | +## Recommended Upgrade Procedure |
| 29 | + |
| 30 | +The upgrade procedure below includes vspd downtime, during which clients will |
| 31 | +not be able to register new tickets, check their ticket status, or update their |
| 32 | +voting preferences. You may wish to put up a temporary maintenance webpage or |
| 33 | +announce downtime in public channels. Voting on tickets already registered with |
| 34 | +the VSP will not be interrupted. |
| 35 | + |
| 36 | +1. Build vspd from the `release-v1.4.0` tag, and build dcrwallet and dcrd from |
| 37 | + their `release-v2.0.4` tags. |
| 38 | +1. Stop vspd. |
| 39 | +1. **Make a backup of the vspd database file in case rollback is required.** |
| 40 | +1. Stop the instance of dcrd running on the vspd server. |
| 41 | +1. Install new dcrd binary on the vspd server and start it to begin any required |
| 42 | + database upgrades. You can proceed with the following steps while the |
| 43 | + upgrades run. |
| 44 | +1. Upgrade voting wallets one by one so at least two wallets remain online for |
| 45 | + voting at all times. On each server: |
| 46 | + 1. Stop dcrwallet. |
| 47 | + 1. Stop dcrd. |
| 48 | + 1. Install new dcrd binary and start. |
| 49 | + 1. Wait for any dcrd database upgrades to complete. |
| 50 | + 1. Check dcrd log file for warnings or errors. |
| 51 | + 1. Install new dcrwallet binary and start. |
| 52 | + 1. Wait for any dcrwallet database upgrades to complete. |
| 53 | + 1. Check dcrwallet log file for warnings or errors. |
| 54 | +1. Ensure dcrd on the vspd server has completed all database upgrades. |
| 55 | +1. Check dcrd log file for warnings or errors. |
| 56 | +1. Install new vspd binary and start it. |
| 57 | +1. Check vspd log file for warnings or errors. |
| 58 | +1. Log in to the admin webpage and check the VSP Status tab for any issues. |
| 59 | + |
| 60 | +## Notable Changes |
| 61 | + |
| 62 | +- A new executable named vspadmin has been added to the repository. |
| 63 | + |
| 64 | + vspadmin is a tool to perform various VSP administration tasks such as |
| 65 | + initializing new databases and creating default config files for fresh vspd |
| 66 | + deployments. It also enables existing VSP operators to replace their fee xpub |
| 67 | + key, something which was previously not possible. |
| 68 | + |
| 69 | + Full documentation for vspadmin can be found |
| 70 | + [on GitHub](https://github.com/decred/vspd/blob/master/cmd/vspadmin/README.md). |
| 71 | + |
| 72 | +- The currentand any historic fee xpub keys are listed on a new tab in the admin |
| 73 | + page. |
| 74 | + |
| 75 | +- Fee calculation now takes the new block reward subsidy split from the activation |
| 76 | + of [DCP-0012](https://github.com/decred/dcps/blob/master/dcp-0012/dcp-0012.mediawiki) |
| 77 | + into consideration. In practice, this means that VSPs will begin charging |
| 78 | + marginally higher fees. |
| 79 | + |
| 80 | +### Config Changes |
| 81 | + |
| 82 | +- The vspd flag `--feexpub` is now deprecated and does nothing. The equivalent |
| 83 | + functionality has been moved into the `createdatabase` command of the new |
| 84 | + vspadmin executable. |
| 85 | + |
| 86 | +- The vspd flag `--configfile` is now deprecated and does nothing. It is still |
| 87 | + possible to run vspd with config in a non-default location using the |
| 88 | + `--homedir` flag. |
| 89 | + |
| 90 | +### API changes |
| 91 | + |
| 92 | +- After being deprecated in release 1.3.0, the revoked ticket count has now been |
| 93 | + removed from `/vspinfo`. The number of revoked tickets can be calculated |
| 94 | + by adding the number of missed and expired tickets. |
| 95 | + |
| 96 | +### Bug Fixes |
| 97 | + |
| 98 | +- Don't run upgrades unnecessarily on brand new databases |
| 99 | + ([#477](https://github.com/decred/vspd/pull/477)). |
| 100 | +- Don't initialize databases with private keys, only public |
| 101 | + ([#478](https://github.com/decred/vspd/pull/478)). |
0 commit comments