vspd v1.2.0
vspd v1.2.0 contains all development work completed since v1.1.0 (March 2022). Since then, 80 commits have been produced and merged by 3 contributors. All commits included in this release can be viewed on GitHub here.
Dependencies
vspd 1.2.0 must be built with go 1.19 or later, and requires:
- dcrd 1.8.0
- dcrwallet 1.8.0
When deploying vspd to production, always use release versions of all binaries. Neither vspd nor its dependencies should be built from master when handling mainnet tickets.
Recommended Upgrade Path
The upgrade path below includes vspd downtime, during which clients will not be able to register new tickets, check their ticket status, or update their voting preferences. Voting on tickets already registered with the VSP will not be interrupted. You may wish to put up a temporary maintenance webpage or announce downtime in public channels.
- Build vspd from the 1.2.0 release tag. Build dcrwallet and dcrd from their 1.8.0 release tags.
- Stop vspd.
- Stop the instance of dcrd running on the vspd server.
- Make a backup of the vspd database file in case rollback is required.
- Install new dcrd binary on the vspd server and start it to begin database upgrades. You can proceed with the following steps while the upgrades run.
- Upgrade voting wallets one at a time so at least two wallets remain online for voting. On each server:
- Stop dcrwallet.
- Stop dcrd.
- Install new dcrd binary and start.
- Wait for dcrd database upgrades to complete.
- Check dcrd log file for warnings or errors.
- Install new dcrwallet binary and start.
- Wait for dcrwallet database upgrades to complete.
- Check dcrwallet log file for warnings or errors.
- Wait for dcrd on the vspd server to complete its database upgrade.
- Check dcrd log file for warnings or errors.
- Install new vspd binary and start it.
- Check vspd log file for warnings or errors.
- Log in to the admin webpage and check the VSP Status tab for any issues.
Notable Changes
-
vspd has moved into the cmd directory of the repo. This is standard practise in Decred repos which include more than one golang executable. The new command to build is:
go build ./cmd/vspd
-
/vspinfo
now returnsvotingwalletsonline
andvotingwalletstotal
. -
The login form for the admin page is now limited to 3 attempts per second per IP.
-
A warning is logged when running a pre-release version of vspd on mainnet.
-
The ID of the git commit vspd was built from is now included in startup logging and in the output of
--version
. -
A new executable
vote-validator
is a tool for VSP admins to verify that their vspd deployment is voting correctly according to user preferences. Further details can be found in the README. -
A new executable
v3tool
is a development tool helpful for testing changes to vspd. Further details can be found in the README.