Epic: Accessing data of unavailable nodes / New node synchronization
We have discussed this in various parts in the past, but no real solution has been proposed for the current version of XMTPD.
All critical info is currently broadcast through the L3 blockchain. Group messages, welcomes, etc are broadcast via the node network.
Messages on the nodes have a general 90 day expiry (configurable) so after a node has been gone for 90 days, it is as if it never existed.
On the other hand, a node can be temporarily out of service and all of its data too. Nodes might have a partial view of the node's data if they managed to sync. But if a new node joins, it never sync from a non-originator so it will never catch up.
The general terminology here is rebroadcast or failover, and we dont have a solution.
This might change partially with BFT.
One possible solution is that a new node syncs all existing data from available nodes, not just their data.
Potentially related: https://github.com/xmtp/xmtpd/issues/367 https://github.com/xmtp/xmtpd/issues/371