enigma-node-types
Canonical node-facing types and strict codecs for Enigma components. Endpoints exchange hashed user identifiers instead of raw usernames, keeping registry, relay, and SFU traffic aligned while limiting metadata exposure.
Highlights:
- Deterministic
UserIdhashing from usernames using BLAKE3 with a fixed domain separation string. - Optional
username_hintfield; omit it when privacy matters. - Validated payloads for registry, presence, node listings, and relay envelopes.
- Relay envelopes carry opaque, encoded blobs; intermediaries should forward without decrypting.
Usage:
- Construct and validate types locally (e.g.,
PublicIdentity::validate,RelayEnvelope::validate). - Encode/decode JSON with
to_json_stringandfrom_json_str; unknown fields are rejected. - Prefer
UserIdover plaintext usernames in network endpoints; hints are optional.