This node's Ed25519 identity. The fingerprint goes into a DNS TXT record so other psyc nodes can discover this one. The public key lets them verify any feed we publish — the private key never leaves this box.
← back to admin · discovery · vouches · quorum config · transparency log · network
{{ pubkey_pem }}
Paste these into your zone file. Once they're live, any peer that knows your domain can discover the node and pin the right key without out-of-band coordination.
{{ dns.human_instructions }}
Trusted peers' feeds are signature-verified on every poll. Blocked peers are recorded but ignored. Unknown peers are kept for review — nothing flows from them until you set them trusted.
{% if peers %}| Domain | Fingerprint | Status | Discovered | Last seen | |
|---|---|---|---|---|---|
| {{ p.domain }} | {{ p.fingerprint[:8] }}…{{ p.fingerprint[-8:] }} | {% if p.status == 'trusted' %} trusted {% elif p.status == 'blocked' %} blocked {% else %} unknown {% endif %} | {{ (p.discovered_at or '')[:16] | replace('T', ' ') }} | {{ ((p.last_seen or '')[:16] | replace('T', ' ')) or '—' }} |
(no peers yet — add one below)
{% endif %}Pin a peer's identity manually: their domain, their fingerprint (from their DNS TXT record), and the public key they publish at /federation/key.
Verified federation signals from peers — case + IOC reports awaiting quorum. The signal buffer is what later quorum logic will count over.
{% if signals %}| Received | Peer | Type | Id | Hash |
|---|---|---|---|---|
| {{ (s.received_at or '')[:19] | replace('T', ' ') }} | {{ s.peer_fingerprint[:8] }}… | {{ s.signal_type }} | {{ s.signal_id[:48] }} | {{ s.signal_hash[:16] }}… |
(no signals received yet — quorum stage will populate this)
{% endif %}