Debugging Lite Node issues

If you find a problem with the Lite Node on your system, please report the relevant console output, the results of diode-node.info, the results of snap get diode-node, and the logs from snap logs diode-node

ulimit problem → in v1.5.16 and earlier, the node always sets ulimit to 120,000 TCP connections. If your system has ulimit set to a small maximum connections, the node will not start. in v1.15.17 and later, the node sets ulimit tcp max to the system max instead. Be aware that your node’s performance may suffer if you restrict TCP connections too much.

rpc connection problem → in v1.15.16 and earlier, there would sometimes be an RPC connection error that was a result of the system hostname being changed without a reboot. In v.1.15.17 and later, the node detects a changed hostname and uses the updated name even without a reboot.

port conflicts → you can set the ports your node uses in case you are running it on a box/vm that already uses the default ports.

checkout snap get diode-node - this shows how to change all ports

that said these are very important ports you shouldn’t remove:

  1. 8545 - is used for network uptime monitoring. so if your node doesn’t respond it’s considered dead
  2. 41046 - this is the primary device port, all devices will check this one first. not having this port will still allow devices to connect but the likelihood is very much reduced.

IP address or port not externally accessible → very often, if your node’s dashboard shows an error / connection problem it is because your node is not actually externally accessible. This is not a Diode issue per se, it is more of a system/network configuration issue. Whereas a “virtual machine” in a data center will nearly always work (as long as your firewall rules are open), a box in your house will ALWAYS require router configuration. And, even if you correctly configure your router, your ISP still may not allow inbound connections. So, you may be stuck. Read on to get some tips.

If your ISP does allow inbound connections, then it will just be a process of port forwarding through your router. Here is an example of someone who sorted that out in Brazil with a ZTE router. Also, if you are running the node in a virtual environment (e.g. docker, wsl, etc…) on your box, then you may also have to make sure that virtual environment is allowing communications in.

Here are some tips for how to test if your machine is accessible to the open world:

  1. go to your node’s dashboard - e.g. Diode™ Network

  2. find the Primary Edge Address box - that is where other nodes will try to find your node and route data to it. It looks like:
    image

  3. Copy the IP address and port there

  4. In a terminal window on Mac or Linux (or Windows if you have the right tools), type:
    curl -v telnet://147.160.139.55:41046
    You should get back something like:
    image

  5. Do this for any port that the dashboard is warning you that it can’t connect to

NOTE: You can also use tools like ping, nc (netcat), or nmap to try to connect. e.g.:

Use ping to see if the server is alive (however, sometimes servers or ISPs block pings):

> ping 147.160.139.55
PING 147.160.139.55 (147.160.139.55): 56 data bytes
64 bytes from 147.160.139.55: icmp_seq=0 ttl=52 time=68.893 ms

Use netcat to test a particular port:

