aboutsummaryrefslogtreecommitdiffstats
path: root/src/document/replica.rs
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-11-07 22:35:21 +0100
committertv <tv@krebsco.de>2026-11-07 22:35:21 +0100
commit8523e9c67e375747147a0b05ec191ad81ce2e318 (patch)
tree5263ee759296f08a38091890b743f8d64b557c30 /src/document/replica.rs
parent8f3f7b24f5a4e7cce4a006ec45b8061fe5cdd87c (diff)
signatures: changes signed by their node
Every node signs the changes it commits with its node key, an Ed25519 signature over the change's hash, kept beside the document. One signature on an actor's latest change vouches for its earlier ones. Protocol data and paths listed in _continuum/access/signed are signed, and writes with ?signed=true. Auth plan M5.
Diffstat (limited to 'src/document/replica.rs')
-rw-r--r--src/document/replica.rs3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/document/replica.rs b/src/document/replica.rs
index 03325eb..ead42f6 100644
--- a/src/document/replica.rs
+++ b/src/document/replica.rs
@@ -124,6 +124,8 @@ pub(crate) struct Replica {
/// What local writes and sync changed since the change publisher last looked
/// (`changed_since`), so it needn't diff the document for it.
log: std::sync::Mutex<Log>,
+ /// The signatures of the document's changes this node has (`document::signatures`).
+ pub(crate) signatures: super::signatures::Signatures,
}
/// The patches of the changes from `from` to `to` (sorted heads) of the document of
@@ -180,6 +182,7 @@ impl Replica {
heads: Vec::new(),
stamp,
log,
+ signatures: Default::default(),
};
replica.refresh_heads();
replica