Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add docs for listing on decred.org #458

Merged
merged 6 commits into from
Dec 6, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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).