I have a more pertinent question: how did you find that link. : )
The content there is definitely a work in progress since that link is not launched yet.
Nevertheless, here are a few short answers:
What happen if I change the config “LocalMemoryDays” (in backend_config.cfg) from 180 to 360? (or more)
Does it means that it will maintain 1 year of data instead of 6 months?
Also, I see that there is the config “NetworkMemoryDays”, does it means that if I change to 360, then the Aether node will try to ask to the other nodes even data older then 6 months?
No. It will respond to requests asking for more than 6 months. Aether nodes only explicitly serve out for content for within the network head, which is two weeks by default. I’m starting to feel two weeks might be a little too narrow, though, so I’m currently working on having at least a few nodes in the network whose network head is 6 months.
I think that i will be interesting to being able to set both value differently for every sub, so the users will be able to choose a global config (as it is now), but also a different config for every sub.
I’ve thought of that as well, but it does require some thinking on how to make that non-exploitable. The most basic thing I can think of is a popular board converting their retention timeline from 2 weeks to 2000 years and effectively content-bombing every other board out of the memory. This one is relatively straightforward to deal with, but there are a few more subtle corner cases there.
How does it work the edit of messages?
What happen when I edit my message? Do users/nodes lose the original message, or do they have both the original and the edited one?
The message itself is retained, but the content of the message changes. In other words, the post fingerprint is the same, but the body changes, and a new fingerprint is issued, which refers to the first object. In other words, it becomes a distributed ledger. But the original, content is lost and replaced by the new edit. This is a tradeoff to prevent people from spamming millions of edits on their posts to create invisible, huge payloads for the network to carry. The only valid version of any object is the last known update, the prior versions are overwritten.
What do you (@b) think about giving the possibility to the nodes, by default, to still download all the hashes of all the messages even older then 180 days?
You can download all the data that exists, and your node does that automatically. You can’t download the data that no longer exists. If you want to do that, set your node’s local memory threshold to something like 10000 years, and your node will just keep everything locally, while acting to the network like it still has 6 months of memory.
Local memory: what you keep
Network memory: what you tell to the network you keep
Network head: what you provide to everyone that connects to you by default.
Local memory: 6 months
Network memory: 6 months
Network head: 2 weeks
This means, by default your node will not keep any content that it won’t serve out to the network (local memory and the network memory are the same.)
Examples using the above defaults
Remote connects in for sync, never synced before
Result: Remote gets 2 weeks of data from you
Remote connects in for sync, has synced before two days ago
Result: Remote gets the last 2 days of data from you
Remote connects in for sync, and after sync, asks for a board that was last active 3 months ago
Result: Remote receives that board.
Remote connects in for sync, and after sync, asks for a board that was active 7 months ago
Result: Remote receives nothing, since 7 months is longer than the network memory.
(This is regardless of whether you have the content it’s asking for, or not — your node will say it doesn’t have it even if it actually does, since it is older than the network memory.)