> nc -zv -w 5 147.160.139.55 41046
Connection to 147.160.139.55 port 41046 [tcp/*] succeeded!

Use nmap to scan a range of ports:

> nmap 147.160.139.55 -p 1-1000
Starting Nmap 7.95 ( https://nmap.org ) at 2025-04-18 11:02 PDT
Nmap scan report for 147.160.139.55
Host is up (0.061s latency).
Not shown: 990 closed tcp ports (conn-refused)
PORT    STATE    SERVICE
22/tcp  open     ssh
25/tcp  filtered smtp
135/tcp filtered msrpc
136/tcp filtered profile
137/tcp filtered netbios-ns
138/tcp filtered netbios-dgm
139/tcp filtered netbios-ssn
443/tcp open     https
445/tcp filtered microsoft-ds
993/tcp open     imaps

Node is not getting any traffic → Sometimes, in higher node density areas, the network will not route traffic to your node because there are other nodes already with good enough performance around you. So, if you’ve verified the node is usable (e.g. forced a connection to it using somethinng like diode -diodeaddrs={ip}:41046), but your node is still not getting any traffic, you can try publishing a small webpage via the node and then accessing the web page via the Web2 gateway. Sometimes, after the network has connected clients via your node, it will start routing other public traffic to your node.

  1. run a web server
npm install -g http-server 
cd myprojectfolder
echo "hello world" > index.html
http-server
diode -diodeaddrs={ip}:41046 publish -public 80:80
  1. access the web page
    In the previous step, look for “INFO HTTP Gateway Enabled” → the link after the : is where you can view your site from a web browser.

Hi Diode community,

I’m trying to set up a Lite Node on my Raspberry Pi (arm64, fresh Raspberry Pi OS install) following the official guide (snap install diode-node). The node service starts fine, connects to peers, sets the accountant address, and runs without crashes (logs show hello from seeds, cron tasks, etc.). However, the diode-node.info command always crashes with “Can’t set long node name!” and Erlang errors.

Here’s what I’ve tried:

  • Installed snapd and diode-node (v1.7.2, stable; tried --edge too).
  • Created data dir: sudo mkdir -p /var/snap/diode-node/current/nodedata_prod, chown/chmod.
  • Configured: accountant-address, edge2-port, peer2-port, rpc-port, rpcs-port, host (my public IP), private=0, log-level=info.
  • Fixed hostname: sudo hostnamectl set-hostname raspberrypi.local
  • Edited /etc/hosts:
127.0.0.1 localhost raspberrypi.local raspberrypi
::1 localhost raspberrypi.local raspberrypi ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
  • Created erl_inetrc in /home/pi/snap/diode-node/365/erl_inetrc with:
{hosts_file, "/etc/hosts"}.
{lookup, [native,dns]}.
  • Removed conflicting /home/pi/snap/diode-node/365/node dir (tool expects file).
  • Rebooted multiple times, verified hostname -f (returns “localhost” or “raspberrypi”, not “.local” consistently).
  • Local RPC works: curl net_version returns “15”.
  • UFW allowed all ports including SSH.

Command: snap run diode-node.info

Output:

cat: /home/pi/snap/diode-node/365/node: No such file or directory
=ERROR REPORT==== 2-Sep-2025::18:25:21.362365 ===
inet_config: file /home/pi/snap/diode-node/365/erl_inetrc not found
=INFO REPORT==== 2-Sep-2025::18:25:21.402556 ===
Can't set long node name!
Please check your configuration
[full crash report as in your message]
Kernel pid terminated (application_controller) ("{application_start_failure,kernel,{{shutdown,{failed_to_start_child,net_sup,{shutdown,{failed_to_start_child,net_kernel,{'EXIT',nodistribution}}}}},{kernel,start,[normal,[]]}}}")
Crash dump is being written to: erl_crash.dump...done

Service logs are good (peers connecting, accountant set).

Pi details: Raspberry Pi OS (bookworm), arm64, connected via WiFi

Any ideas on why long node name fails? Snap confinement issue? How to get diode-node.info working for dashboard/uptime?

Thanks!

1 Like

Update:

you need to “sudo snap run diode-node.info”

pi@raspberrypi:~ $ sudo snap run diode-node.info
== Diode Node 0x77d0bfd5a8e8896df4310e5d8648a68fe8fc93c6 ==
Name : juice_venture@raspberrypi
Version : 1.7.2
Accountant : 0xe4579341b84249808a994410166b12fe9ace71b2
Uptime : 230
Connected Devices: 0
Connected Peers : 22

Current Epoch : 677
Ticket Score : 0

Previous Epoch : 676
Ticket Score : 0

Dashboard : Diode™ Network

trying to find out next how to fix
Connection failed in ssl.connect()

1 Like

So Its running you need to Port forward:
Service: Diode RPC
Protocol: TCP
External Port: 8545
Internal IP: [Your Pi’s IP]
Internal Port: 8545

Service: Diode Edge
Protocol: TCP
External Port: 41046
Internal IP: [Your Pi’s IP]
Internal Port: 41046

Service: Diode Peer
Protocol: TCP
External Port Range: 41046-51055
Internal IP: [Your Pi’s IP]
Internal Port Range: 41046-51055

Local IP: of the PI
Protocol: TCP
Ports to forward:

  • 443 → 443

  • 993 → 993

  • 1723 → 1723

  • 10000 → 10000

    Config File
    /var/snap/diode-node/current/config.yaml

    node:

    name: “juice_venture@raspberrypi”

    address: “0x77d0bfd5a8e8896df4310e5d8648a68fe8fc93c6”

    listen:

    rpc: "\[::\]:8545"
    
    edge: "\[::\]:41046"
    

    external_addr: “31.151.45.194”

    ssl:

    enabled: true
    
    cert: "/etc/diode-node/ssl/diode-node.crt"
    
    key: "/etc/diode-node/ssl/diode-node.key"
    
    min_version: "tlsv1.2"
    
    cipher_suite: "HIGH:!aNULL:!MD5:!RC4"
    

    network:

    bind_addr: "0.0.0.0"
    
    port_range: "41046-51055"
    

    additional_ports:

    - 443
    
    - 993
    
    - 1723
    
    - 10000
    

    Add new rules for all required ports

    sudo ufw allow 443/tcp

    sudo ufw allow 993/tcp

    sudo ufw allow 1723/tcp

    sudo ufw allow 10000/tcp
    sudo ufw allow in on eo any port 8545 proto tcp

    sudo ufw allow in on eo any port 41046 proto tcp

    sudo ufw allow out on to any port 51055 proto tcp

    Create SSL configuration directory

    sudo mkdir -p /etc/diode-node/ssl

    cd /etc/diode-node/ssl

    Generate new cert with proper parameters

    sudo openssl req -x509 -nodes -days 365 -newkey rsa:4096 \

    -keyout /etc/diode-node/ssl/diode-node.key \

    -out /etc/diode-node/ssl/diode-node.crt \

    -subj “/CN=juice_venture/O=DiodeNode/C=NL” \

    -addext “subjectAltName=DNS:raspberrypi.local,DNS:localhost,IP:31.151.45.194,IP:127.0.0.1” \

    -addext “extendedKeyUsage=serverAuth,clientAuth” \

    -sha256

    sudo chmod 600 /etc/diode-node/ssl/diode-node.key

    sudo chmod 644 /etc/diode-node/ssl/diode-node.crt

    Should make it work

Still seeing a lot of this maybe it needs to sync will let it run overnight

1 Like