RNS Logo

rns.recipes

◈ 9ce92808be498e9e05590ff27cbfdfe4
Upcoming RNS 1.6.0 https://rns.recipes/forum/general/upcoming-rns-160-help-testing

LXMF 1.2.1 – from_static_only rejects client Resource uploads

LXMF

Started by OK2UFO ·

#1

Hi Mark,

 

I'm running two LXMF Propagation Nodes (LXMF 1.2.1, Reticulum 1.5.7/1.6.0)

 

Both nodes use:

 

- `autopeer = no`
- `from_static_only = yes`
- `static_peers` configured to include only the other PN
- Message size limit: **32 KB**
- Synchronisation limit: **64 KB**

 

 

I've noticed that short LXMF messages can be submitted successfully, but larger messages and image attachments fail when regular clients upload them to a propagation node.

 

For testing, I used:

 

  • Short text messages – generally successful.
  • Longer text messages (approximately 5 sentences, well below 32 KB) – failed.
  • Small image attachments (approximately 10 KB, also below the configured limits) – failed.

 

I've reproduced the issue using different clients, including Columba and Ratspeak, against the two propagation nodes.

 

The server logs show:

 

Rejecting propagation resource from unidentified peer

 

And, when testing with Ratspeak:

 

Incoming link request ... accepted
Rejecting propagation resource from <9446b5fc8962f93640adfa8e260f236a> not in static peers list

 

I also verified that the rejected hash belongs to my regular Ratspeak client, not to another Propagation Node.

 

The client's identifiers are:

 

  • RNS identity hash: 65e307219b1a20197a72086ca958148e
  • LXMF delivery destination: 607f5249256c52c8780d1e043046d914
  • Calculated LXMF propagation destination: 9446b5fc8962f93640adfa8e260f236a

 

I calculated the propagation destination hash using RNS.Destination.hash_from_name_and_identity("lxmf.propagation", identity), and it matches the rejected hash exactly.

 

The client does not operate a Propagation Node. The hash is simply derived from its existing identity.

 

The RNS links are successfully established before the Resource uploads are rejected. Ratspeak subsequently reports Transport failed.

 

Looking at LXMRouter.py, the propagation_resource_advertised() callback appears to apply the from_static_only restriction to incoming Resources from regular LXMF clients, not just propagation peers.

 

Is this intentional behaviour?

 

My goal is to restrict PN-to-PN peering to explicitly configured static peers while still allowing regular LXMF clients to upload larger messages and attachments.

 

Is there a supported way to achieve this without disabling from_static_only?

 

Thanks

Mark 8dd57a7382268096...
#2

It's a known bug (a regression that was introduced in an earlier updaet) and it's already fixed in the upcoming 1.3.0.

 

If you're daring, you can grab RNS 1.6.0 and LXMF 1.3.0 from Aleph and try it out. But you will need the new RNS 1.6.0 also - don't try and run it without, it will crash, burn and explode in sparks.

 

Also, these releases will migrate the old file-based storage to a new managed, SQLite-based store, so probably a good idea to take a backup of your config dirs if you try it out before the release ;)

 

I'm laying the finishing touches on the releases now. It will probably run on the staging nodes for a few days before I'm completely satisfied, caus this has been an absolutely massive piece of work.

#3

Hi Mark, I've deployed the latest development versions of Reticulum 1.6.0 and LXMF 1.3.0, but the issue with larger messages/images persists. I noticed that LXMF recently introduced the app_flag check for propagation resources. Could the problem be that existing clients haven't implemented this flag yet, causing the PN to reject their transfers when from_static_only=yes?

 

Performance-wise, Reticulum 1.6.0 has been excellent so far! I haven't been able to fully evaluate the performance improvements in LXMF 1.3.0 yet, as I'm intentionally keeping from_static_only=yes to limit peering to trusted nodes. So far, everything else looks promising!

Mark 8dd57a7382268096...
#4

Yeah, should have explained that a bit better. Clients will also have to be on LXMF 1.3.0 for it to work, it's exactly related to the app_flag being necessary for this to work. There's nothing additional required in the client applications themself, though. They just need to use LXMF 1.3.0, and it should work automatically.

 

Currently, the only way to really test in clients is to install the source LXMF version, and run nomadnet, Sideband or MeshChatX with that specific local LXMF version. There'll be proper releases soon. I'm currently in the final testing phase, so we're almost there, and things are looking good. But if I find anything semi-strange that postpones release for additional testing, I may put out a pre-release build of the clients I'm responsible for so it can be tried out fully a bit earlier.

 

Regarding ratspeak; it's an entirely vibecoded mess, don't expect it to work in any reliable way.

 

The idiot "responsible" basically cloned RNS using LLMs, launched a crypto token around it, broke the open source license of RNS, and then triumphantly claimed copyright and release under his own "license".

 

The person making it basically stole more than a decade of my work, wrapped it in flashy websites and GUIs (again, all LLM-generated), while trying as much as possible to hide the fact and not even linking to the actual Reticulum and RNS resources. He owns (much less understands) none of that system.

 

It's a disaster, and I don't have much good to say about crap like that, other than I'd personally recommend you to stay far away from it, if you value security and reliability.

Post a Reply

Supports Markdown: **bold**, *italic*, `code`, ```code blocks```, [links](url)

Log in to upload images

Quote
Copied to clipboard