Skip to content

Commit

Permalink
Add docs for listing on decred.org
Browse files Browse the repository at this point in the history
  • Loading branch information
jholdstock authored Dec 6, 2023
1 parent 4067327 commit 4f89271
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 6 deletions.
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@
[![Go Report Card](https://goreportcard.com/badge/github.com/decred/vspd)](https://goreportcard.com/report/github.com/decred/vspd)
[![Release](https://img.shields.io/github/release/decred/vspd.svg?style=flat-square)](https://github.com/decred/vspd/releases/latest)

## Overview

<img src="./docs/img/stakey.png" align="right" />

[First announced in 2020](https://blog.decred.org/2020/06/02/A-More-Private-Way-to-Stake/),
Expand Down Expand Up @@ -61,6 +59,9 @@ requests, and a number of remote servers which host voting wallets. For more
information about deploying vspd, check out
[deployment.md](./docs/deployment.md).

The process for listing a new VSP on [decred.org](https://decred.org/vsp/), and
consequently in Decrediton, is detailed in [listing.md](./docs/listing.md).

## Development

### Test Harness
Expand Down
10 changes: 6 additions & 4 deletions docs/deployment.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ This guide is deliberately written at a high level and with minimal details
because it is assumed that VSP operators will already have a level of
familiarity with Decred software and a level of sysadmin experience.

A vspd deployment consists of a single front-end server which handles web
requests, and a number of remote servers which host voting wallets.

```mermaid
%%{init:{
"theme": "neutral",
Expand Down Expand Up @@ -41,7 +44,7 @@ web(Internet<br />Traffic) ---> nginx

## Prerequisites

### Build from source
### Build from Source

Compiled binaries are not provided for vspd - VSP operators are expected to
build vspd from source.
Expand All @@ -51,7 +54,7 @@ branches.
Neither vspd nor its dependencies (dcrd/dcrwallet) should be built from master
when handling mainnet tickets.

### Fee wallet
### Fee Wallet

A wallet should be created to collect VSP fees. Ideally this would be a cold
wallet which is not used for any other purpose, and it should be completely
Expand Down Expand Up @@ -223,5 +226,4 @@ into all of the voting wallets.
## Listing on decred.org

The process for listing a new VSP on [decred.org](https://decred.org/vsp/), and
consequently in Decrediton, is detailed at
[docs.decred.org](https://docs.decred.org/advanced/operating-a-vsp/).
consequently in Decrediton, is detailed in [listing.md](./listing.md).
43 changes: 43 additions & 0 deletions docs/listing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Listing a VSP on decred.org

Public VSP servers are a key part of the Decred infrastructure as they make
Proof-of-Stake far more accessible for the average user.
It is therefore desirable to increase the number of public VSPs listed in
Decrediton and on [decred.org](https://decred.org/vsp) in order to promote
decentralization and improve the stability of the Decred network.

## Operator Requirements

* Familiarity with system administration work on Linux.
* Ability to compile from source, setting up and maintaining `dcrd` and
`dcrwallet`.
* Willingness to stay in touch with the Decred community for important news and
updates. A private channel on [Matrix](https://chat.decred.org) exists for
this purpose.
* Availability to update VSP binaries when new releases are produced.
* Operators should ideally be pairs of individuals or larger groups, so that the
unavailability of a single person does not lead to extended outages in their
absence.
* Ability to effectively communicate in English.

## Deployment Requirements

* At least one machine dedicated to hosting the web front end, handling web
connections from VSP users.
* At least three dedicated machines hosting voting wallets and a local instance
of dcrd.
* The machines used to host the voting wallets must be spread across 3 or more
physically separate locations.
* The web frontend must have an IP that is distinct from those of the voting
wallets, and is ideally located in another physical location.
* The VSP must be run on testnet for 1 week to confirm it is working properly.
Uptime and number of votes made versus missed will be checked.
* The VSP must be run on mainnet in test mode (no public access) until a VSP
operator demonstrates they have successfully voted 1 ticket of their own using
the VSP.
* The operator must have an adequate monitoring solution in place, ideally
alerting on server downtime and application error logging.

## Further Information

For further support you can contact the [Decred community](https://decred.org/community).

0 comments on commit 4f89271

Please sign in to comment.