Implemented delivery as single packets over links.

This commit is contained in:
Mark Qvist 2021-08-28 15:30:47 +02:00
commit 1e8ef437b9
2 changed files with 26 additions and 10 deletions

View file

@ -20,14 +20,14 @@ LXMF messages are stored in a simple and efficient format, that's easy to parse
##### And these rules:
1. A LXMF message is identified by it's __message-id__, which is a SHA-256 hash of the __Destination__, __Source__ and __Payload__. The message-id is never included directly in the message, since it can always be inferred from the message itself.
1. A LXMF message is identified by its __message-id__, which is a SHA-256 hash of the __Destination__, __Source__ and __Payload__. The message-id is never included directly in the message, since it can always be inferred from the message itself.
In some cases the actual message-id cannot be inferred, for example when a Propagation Node is storing an encrypted message for an offline user. In theses cases a _transient-id_ is used to identify the message while in storage or transit.
2. __Destination__, __Source__, __Signature__ and __Payload__ parts are mandatory, as is the __Timestamp__ part of the payload.
- The __Destination__ and __Source__ fields are Reticulum destination hashes
- The __Signature__ field is a Ed25519 signature of the __Destination__, __Source__, __Payload__ and __message-id__
- The __Payload__ part is a list containing four items:
- The __Destination__ and __Source__ fields are 10-byte Reticulum destination hashes
- The __Signature__ field is a 64-byte Ed25519 signature of the __Destination__, __Source__, __Payload__ and __message-id__
- The __Payload__ part is a [msgpacked](https://msgpack.org) list containing four items:
1. The __Timestamp__ is a double-precision floating point number representing the number of seconds since the UNIX epoch.
2. The __Content__ is the optional content or body of the message
3. The __Title__ is an optional title for the message