From c9b05d33f57b7efd69301b56725614a0d9938599 Mon Sep 17 00:00:00 2001 From: tv Date: Sat, 7 Nov 2026 22:35:21 +0100 Subject: signatures: --sign-every Changes left unsigned are vouched for by the node's next signature: --sign-every 1s (default) signs the latest within a second, all signs every change, none only those that must be. Auth plan M5. --- src/node.rs | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/node.rs') diff --git a/src/node.rs b/src/node.rs index e64db6c..c1a26de 100644 --- a/src/node.rs +++ b/src/node.rs @@ -68,6 +68,8 @@ pub(crate) struct NodeConfig { /// (`document::signatures`): every node's, its node ID being its public key; none in /// the simulations without the identity layer, whose node IDs are names. pub(crate) node_key: Option>, + /// `--sign-every`. + pub(crate) sign_every: crate::document::signatures::SignEvery, /// `--token-lifetime`, `--session-lifetime`. pub(crate) token_lifetime: Duration, pub(crate) session_lifetime: Duration, @@ -153,6 +155,7 @@ impl Node { protocol_writers: Arc::new(config.protocol_writers), first_users: Arc::new(config.first_users), node_key: config.node_key, + sign_every: config.sign_every, token_lifetime: config.token_lifetime, session_lifetime: config.session_lifetime, cors_origins: Arc::new(config.cors_origins), @@ -230,6 +233,9 @@ impl Node { tokio::spawn(peer::probe_when_reachable(state.clone(), reachable)); tokio::spawn(remake::run_worker(state.clone())); + if let crate::document::signatures::SignEvery::Interval(every) = state.sign_every { + tokio::spawn(state.clone().sign_latest_every(every)); + } trace!("Remake worker task spawned"); tokio::spawn(swarm::topology::run_worker(state.clone())); -- cgit v1.3.1