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.
ServicePortType
WIREGUARD51820UDP
  • 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.
ServicePortType
VPN1194UDP
ETH30303UDP
ETH30303TCP
ETH30304UDP

Install Archipel DAppNode Package

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.

  • 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

Check Archipel Node Status

Restart a Archipel Package Node

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 :

Often, the only variables from the full env list here you need to update are: POLKADOT_TELEMETRY_URL and ARCHIPEL_TELEMETRY_URL.