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:
co-authored by
Claude Opus 4.6
parent
f8eefa87d2
commit
f8794791f3
@@ -35,7 +35,10 @@ impl NodeIdentity {
|
||||
let arr: [u8; 32] = bytes
|
||||
.try_into()
|
||||
.map_err(|_| anyhow::anyhow!("Invalid node key length"))?;
|
||||
SigningKey::from_bytes(&arr)
|
||||
let key = SigningKey::from_bytes(&arr);
|
||||
let pubkey_hex = hex::encode(key.verifying_key().as_bytes());
|
||||
tracing::info!("Loaded existing node identity (pubkey: {}...)", &pubkey_hex[..16]);
|
||||
key
|
||||
} else {
|
||||
let signing_key = SigningKey::generate(&mut OsRng);
|
||||
fs::write(&key_path, signing_key.to_bytes())
|
||||
|
||||
Reference in New Issue
Block a user