feat: DID persistence + federation node names in sync

Part 1 — DID Persistence:
- Deploy script creates /var/lib/archipelago/identity/ directory
- First-boot script creates identity dir with proper ownership
- Identity load now logs pubkey to confirm persistence across restarts

Part 2 — Node Names:
- NodeStateSnapshot includes node_name field
- build_local_state() passes server name to sync responses
- update_node_state() stores peer's announced name on the FederatedNode
- Names propagate automatically during federation.sync-state

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dorian
2026-03-19 19:19:13 +00:00
co-authored by Claude Opus 4.6
parent f8eefa87d2
commit f8794791f3
8 changed files with 66 additions and 6 deletions
+2
View File
@@ -195,6 +195,7 @@ mod tests {
fn sample_snapshot_a() -> NodeStateSnapshot {
NodeStateSnapshot {
timestamp: "2026-03-16T12:00:00Z".to_string(),
node_name: Some("Test Node A".to_string()),
apps: vec![
AppStatus {
id: "bitcoin-knots".to_string(),
@@ -225,6 +226,7 @@ mod tests {
fn sample_snapshot_b() -> NodeStateSnapshot {
NodeStateSnapshot {
timestamp: "2026-03-16T12:05:00Z".to_string(),
node_name: Some("Test Node A".to_string()),
apps: vec![
AppStatus {
id: "bitcoin-knots".to_string(),