feat: introduce keyupdate messages informing contacts about relay changes

When the published relay list changes, key-contacts are informed with an
unsigned message carrying the re-signed key, encrypted to a chunk of contacts
at a time. It is shaped like a receipt notification naming no message, so that
cores which know nothing about keyupdates trash it as well.

See the src/keyupdate.rs module docs for the design.
This commit is contained in:
holger krekel
2026-08-29 23:11:05 +02:00
parent 370cc5c1fd
commit f162749dfe
17 changed files with 830 additions and 26 deletions
+7
View File
@@ -361,6 +361,13 @@ pub enum Config {
/// Whether automatic relay management successfully added the desired number of relays
AutorelayFinished,
/// Sorted, space-separated relay list for which no keyupdate is due.
KeyupdateBaseline,
/// For tests only: keyupdate debounce window in seconds.
#[strum(props(default = "30"))]
KeyupdateDebounce,
/// Whether to avoid using IMAP IDLE even if the server supports it.
///
/// This is a developer option for testing "fake idle".