reticulum-meshchat icon indicating copy to clipboard operation
reticulum-meshchat copied to clipboard

Is there a way to make it work with the rnsd?

Open FoundOne opened this issue 10 months ago • 4 comments

I can't see a way to make meshchat to work together with rnsd from the gui. If I try to run meshchat after rnsd, rnsd complains about wrong rpc key and all of the interfaces get disabled. Also there is no way to configure the rpc key. I think that should be possible.

The meshchat version I'm using is the AppImage v1.18.0.

FoundOne avatar Jan 11 '25 17:01 FoundOne

I see a similar or the same issue.

When rnsd is running, MeshChat launches ok but if I Announce Now, then i see the following errors in the rnsd termina:|

MeshChat v1.20.0 • RNS v0.9.1 • LXMF v0.6.2

[2025-02-17 13:19:12] [Notice] Started rnsd version 0.9.1
[2025-02-17 13:19:30] [Error] An error ocurred while handling RPC call from local client: digest received was wrong
[2025-02-17 13:19:56] [Error] An error ocurred while handling RPC call from local client: digest received was wrong
[2025-02-17 13:19:56] [Error] An error ocurred while handling RPC call from local client: digest received was wrong
[2025-02-17 13:20:58] [Error] An error ocurred while handling RPC call from local client: digest received was wrong
[2025-02-17 13:20:58] [Error] An error ocurred while handling RPC call from local client: digest received was wrong
[2025-02-17 13:21:00] [Error] An error ocurred while handling RPC call from local client: digest received was wrong
...

and MeshChat outputs:

Received an announce from <2d4877304a2c5196f45b92aad1c5cac6> for [lxmf.delivery]

Received an announce from <9581bc3eee18672969ed43685a937291> for [call.audio]

[2025-02-17 14:09:26] [Error] Error while retrieving physical link stats for LXMF delivery packet: digest sent was rejected

lxmf_delivery error: digest sent was rejected

Received an announce from <da305c3ead2bb7ae38cf8e97afadbd1c> for [nomadnetwork.node]

[AudioCallManager] announced destination: <dc2dc38ac1b5c3251f988f538d04ccf5>

Received an announce from <2334f2a469a31dde0c1ba57d73222d0e> for [lxmf.delivery]

Error handling request from 127.0.0.1
Traceback (most recent call last):
  File "/opt/hostedtoolcache/Python/3.11.11/x64/lib/python3.11/site-packages/aiohttp/web_protocol.py", line 480, in _handle_request
  File "/opt/hostedtoolcache/Python/3.11.11/x64/lib/python3.11/site-packages/aiohttp/web_app.py", line 569, in _handle
  File "meshchat.py", line 1626, in index
  File "/opt/hostedtoolcache/Python/3.11.11/x64/lib/python3.11/site-packages/RNS/Reticulum.py", line 910, in get_interface_stats
  File "/opt/hostedtoolcache/Python/3.11.11/x64/lib/python3.11/multiprocessing/connection.py", line 525, in Client
  File "/opt/hostedtoolcache/Python/3.11.11/x64/lib/python3.11/multiprocessing/connection.py", line 776, in answer_challenge
multiprocessing.context.AuthenticationError: digest sent was rejected

Error handling request from 127.0.0.1
Traceback (most recent call last):
  File "/opt/hostedtoolcache/Python/3.11.11/x64/lib/python3.11/site-packages/aiohttp/web_protocol.py", line 480, in _handle_request
  File "/opt/hostedtoolcache/Python/3.11.11/x64/lib/python3.11/site-packages/aiohttp/web_app.py", line 569, in _handle
  File "meshchat.py", line 1626, in index
  File "/opt/hostedtoolcache/Python/3.11.11/x64/lib/python3.11/site-packages/RNS/Reticulum.py", line 910, in get_interface_stats
  File "/opt/hostedtoolcache/Python/3.11.11/x64/lib/python3.11/multiprocessing/connection.py", line 525, in Client
  File "/opt/hostedtoolcache/Python/3.11.11/x64/lib/python3.11/multiprocessing/connection.py", line 776, in answer_challenge
multiprocessing.context.AuthenticationError: digest sent was rejected

