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 ## 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 vspd is a from scratch implementation of a Voting Service Provider (VSP) for
the Decred network. 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 because it is assumed that VSP operators will already have a level of
familiarity with Decred software and a level of sysadmin experience. familiarity with Decred software and a level of sysadmin experience.
<p align="center">
<img src="./img/architecture.png">
</p>
## Prerequisites ## Prerequisites
### Build from source ### 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) 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 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 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 (`--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, 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: provide vspd with the xpub key it should use for collecting fees:
```no-highlight ```no-highlight
$ vspd --feexpub=tpubVppjaMjp8GEW... $ vspd --feexpub=tpubVppjaMjp8GEW...
``` ```
1. Once the database is initialized, vspd can be started for normal operation by 1. Once the database is initialized, vspd can be started for normal operation by
running it without the `--feexpub` flag. 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