document how to send alerts to update application

This commit is contained in:
woodser 2023-08-16 16:13:19 -04:00
parent f08735e1e0
commit d50ab5782b
2 changed files with 46 additions and 13 deletions

View file

@ -6,11 +6,12 @@ This guide describes how to deploy a Haveno network:
- Start a Monero node - Start a Monero node
- Build and start price nodes - Build and start price nodes
- Create and register seed nodes - Create and register seed nodes
- Generate keypairs with privileges for arbitrators and developers - Register keypairs with administrative privileges
- Create and register arbitrators - Create and register arbitrators
- Set a network filter - Set a network filter
- Build Haveno installers for distribution - Build Haveno installers for distribution
- Manage services on a VPS (WIP) - Manage services on a VPS (WIP)
- Send alerts to update the application
## Build Haveno ## Build Haveno
@ -47,28 +48,40 @@ Rebuild the seed nodes any time the list of registered seed nodes changes.
Each seed node requires a locally running Monero node. You can use the default port or configure it manually with `--xmrNode`, `--xmrNodeUsername`, and `--xmrNodePassword`. Each seed node requires a locally running Monero node. You can use the default port or configure it manually with `--xmrNode`, `--xmrNodeUsername`, and `--xmrNodePassword`.
## Generate keypairs with arbitrator privileges ## Register keypairs with arbitrator privileges
1. Run core/src/test/java/haveno/core/util/GenerateKeypairs.java to generate public/private keypairs for arbitrator privileges. 1. Run core/src/test/java/haveno/core/util/GenerateKeypairs.java to generate public/private keypairs for arbitrator privileges.
2. Add arbitrator public keys to the corresponding network type in ArbitratorManager.java `getPubKeyList()`. 2. Add arbitrator public keys to the corresponding network type in ArbitratorManager.java `getPubKeyList()`.
3. Rebuild using `make skip-tests`.
## Generate keypairs with developer privileges ## Register keypairs with developer privileges
Developer keypairs are able to set the network's filter object, which can filter out offers, onions, currencies, payment methods, etc. Keypairs with developer privileges are able to set the network's filter object, which can filter out offers, onions, currencies, payment methods, etc.
1. Run core/src/test/java/haveno/core/util/GenerateKeypairs.java to generate public/private keypairs for developer privileges. 1. Run core/src/test/java/haveno/core/util/GenerateKeypairs.java to generate public/private keypairs for developer privileges.
2. Set developer public keys in the constructor of FilterManager.java. 2. Set developer public keys in the constructor of FilterManager.java.
3. Rebuild using `make skip-tests`.
## Register keypairs with alert privileges
Keypairs with alert privileges are able to send alerts, e.g. to update the application.
1. Run core/src/test/java/haveno/core/util/GenerateKeypairs.java to generate public/private keypairs for alert privileges.
2. Set alert public keys in the constructor of AlertManager.java.
## Register keypairs with private notification privileges
1. Run core/src/test/java/haveno/core/util/GenerateKeypairs.java to generate public/private keypairs for private notification privileges.
2. Set public keys in the constructor of PrivateNotification.java.
## Set XMR address to collect trade fees ## Set XMR address to collect trade fees
Set the XMR address to collect trade fees in /Users/woodser/git/haveno/core/src/main/java/haveno/core/trade/HavenoUtils.java `getTradeFeeAddress()`. Set the XMR address to collect trade fees in `getTradeFeeAddress()` in HavenoUtils.java.
## Create and register arbitrators ## Create and register arbitrators
Before running the arbitrator, remember that at least one seednode should already be deployed and its address listed in `core/src/main/resources/xmr_<network>.seednodes`. Before running the arbitrator, remember that at least one seednode should already be deployed and its address listed in `core/src/main/resources/xmr_<network>.seednodes`.
First rebuild Haveno: `make skip-tests`.
Run `make arbitrator-desktop` to run an arbitrator on Monero's mainnet or `make arbitrator-desktop-stagenet` to run an arbitrator on Monero's stagenet. Run `make arbitrator-desktop` to run an arbitrator on Monero's mainnet or `make arbitrator-desktop-stagenet` to run an arbitrator on Monero's stagenet.
The Haveno GUI will open. If on mainnet, ignore the error about not receiving a filter object which is not added yet. Click on the `Account` tab and then press `ctrl + r`. A prompt will open asking to enter the key to register the arbitrator. Use a key generated in the previous steps and complete the registration. The arbitrator is now registered and ready to accept requests of dispute resolution. The Haveno GUI will open. If on mainnet, ignore the error about not receiving a filter object which is not added yet. Click on the `Account` tab and then press `ctrl + r`. A prompt will open asking to enter the key to register the arbitrator. Use a key generated in the previous steps and complete the registration. The arbitrator is now registered and ready to accept requests of dispute resolution.
@ -113,4 +126,29 @@ Arbitrators can be started in a Screen session and then detached to run in the b
Some good hints about how to secure a VPS are in [Monero's meta repository](https://github.com/monero-project/meta/blob/master/SERVER_SETUP_HARDENING.md). Some good hints about how to secure a VPS are in [Monero's meta repository](https://github.com/monero-project/meta/blob/master/SERVER_SETUP_HARDENING.md).
TODO: gather and document scripts for VPS management TODO: gather and document scripts for VPS management
## Send alerts to update the application
<b>Upload updated installers for download</b>
* In https://<domain>/downloads/<version>/, upload the installer files: Haveno-<version>.jar.txt, signingkey.asc, Haveno-<version>.dmg, Haveno-<version>.dmg.asc, and files for Linux and Windows.
* In https://<domain>/pubkey/, upload pub key files, e.g. F379A1C6.asc.
<b>Set the mandatory minimum version for trading (optional)</b>
If applicable, update the mandatory minimum version for trading, by entering `ctrl + f` to open the Filter window, enter a private key with developer privileges, and enter the minimum version (e.g. 1.0.10) in the field labeled "Min. version required for trading".
<b>Send update alert</b>
Enter `ctrl + m` to open the window to send an update alert.
Enter a private key which is registered to send alerts.
Enter the alert message and new version number, then click the button to send the notification.
## Other operating tips
* To maintain the network, avoid all seed nodes going offline at the same time. If all seed nodes go offline at the same time, arbitrator registration and the network filter will be fully reset, so all arbitrators will need to be re-registered, and the network filter will need to be recreated. This should be done immediately or clients will cancel their offers due to the signing arbitrators being unregistered and no replacements being available to re-sign.
* If a dispute does not open properly, try manually reopening the dispute with a keyboard shortcut: `ctrl + o`.
* To send a private notification to a peer: click the user icon and enter `alt + r`. Enter a private key which is registered to send private notifications.

View file

@ -1,5 +0,0 @@
# Operation Manual
## Manually open dispute by keyboard shortcut
In the event a dispute does not open properly, try manually reopening the dispute with a keyboard shortcut: `ctrl+o`.