diff options
| author | tv <tv@krebsco.de> | 2026-11-07 22:35:21 +0100 |
|---|---|---|
| committer | tv <tv@krebsco.de> | 2026-11-07 22:35:21 +0100 |
| commit | c9b05d33f57b7efd69301b56725614a0d9938599 (patch) | |
| tree | 1b1fc8dd4d2254174303f2938fb0ec773081af2e /src/node.rs | |
| parent | 8523e9c67e375747147a0b05ec191ad81ce2e318 (diff) | |
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.
Diffstat (limited to 'src/node.rs')
| -rw-r--r-- | src/node.rs | 6 |
1 files changed, 6 insertions, 0 deletions
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<Arc<crate::identity::NodeKey>>, + /// `--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())); |
