Skip to content

Releases: markqvist/LXMF

LXMF β 0.9.6

Choose a tag to compare

@markqvist markqvist released this 22 Apr 11:59

Changes

LXMF β 0.9.5

Choose a tag to compare

@markqvist markqvist released this 21 Apr 15:25

Changes

  • Added compression support signalling
  • Added automatic announce data retainment for locally used destinations

LXMF β 0.9.3

Choose a tag to compare

@markqvist markqvist released this 13 Nov 18:43

This release fixes a single bug.

Changes

  • Fixed missing PN configuration unpack from cached announce data on incoming sync auto-peering if peer wasn't already discovered and peered.

LXMF β 0.9.2

Choose a tag to compare

@markqvist markqvist released this 08 Nov 13:31

This release fixes a compatibility issue with Python 3.14 and ensures correct data persistence on SIGTERM or SIGINT shutdowns

Changes

  • Fixed invalid multiprocessing start method for Python 3.14
  • Fixed down-chain exit handlers not being called under some forced shutdown circumstances

LXMF β 0.9.1

Choose a tag to compare

@markqvist markqvist released this 03 Nov 21:28

Hotfix Release for 0.9.0 released earlier today! The initial upload had a bug that would cause message stamps to get overwritten by propagation stamps (in client outbound processing) if deferred stamp generation was enabled. Please upgrade to this version on any clients immediately. Propagation nodes running 0.9.0 are not affected, but I'd recommend upgrading anyway! My apologies for the extra updating ;) This was a complex release, and of course a bug had to sneak in!

This release comes with significant upgrades to propagation node functionality and efficiency. The sync and peering system for propagation nodes has been ugpraded, making it much faster and more efficient. Most importantly, propagation stamps have now been implemented, similar to the direct peer-to-peer message stamp functionality already present. From now on, clients will compute a propagation stamp for each message sent to the propagation network, which nodes can check for validity. Stamp generation is computationally costly, but very easy to validate for nodes processing messages, making it much more expensive to spam and abuse the network. Stamp and peering costs can be configured individually by node operators, which allows each network to find its own consensus and react in real-time to load, capacity and use.

If you want to get started with this new functionality already, the best place to start is to read the updated lxmd configuration file. I will have a full explanation of all the new options out shortly, but the config file comments should give you the most necessary information.

Warning! While this release is fully compatible with previous LXMF versions for all direct and peer-to-peer delivery, propagation-node functionality is not backwards compatible for this release, since the signalling, sync and peering system has been significantly redesigned and improved. Clients using LXMF versions prior to 0.9.0 will not be able to send messages via 0.9.0+ propagation nodes, although they will be able to download messages from them for now. Propagation nodes still on version prior to 0.9.0 will not be able to sync with nodes from 0.9.0 forward, and newer nodes will also not offer any messages to older versions. Nodes running older versions will automatically see new versions as presenting a de-peering request, and stop sending them messages. If you update to LXMF 0.9.0, make sure to update all your devices to retain full propagation node functionality! Updated versions of Sideband and Nomad Network supporting the new functionality will be released shortly.

Changes

  • Added ability to include node names in propagation node announces
  • Added ability to query and control remote lxmd instances
  • Added new lxmd command line options for triggering peer sync and removing peers
  • Improved lxmd status and peer status output
  • Implemented propagation stamp system
  • Implemented automatic client-side propagation stamp generation and cost resolution for outbound propagation messages
  • Implemented propagation node peering key computation and validation
  • Implemented remote propagation node sync request validation using peering keys and throttling
  • Improved peer configuration resolution time significantly by using cached announce app data and network queries, instead of waiting for announces to arrive
  • Implemented automatic legacy node de-peering once node is upgraded to 0.9.0+
  • Implemented automatic peer breaking if peered nodes moves outside of auto-peering range
  • Implemented client-side duplicate detection and signalling on propagation node message download
  • Improved auto-peering on inbound sync
  • Added support for getting transient message stamp values to the API
  • Significantly improved propagation node announce data structure, paving the way for future functionality and improvements
  • Added separate propagation message size and propagation node sync size limits
  • Significantly improved propagation node convergence
  • Fixed a bug where propagation node messagestore messages would always get deleted if the path to the messagestore directory contained an underscore.
  • Fixed a bug in the initial 0.9.0 release that could cause message stamps to get overwritten by propagation stamps.

LXMF β 0.9.0

Choose a tag to compare

@markqvist markqvist released this 02 Nov 22:35

