MIRROR_ACK — Group 21, Code 11
Mirror confirms a snapshot stored, so root knows it propagated before telling clients the epoch is live.
Design-stage — parameters are a first draft
Field sizes are drafted from raidax/ideas_for_suspect_raida_servers.txt (Addenda 5–7) and are not final or implementation-verified. The body is encrypted per the header ENC_CODE; see below.
Phase I — essential
This command is part of the Phase I minimum needed for a coin to move from root to suspect (and back) and be trusted by a workstation. Confirms the list propagated before an epoch goes live.
How it works
The companion to PUSH_AUTHORITY_SNAPSHOT. After a mirror receives and stores a new authority snapshot, it sends this acknowledgement back to the root, including the fingerprint (hash) of what it stored so the root can confirm it matches.
This lets the root know the new epoch's data has actually propagated to enough mirrors before it tells clients the epoch is live. It is authenticated with the shared server-to-server key. Without this confirmation step, clients could be pointed at an epoch whose data had not finished spreading.
Direction & encryption
- Direction: mirror → root
- ENC_CODE: 7 (K_rs)
Request Body parameters
| Field | Bytes | Description |
|---|---|---|
| epoch | 4 | Epoch id stored. |
| snapshot_hash | 16 | Hash of the stored snapshot (must match root's). |
| CMAC | 16 | AES-CMAC under K_rs. |
Response Body parameters
| Field | Bytes | Description |
|---|---|---|
| ack | 1 | 1 = acknowledged. |