Use Dappnode to host a Status Node

A wall of shame item from Basel is that the Status Network Cluster, a network of computers which run mail server software and a configured version of whisper, is too centralized. This is because at this moment every one of these computers is paid for by Status.

Good news is that through work done with a startup called Dappnode.io we have made it far more manageable for anyone who runs dappnode to run a Status Network Cluster node. They have some great instructions here on how to get it up and running: HardwareDecentralizationUserGuide0.1.0.pdf - Google Drive

Directly contributing to the decentralizing of status’s network is huge. It’s the first step in making the Status network resilient. With enough nodes on the network, no single party will be able to stop anyone in the world communicating securely and privately.

@oskarth @igor @Anton @dmitryn @gravityblast If you could reply with your public SSH key Status will sponsor a digital ocean server for you to run dappnode on. We will be running communications in #status-network. See ya there!

4 Likes

I already have a dappnode up and running. How do I get Status on it and get back enode that I can put in Status bootnode/mailserver? Those are the Status specific instructions we need.

I noticed it has been added as a package but that’s about it, started WIP instructions here but some gaps needed at the end for enode: Dappnode on Status - CodiMD - please fill in

EDIT: saw Adam posted below, this should’ve been OP! Thanks, trying.

In order to start Status Node in Dappnode, go to “Installer” and just click “Install” button on “Status.public.dappnode.eth” card.

In order to change settings, click on that card and another screen will be displayed with logs and environment variables. By default, Status Node operates as a relay node (only broadcasts messages). If you want it to run as a mail server, change “STATUSD_MODE” to “MAILSERVER” and click “Update environment variables”.

Debugging

How to verify if DappNode works properly? It has metrics and the HTTP interface (behind VPN) enabled so you can use curl:

curl -v -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"debug_metrics","params":[true],"id":1}' http://my.status.public.dappnode.eth:8545

Adding as a mail server to Status client

In order to add Status Node running on DappNode as a mail server, you need to get the enode address. The easiest way to do that is to use curl again:

curl -v -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"admin_nodeInfo","params":[],"id":1}' http://my.status.public.dappnode.eth:8545

Now, combine it with your server IP on which you run DappNode, mail server password and change the port to 30313 (this is due to port collision, not configurable at the moment :frowning: ). In my case, the full mail server address that I put in Status Mobile looks like this:

enode://a4262b20e5db539d437d474ce2ce04e86685b3c0e2725c0a8f4ee480068bf4c7ce72985e17a0445e2b463317a952abe62b7f68f01c92f72de937e284acb8bb6a:[email protected]:30313
2 Likes

@oskarth the goal of this post is to provide instructions, collect feedback and answer questions. We plan to post a curated instruction somewhere close to https://docs.status.im/docs/run_status_node.html.

Think it is working for me as a mailserver. There are some client feedback issues for mailserver so hard to tell, but will know in a bit (update: confirmed). Initial thoughts:

  • good first step, now just need to:
  • a) generalize it (bootnodes / static nodes) - IMO one node should be enough to act as both bootnode/static node/mailserver/relay unless the user wants to explicitly configure something else. I’ve yet to hear a strong argument against this
  • b) get more people to host it (OKR is 50 nodes, should be able to get a bunch of core contributors / community members), and
  • c) make UX a bit better, expose enode URI with right port / possibly QR code etc (helps with b)
1 Like

I am talking with DappNode folks to take over ownership of this package. Currently, I can’t even update it to the new version.

a) generalize it (bootnodes / static nodes) - IMO one node should be enough to act as both bootnode/static node/mailserver/relay unless the user wants to explicitly configure something else. I’ve yet to hear a strong argument against this

It works as a static node but probably does not work as a bootnode because of our issues with Discovery V5 and code changes. This needs to be fixed if we want it to operate as a bootnode. My concern is that it’s a shortcut and the proper way of doing it is to install another package which acts as a bootnode. It will make it easier to debug and split server resources.

b) get more people to host it (OKR is 50 nodes, should be able to get a bunch of core contributors / community members), and

We plan to write a blog post after we collect enough feedback and take the ownership of the package. That should gain some community attention.

c) make UX a bit better, expose enode URI with right port / possibly QR code etc (helps with b)

Folks from DappNode said it’s possible to create a custom page for a package so that should be easy.

To be honest, I’d be more inclined to run it on Docker than dedicating a machine (even if virtual) to the task. To support like-minded users, we’d need to make sure the instructions at Docker are up to date and appeal to that audience. Also adding a Docker Compose script might be helpful.

What is the reason you’d be more inclined to run it on docker? There are instructions to do so for Dappnode.io

Just because in that case I’d be able to easily run it on my NAS, which is already running 24/7.

3 Likes

I created an issue to fix that: Updated docs on hub.docker.com/r/statusteam/status-go/ · Issue #1256 · status-im/status-go · GitHub. We have docs that describe how to run Status Node with docker already: https://docs.status.im/docs/run_status_node.html#Running-with-docker

I would be happy to be a test on running a node. I do not know anything technical and can try early next week to go through the set up process. If I can do it, then it means any moron can set up a Status Node. :wink:
I will take a run at it on Monday.
I tried to set up a bitcoin node but could not get my home network to be a static ip, probably because I have no idea what that is and the reddit instruction were beyond my abilities but I will give this a shot.

1 Like

Hi there,

The DappNode team is working on a kind of plug and play solution to make it as easy as possible to contribute to the decentralised web, can;'t wait for that. If you are keen to give it a try I’d recommend the digital ocean route. If you do run into issues I can connect you to the Dappnode team.

OK thanks. I will look into Digital Ocean. That is a term I have not heard of yet, let me do some digging and get back to you.

I guess I should spring for a VPS, considering it costs like $500 bucks for verizon to give me a static IP.

https://twitter.com/5chdn/status/1060801634605981696

I’m probably late to the party, but I can’t make DAppNode to sync mainnet properly, it got stuck at 40% and doesn’t go from there (I have waited for 24 hours already).
@oskarth @adam did you have something similar? do you have any idea on how to avoid that?

No idea, restart? :smiley: Didn’t happen to me. Logs probably show what’s up. They have a chat room on Riot or Gitter IRC.

Also check if you have enough disk space. My DAppNode synced in a few hours.

Disk space is fine. I’ll try to reinstall it…