Add architecture diagram to deployment.md. (#296)

Also add a note that voting wallets should not be run on the
web server.
This commit is contained in:
Jamie Holdstock 2021-09-15 19:47:48 +01:00 committed by GitHub
parent 83253f3c19
commit 522a363bda
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 47 additions and 5 deletions

View File

@ -6,7 +6,7 @@
## Overview
<img src="./docs/stakey.png" align="right" />
<img src="./docs/img/stakey.png" align="right" />
vspd is a from scratch implementation of a Voting Service Provider (VSP) for
the Decred network.

View File

@ -4,6 +4,10 @@ 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.
<p align="center">
<img src="./img/architecture.png">
</p>
## Prerequisites
### Build from source
@ -45,7 +49,7 @@ front-end server must be able to reach each instance of dcrwallet over RPC.
The front-end server is where vspd will be running. A webserver (eg. nginx)
should be configured with SSL and used to proxy requests from the internet to
vspd.
vspd. **Do not run a voting wallet on your webserver.**
1. Start an instance of dcrd on this server with transaction index enabled
(`--txindex`). dcrd is used for fishing ticket details out of the chain, for
@ -59,9 +63,9 @@ vspd.
1. A vspd database must be initialized before vpsd can be started. To do this,
provide vspd with the xpub key it should use for collecting fees:
```no-highlight
$ vspd --feexpub=tpubVppjaMjp8GEW...
```
```no-highlight
$ vspd --feexpub=tpubVppjaMjp8GEW...
```
1. Once the database is initialized, vspd can be started for normal operation by
running it without the `--feexpub` flag.

View File

@ -0,0 +1,38 @@
Below is the source for architecture.png in mermaid.js syntax.
Can be rendered with any mermaid.js deployment, for example <https://mermaid-js.github.io/mermaid-live-editor/>.
```no-highlight
%%{init:{
"theme": "neutral",
"themeVariables": {
"fontSize": "16px",
"clusterBkg": "#E9F8FE",
"clusterBorder": "#3D5873",
"mainBkg": "#2DD8A3",
"primaryColor": "#2970FF"
}
}}%%
graph LR
subgraph Front-end Server
nginx(nginx) --> vspd(vspd)
vspd --> dcrd0(dcrd)
end
subgraph voting3 [Voting Server 3]
dcrwallet3(dcrwallet) --> dcrd3(dcrd)
end
subgraph voting2 [Voting Server 2]
dcrwallet2(dcrwallet) --> dcrd2(dcrd)
end
subgraph voting1 [Voting Server 1]
dcrwallet1(dcrwallet) --> dcrd1(dcrd)
end
vspd ----> dcrwallet1 & dcrwallet2 & dcrwallet3
web(Internet<br />Traffic) ---> nginx
```

BIN
docs/img/architecture.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

View File

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB