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 | c3fde0fdd410902125f006f0a7d77ca030cb9061 (patch) | |
| tree | d5506388f0f94b77c5172c96074ff68b54186726 /docs | |
| parent | 2ff408c024a0ef5db2a770e8a091783f1b6d9cfc (diff) | |
signatures: on their own (SIGNATURES)
Signatures no sync message took go on their own within a second, to
each peer not sent them yet (wire version bumped).
Auth plan M5.
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/api.md | 2 | ||||
| -rw-r--r-- | docs/architecture.md | 3 | ||||
| -rw-r--r-- | docs/measurements.md | 2 | ||||
| -rw-r--r-- | docs/openapi.yaml | 5 |
4 files changed, 9 insertions, 3 deletions
diff --git a/docs/api.md b/docs/api.md index cc3cc05..a02d3d5 100644 --- a/docs/api.md +++ b/docs/api.md @@ -264,6 +264,8 @@ change as it is made, and `--sign-every none` signs only those above. Signatures travel with sync messages: a node passes on, for each node's writes, the latest signature it checked, and checks one it receives once it holds the change (a signature costs about 30 µs to check, and one per node and run vouches for the rest). +Those no sync message took, as one made after its change went, go on their own within +a second (SIGNATURES), to each peer that wasn't sent them yet. The signatures a node has are kept in its document file (`--document-file`) with the document. diff --git a/docs/architecture.md b/docs/architecture.md index f4ce611..1713d40 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -77,7 +77,7 @@ it switched to the right document without trusting anyone. ## Modules **[`transport/`](../src/transport/)** — [`mod.rs`](../src/transport/mod.rs) defines the message types (HELLO, HELLO_REPLY, sync -envelope, STATUS/STATUS_REPLY, PING/PONG, blob messages, PROBE/PROBE_REPLY) and the `Transport` trait; +envelope, STATUS/STATUS_REPLY, PING/PONG, blob messages, PROBE/PROBE_REPLY, SIGNATURES) and the `Transport` trait; [`wire.rs`](../src/transport/wire.rs) is the wire format (a version byte, bumped with every change to the format, and a kind byte, then the message in MessagePack, derived from the types in [`mod.rs`](../src/transport/mod.rs) with codecs for hashes and IDs); [`mycelium/`](../src/transport/mycelium/) (with the `mycelium` feature) is the REST @@ -118,6 +118,7 @@ ignored 25-node soak test with a propagation bound (`cargo test soak -- --ignore | `tree` | writers' trees: passing each writer's changes on to the members after us in its tree, the same on every node | [`peers.md`](peers.md) | | `reach` | whom each neighbour reaches, as it says in its STATUS: the 2-hop neighbourhood trees are built on | [`peers.md`](peers.md) | | `relay` | announcing heads where trees don't reach (at once) and to everyone else (slow round), and pulling what's missing | module docs | +| `signatures` | sending signatures of changes that no sync message took, every second | [`api.md`](api.md), Signed changes | | [`topology/`](../src/swarm/topology/) | which members are neighbours: ring plus low-score links, stable members preferred | module docs | | `members` | the member registry: aliases, alive stamps, tiers, the electorate | module docs | | `stability` | a node's own connectivity record and its stable/transient tier | module docs | diff --git a/docs/measurements.md b/docs/measurements.md index 9036031..4e1099f 100644 --- a/docs/measurements.md +++ b/docs/measurements.md @@ -180,7 +180,7 @@ Messages and payload bytes by direction (`sent`, `received`, `refused`) and kind (`hello`, `helloReply`, `sync`, `status`, `statusReply`, `blob`, `identity` for WHO and ME, `paths` for PING and PONG, `probe` for PROBE and PROBE_REPLY, `plumtree` for PRUNE and GRAFT, `hyparview` for NEIGHBOUR, -NEIGHBOUR_REPLY and DISCONNECT). The layers below the node count WHO and ME, and the +NEIGHBOUR_REPLY and DISCONNECT, `signatures` for SIGNATURES). The layers below the node count WHO and ME, and the paths layer's own PINGs and PONGs, under the address they went to or came from; a peer (`/peers`) has those of its addresses too, where it is known to be at them. Payload bytes are what a transport's message carries (the wire encoding): not the transport's framing (for Mycelium, its topic and the base64 of its diff --git a/docs/openapi.yaml b/docs/openapi.yaml index 2e131fb..7aba2fe 100644 --- a/docs/openapi.yaml +++ b/docs/openapi.yaml @@ -2046,7 +2046,7 @@ components: ByKind: type: object - required: [hello, helloReply, sync, status, statusReply, blob, identity, paths, links, probe, plumtree, hyparview] + required: [hello, helloReply, sync, status, statusReply, blob, identity, paths, probe, plumtree, hyparview, signatures] properties: hello: $ref: '#/components/schemas/Counter' @@ -2076,6 +2076,9 @@ components: hyparview: $ref: '#/components/schemas/Counter' description: NEIGHBOUR, NEIGHBOUR_REPLY and DISCONNECT, with --topology hyparview. + signatures: + $ref: '#/components/schemas/Counter' + description: SIGNATURES, signatures of changes no sync message took. Traffic: type: object |
