Archipel Deployment on DAppNodes
August 3, 2020 ยท View on GitHub
DAppNodes Packages
There are 4 DappNode Packages available:
archipel
The main DAppNode Package is called is archipel.
It is released under the DNP archipel.public.dappnode.eth. This package is a wrapper of the luguslab/archipel docker image generated by this Dockerfile. It contains
- a secure wireguard setup to create private secure network access between remote dappnode hardware.
- orchestrator: that ensure the HA feature
- chain : the shared state between the federation.
archipel-ui
This DAppNode Package is archipel-ui.
It is released under the DNP archipel-ui.public.dappnode.eth. This package is a wrapper of the luguslab/archipel-ui docker image generated by this Dockerfile. It provides live heartbeats of the federation and administration actions.
This UI package can't be installed separately from the main archipel DAppNode Package because there is a shared docker volume between both packages. The package UI is automatically installed as a dependency of the main archipel DAppNode Package. The API URL default value is automatically valorize to target your local DApppNode archipel instance.
There are also 2 others DappNode Packages that you can install to bootstrap a private Telemetry Substrate instance.
substrate-telemetry-archipel
It is released under the DNP substrate-telemetry-archipel.public.dappnode.eth. This package is a wrapper of the Parity Substrate Telemetry generated by this Dockerfile.
If the env variable REMOTE_PUBLIC_IP_TELEMETRY_BACKEND is not set (default mode), a backend is started locally and automatically targeted. If the IP is set, the frontend target the IP backend and local telemetry backend service is not started. It is why there is also the next package when you want to only install the backend and separate the frontend and backend on different DAppNode instances.
substrate-telemetry-archipel-backend
It is released under the DNP substrate-telemetry-backend-archipel.public.dappnode.eth. This package is a wrapper of the Parity Substrate Telemetry generated by this Dockerfile.
In the following paragraph, we will detail how to install archipel on DAppNode interface thaht will also automaticcally install archipel-ui too. To install substrate telemetry DAppNode packages, you can follow their respective readme documentation.
Install Archipel on DAppNode
If you do not have physical devices. You can buy hardware with DAppNode fully ready to start.
On your physical device, install DAppNode ISO image or launch the DAppNode init script.
Prerequisite
-
Generate/ask for keys for the Polkadot validator node setup you want to create/join. See Polkadot keys generation doc.
-
Generate/ask the Archipel federation config you want to create/join. See Archipel CLI doc.
-
DppNode ISO installed + wireguard installed
WARNING : Your dappnode must have wireguard installed as a prerequisite !!
You can find the DAppNode ISO with wireguard in this DAppNode_Installer fork. You can also follow and claim on this current issue on DAppNode GitHub to be merge or implemented. In some hardware, you have to deactivate secure boot in BIOS for wireguard to work properly.
-
Configure your IPS router/firewall
- For security reason, we advise to deactivate UPnP IGD service.
- Add your dappnode equipment to a fix DHCP address.
- In NAT/PAT tab, open UDP wireguard port 51820 on your equipment.
| Service | Port | Type |
|---|---|---|
| WIREGUARD | 51820 | UDP |
- For information you need thoses others port to be open in order for your DAppNode to operate properly. If you use DAppNode device VPN feature, you will need to open also the 1194 UDP port.
| Service | Port | Type |
|---|---|---|
| VPN | 1194 | UDP |
| ETH | 30303 | UDP |
| ETH | 30303 | TCP |
| ETH | 30304 | UDP |
Install Archipel DAppNode Package
- Connect to you DAppNode interface : http://my.dappnode/
- Go to install tab : http://my.dappnode/#/installer
- Search with DNP
archipel.public.dappnode.ethor with latest IPFS hash that can be find on DAppNodePackage archipel releases
note :
You will have to wait for the main ethereum dappnode package to be synched to be able to install from the DNP name: archipel.public.dappnode.eth.
If you do not want to wait to be synch you can still install with direct IPFS link hash present in releases but you will have to switch the "Bypass core restriction" button.
- Click install. http://my.dappnode/#/installer/archipel.public.dappnode.eth
- You must upload the ZIP config. ZIP from the Prerequiste config step.
- You must valorize 2 Environment Variables :
CONFIG_FILE_PASSWORD: if zip config has been crypted.NODE_ID: select archipel instance you want to launch : 1 or 2 or 3 :
- Accept disclaimer
You can go now to the logs tab of the package to check logs start and retrieve your peer id.
Check Archipel DAppNode Package Logs
- Connect to you DAppNode interface : http://my.dappnode/
- Go to http://my.dappnode/#/packages tab
- Click on Archipel Package
- Go to Logs Tab: http://my.dappnode/#/packages/archipel.public.dappnode.eth/logs
-
In archipel logs you must see archipel chain and the orchestrator started to operate :
http://my.dappnode/#/packages/archipel.public.dappnode.eth/logs
-
archipel ui dependency has been automatically installed. You can see the access point in logs after the message:
Archipel UI website go to: http://172.33.0.Xhttp://my.dappnode/#/packages/archipel-ui.public.dappnode.eth/logs
Check Archipel Node Status
- You can check Archipel DAppnodePackage logs
- Access Archipel UI. More details in UI README
- Access public Polkadot Telemetry or Private Substrate Telemetry deploy by yourself.
Restart a Archipel Package Node
- Connect to you DAppNode interface: http://my.dappnode/
- Go to package tab http://my.dappnode/#/packages
- Click on Archipel Package
- Click on Controls tab:http://my.dappnode/#/packages/archipel.public.dappnode.eth/controls
- click restart.
Overwrite default Archipel DAppNode Package Config
To show how to overwrite a config variable, we will take the example of the POLKADOT_TELEMETRY_URL env variable. By default, this env variable is empty, so you must see your node in the official telemetry URL : telemetry.polkadot.io/ when the orchestrator starts the Polkadot service.
If you set up a private telemetry instance, you may prefer to target this one. To do so :
- Go to tab : http://my.dappnode/#/packages/archipel.public.dappnode.eth/config
- Valorize the
POLKADOT_TELEMETRY_URLvariable with your prefered endpoint like :ws://TELEMETRY_BACKEND_PUBLIC_IP:8000/submit - Click on
"update environment variables"button. It will restart archipel package with the new env variable set.
Often, the only variables from the full env list here you need to update are: POLKADOT_TELEMETRY_URL and ARCHIPEL_TELEMETRY_URL.