Expand description
Concord v2 (the upstream CORD specs — github.com/concord-protocol/concord).
Vector’s second-generation community protocol, carried ALONGSIDE v1 (the
sibling community:: modules) for a migration window. v2 keeps v1’s control
plane engine verbatim — the edition hash, fold, roster, and authority algebra
are shared by import, not copied — and replaces the envelope (CORD-01 Private
Streams: group-key-signed kind-1059 wraps addressed by authors), the owner
anchor (a self-certifying community_id), the invite system (CORD-05), and
adds the Guestbook plane (CORD-02 §5).
Nothing in here touches v1 state: a Community is one protocol or the other
(protocol discriminator), and the two stacks share only pure logic.
Frozen wire constants live in two places: the derivation labels in
[derive], and the kind registry below (CORD-02 Appendix B). A retired
number is burned forever, never reused.
Modules§
- chat
- CORD-03 Chat Plane — a Channel’s messages over the v2 stream envelope.
- community
- The v2 in-memory community — the service/DB working type.
- control
- The v2 Control Plane (CORD-04 over CORD-01/02).
- derive
- Concord v2 key derivations — CORD-02 Appendix A. FROZEN.
- dissolution
- Dissolution — CORD-02 §9.
- guestbook
- CORD-02 §5 Guestbook Plane — membership motion, coalesced flat.
- inbound
- v2 inbound bridge — turns opened v2 events into the protocol-agnostic
InboundEventHandlercallbacks the rest of Vector (and the SDK’son_message) already consumes. The handler is the seam: v1 and v2 both feed it, so a bot receives v2 messages with no SDK change. - invite
- CORD-05 Invites — how members are handed the keys that make them members.
- kind
- Inner rumor kinds (CORD-02 Appendix B). The outer event is always a wrap
(
stream::KIND_WRAP/stream::KIND_WRAP_EPHEMERAL); these ride inside. - list
- The Community List — CORD-02 §8 (kind 13302).
- realtime
- v2 realtime — the
authors-based live subscription + dispatch. - rekey
- Concord v2 rekeys (CORD-06) — the per-recipient key-delivery atom + the 3303 event that carries a rotation.
- roles
- CORD-04 Roles: v2 wire content for the Role (vsk 1), Grant (vsk 3), and Banlist (vsk 4) control entities.
- service
- Concord v2 service — the stateful orchestration binding the pure v2 modules
to storage + transport. Free functions,
SessionGuard-gated at every write (aswap_sessioncan land at any await — see CLAUDE.md), mirroring the v1 service’s discipline. - stream
- CORD-01 Private Streams — the Concord v2 envelope.
- streamauth
- Concord v2 stream-key NIP-42 authentication.
- vsk
- Control-plane
vsksub-kinds (CORD-02 Appendix B). Identical numbering to v1 (community::roster) — that is deliberate, the registry is shared. 7 is retired upstream (the v1 owner attestation, obsoleted by the self-certifying community id); 11 is claimed by Vector for the v1-side migration pointer and never appears on the v2 wire.