This release comes with significant upgrades to propagation node functionality and efficiency. The sync and peering system for propagation nodes has been ugpraded, making it much faster and more efficient. Most importantly, propagation stamps have now been implemented, similar to the direct peer-to-peer message stamp functionality already present.

From now on, clients will compute a propagation stamp for each message sent to the propagation network, which nodes can check for validity. Stamp generation is computationally costly, but very easy to validate for nodes processing messages, making it much more expensive to spam and abuse the network. Stamp and peering costs can be configured individually by node operators, which allows each network to find its own consensus and react in real-time to load, capacity and use.

If you want to get started with this new functionality already, the best place to start is to read the updated lxmd configuration file. I will have a full explanation of all the new options out shortly, but the config file comments should give you the most necessary information. All options are set to sane defaults, so no re-configuration should be necessary at this point, unless you have specific needs or use-cases.


Warning! While this release is fully compatible with previous LXMF versions for all direct and peer-to-peer delivery, propagation-node functionality is not backwards compatible for this release, since the signalling, sync and peering system has been significantly redesigned and improved.

Clients using LXMF versions prior to 0.9.0 will not be able to send messages via 0.9.0+ propagation nodes, although they will be able to download messages from them for now. Propagation nodes still on version prior to 0.9.0 will not be able to sync with nodes from 0.9.0 forward, and newer nodes will also not offer any messages to older versions.

Nodes running older versions will automatically see new versions as presenting a de-peering request, and stop sending them messages. If you update to LXMF 0.9.0, make sure to update all your devices to retain full propagation node functionality! Updated versions of Sideband and Nomad Network supporting the new functionality will be released shortly.


Upgrade Notes
If you are not running an LXMF propagation node, everything will work as previously, although you will no longer be able to use pre 0.9.0 propagation nodes for message delivery.

If you are running a propagation node, here's some relevant pointers:

  • If you are running a propagation node, any unstamped messages in your messagestore will be dropped when starting lxmd / nomadnet on LXMF 0.9.0 for the first time.
  • Before upgrading, I highly recommend that you make a backup of your entire lxmd / nomadnet configuration directory first, in case anything goes wrong, or you want to go back to a previous version.
  • To make a clean transition to 0.9.0, delete the following files and folder in your LXMF storage directory before the first launch:
    • lxmf/locally_processed
    • lxmf/node_stats
    • lxmf/peers
    • lxmf/messagestore

Changes

  • Added ability to include node names in propagation node announces
  • Added ability to query and control remote lxmd instances
  • Added new lxmd command line options for triggering peer sync and removing peers
  • Improved lxmd status and peer status output
  • Implemented propagation stamp system
  • Implemented automatic client-side propagation stamp generation and cost resolution for outbound propagation messages
  • Implemented propagation node peering key computation and validation
  • Implemented remote propagation node sync request validation using peering keys and throttling
  • Improved peer configuration resolution time significantly by using cached announce app data and network queries, instead of waiting for announces to arrive
  • Implemented automatic legacy node de-peering once node is upgraded to 0.9.0+
  • Implemented automatic peer breaking if peered nodes moves outside of auto-peering range
  • Implemented client-side duplicate detection and signalling on propagation node message download
  • Improved auto-peering on inbound sync
  • Added support for getting transient message stamp values to the API
  • Significantly improved propagation node announce data structure, paving the way for future functionality and improvements
  • Added separate propagation message size and propagation node sync size limits
  • Significantly improved propagation node convergence
  • Fixed a bug where propagation node messagestore messages would always get deleted if the path to the messagestore directory contained an underscore.

LXMF β 0.8.0

Choose a tag to compare

@markqvist markqvist released this 14 Jul 16:12

This release fixes a bug and improves recovery time when delivery links are unexpectedly closed during transfer.

Changes

  • Fixed a potential division by zero
  • Added retry of path request on unexpectedly closed link
  • Updated RNS dependency version

LXMF β 0.7.1

Choose a tag to compare

@markqvist markqvist released this 15 May 20:12

This release fixes a single bug.

Changes

  • Fixed inactive link cleanup timing source

LXMF β 0.7.0

Choose a tag to compare

@markqvist markqvist released this 12 May 10:23

This is a compatibility release for AES-256 encryption added in RNS 0.9.5.

Changes

  • Added support for AES-256 link and packet modes
  • Updated required RNS version to 0.9.5

LXMF β 0.6.3

Choose a tag to compare

@markqvist markqvist released this 13 Mar 18:49

This release updates the default configuration file.

Changes

  • Added options to the default configuration file
  • Added message ingest API option