Error handling request from 127.0.0.1
Traceback (most recent call last):
  File "/opt/hostedtoolcache/Python/3.11.11/x64/lib/python3.11/site-packages/aiohttp/web_protocol.py", line 480, in _handle_request
  File "/opt/hostedtoolcache/Python/3.11.11/x64/lib/python3.11/site-packages/aiohttp/web_app.py", line 569, in _handle
  File "meshchat.py", line 1626, in index
  File "/opt/hostedtoolcache/Python/3.11.11/x64/lib/python3.11/site-packages/RNS/Reticulum.py", line 910, in get_interface_stats
  File "/opt/hostedtoolcache/Python/3.11.11/x64/lib/python3.11/multiprocessing/connection.py", line 525, in Client
  File "/opt/hostedtoolcache/Python/3.11.11/x64/lib/python3.11/multiprocessing/connection.py", line 776, in answer_challenge
multiprocessing.context.AuthenticationError: digest sent was rejected

Error handling request from 127.0.0.1
Traceback (most recent call last):
  File "/opt/hostedtoolcache/Python/3.11.11/x64/lib/python3.11/site-packages/aiohttp/web_protocol.py", line 480, in _handle_request
  File "/opt/hostedtoolcache/Python/3.11.11/x64/lib/python3.11/site-packages/aiohttp/web_app.py", line 569, in _handle
  File "meshchat.py", line 1626, in index
  File "/opt/hostedtoolcache/Python/3.11.11/x64/lib/python3.11/site-packages/RNS/Reticulum.py", line 910, in get_interface_stats
  File "/opt/hostedtoolcache/Python/3.11.11/x64/lib/python3.11/multiprocessing/connection.py", line 525, in Client
  File "/opt/hostedtoolcache/Python/3.11.11/x64/lib/python3.11/multiprocessing/connection.py", line 776, in answer_challenge
multiprocessing.context.AuthenticationError: digest sent was rejected

Error handling request from 127.0.0.1
Traceback (most recent call last):
  File "/opt/hostedtoolcache/Python/3.11.11/x64/lib/python3.11/site-packages/aiohttp/web_protocol.py", line 480, in _handle_request
  File "/opt/hostedtoolcache/Python/3.11.11/x64/lib/python3.11/site-packages/aiohttp/web_app.py", line 569, in _handle
  File "meshchat.py", line 1626, in index
  File "/opt/hostedtoolcache/Python/3.11.11/x64/lib/python3.11/site-packages/RNS/Reticulum.py", line 910, in get_interface_stats

jasonblewis avatar Feb 17 '25 03:02 jasonblewis

This would happen if rnsd and MeshChat uses two different configuration directories (for example if running as different users), but still using the same shared instance control port.

If you run rnsd and any other RNS apps under the same user, everything should work automatically out of the box. If not, there may be something funky with where MeshChat loads its RNS config from.

If you are running rnsd as a service under another user, you can put the system-wide RNS configuration in /etc/reticulum and make sure that all users running RNS apps have access to read from that directory (as well as write access to /etc/reticulum/storage). Remember to remove ~/.reticulum in that case, as not to confuse yourself on where to edit the config, etc. ;)

markqvist avatar Feb 18 '25 13:02 markqvist

I tried a config like this for docker:

services:
  reticulum-meshchat:
    container_name: reticulum-meshchat
    image: ghcr.io/liamcottle/reticulum-meshchat:latest
    pull_policy: always
    restart: unless-stopped
    network_mode: host
    volumes:
      - /home/user/.reticulum/:/config/.reticulum/
      - /home/user/.meshchat/:/config/.meshchat/

But am getting this error:

reticulum-meshchat  | [2025-05-05 19:52:30] [Error]    The interface "Default Interface" could not be created. Check your configuration file for errors!
reticulum-meshchat  | [2025-05-05 19:52:30] [Error]    The contained exception was: [Errno 98] Address already in use

RNSD is running on the host.

This is the same style as recommended in https://github.com/markqvist/NomadNet, so I am assuming that meshchat has some strange implementation to check if rnsd is running?

metrafonic avatar May 05 '25 19:05 metrafonic

I've found a solution. ./ReticulumMeshChat-v2.0.0-linux.AppImage --reticulum-config-dir ~/.config/reticulum/ I wish that was the default.

FoundOne avatar Jul 17 '25 10:07 FoundOne