tawasuyu

tawasuyu/agora

> Public square. Federated identity and a trust graph that no one runs.

Rust 76Markdown 49TOML 211529 Definiciones

⎇ d0638350bf39c350b2d1d1858a8c8eb962240fa5 03_ukupacha/agora/LEEME.md Markdown · 46 líneas · 3.6 KB Historia crudo

feat: agora standalone — front-door de identidad federada y grafo de confianza d0638350b · Sergio ·

1# agora
2
3> Plaza pública. Identidad federada y un grafo de confianza que no administra nadie.
4
5![agora-app: siete tiles sobre el mismo TrustGraph — identidades con claves Ed25519 reales, atestaciones firmadas y verificadas, una multifirma 2-de-2 y los sobres del plano de control de wawa](https://tawasuyu.net/03_ukupacha/agora/pantallazo.png)
6
7`agora` es la capa de identidad del monorepo. Cada identidad — persona, comunidad, alianza, institución — es una clave pública ed25519. Cada afirmación sobre ella es un `Claim`. Cada respaldo es una `Attestation`: un claim firmado por un atestador. La verdad del ágora no la dicta un servidor: emerge de quién atestigua qué, pesado por una `TrustPolicy` que cada lector negocia para sí.
8
9No hay registro maestro, no hay algoritmo de moderación, no hay feed. La misma forma — pubkey + atestaciones firmadas — cubre desde una persona hasta una institución, pasando por comunidades y alianzas.
10
11## Instalación
12
13```sh
14cargo run --release -p agora-app
15```
16
17## Compatibilidad
18
19- **Linux / macOS / Windows / Wawa** — todos los crates son puro Rust.
20- Persistencia local; convergencia opcional con peers de la malla `minga`.
21
22## Crates
23
24| Crate | Rol |
25|---|---|
26| [`agora-core`](agora-core/LEEME.md) | Identidades, claims, atestaciones firmadas ed25519. |
27| [`agora-graph`](agora-graph/LEEME.md) | TrustGraph: atestaciones verificadas + corroboración + política negociada. |
28| [`agora-store`](agora-store/LEEME.md) | Persistencia JSON atómica con re-verificación al cargar. |
29| [`agora-keystore`](agora-keystore/LEEME.md) | Almacén cifrado de seeds privadas (Argon2 + ChaCha20-Poly1305). |
30| [`agora-gossip`](agora-gossip/LEEME.md) | Protocolo anti-entropy transport-agnóstico sobre atestaciones firmadas. |
31| [`agora-net-brahman`](agora-net-brahman/LEEME.md) | Puente libp2p: registra `/agora/gossip/1.0.0` sobre `BrahmanNet` (compartido con minga). |
32| [`agora-channel`](agora-channel/LEEME.md) | Adapter de firma al contrato `format::Canal` de wawa: raíces/releases firmados, verificación del historial de un canal, concesiones de capacidad por hash de bytecode (§14.1.3). |
33| [`agora-cli`](agora-cli/LEEME.md) | CLI de shell: identidades (rotar/revocar), atestaciones, exportar/importar, canales y las ceremonias `wawa` (publicar / concesion / anunciar / revocar). |
34| [`agora-app`](agora-app/LEEME.md) | UI Llimphi: identidades, atestaciones, compositor, política, tiles de control wawa (capacidad/release). |
35| [`agora-dispositivo`](agora-dispositivo/) | Binding device→persona por atestación firmada: una persona, una identidad, muchas máquinas. |
36| [`agora-petnames`](agora-petnames/) | Nombres memorables locales más presentaciones firmadas — petnames en vez de un espacio de nombres global. |
37| [`agora-confianza`](agora-confianza/) | Reconcilia los dos planos de confianza de agora en **una sola opinión por-lector**. |
38| [`agora-ayllu`](agora-ayllu/) | La comunidad como autora: el mundo andino nunca tuvo al individuo como unidad — la unidad era el **ayllu**. Este crate le da identidad firmante. |
39
40## Consideraciones
41
42- **Identidad por clave pública**, nunca email ni teléfono.
43- El grafo guarda sólo **evidencia comprobable**: una atestación con firma rota se rechaza al ingresar.
44- El veredicto sobre un claim no es una propiedad del grafo — la `TrustPolicy` se **negocia** por lector, y dos lectores pueden discrepar legítimamente sobre la misma evidencia.
45- La auto-atestación se preserva pero queda marcada aparte del respaldo de terceros.
46- Compatible con `minga`: cuando ambos están activos, ágora viaja sobre el mismo nodo `BrahmanNet` (un PeerId, una tabla Kademlia, dos sub-protocolos de stream).

LEEME.md

agora

Plaza pública. Identidad federada y un grafo de confianza que no administra nadie.

agora-app: siete tiles sobre el mismo TrustGraph — identidades con claves Ed25519 reales, atestaciones firmadas y verificadas, una multifirma 2-de-2 y los sobres del plano de control de wawa

agora es la capa de identidad del monorepo. Cada identidad — persona, comunidad, alianza, institución — es una clave pública ed25519. Cada afirmación sobre ella es un Claim. Cada respaldo es una Attestation: un claim firmado por un atestador. La verdad del ágora no la dicta un servidor: emerge de quién atestigua qué, pesado por una TrustPolicy que cada lector negocia para sí.

No hay registro maestro, no hay algoritmo de moderación, no hay feed. La misma forma — pubkey + atestaciones firmadas — cubre desde una persona hasta una institución, pasando por comunidades y alianzas.

Instalación

cargo run --release -p agora-app

Compatibilidad

Crates

CrateRol
agora-coreIdentidades, claims, atestaciones firmadas ed25519.
agora-graphTrustGraph: atestaciones verificadas + corroboración + política negociada.
agora-storePersistencia JSON atómica con re-verificación al cargar.
agora-keystoreAlmacén cifrado de seeds privadas (Argon2 + ChaCha20-Poly1305).
agora-gossipProtocolo anti-entropy transport-agnóstico sobre atestaciones firmadas.
agora-net-brahmanPuente libp2p: registra /agora/gossip/1.0.0 sobre BrahmanNet (compartido con minga).
agora-channelAdapter de firma al contrato format::Canal de wawa: raíces/releases firmados, verificación del historial de un canal, concesiones de capacidad por hash de bytecode (§14.1.3).
agora-cliCLI de shell: identidades (rotar/revocar), atestaciones, exportar/importar, canales y las ceremonias wawa (publicar / concesion / anunciar / revocar).
agora-appUI Llimphi: identidades, atestaciones, compositor, política, tiles de control wawa (capacidad/release).
agora-dispositivoBinding device→persona por atestación firmada: una persona, una identidad, muchas máquinas.
agora-petnamesNombres memorables locales más presentaciones firmadas — petnames en vez de un espacio de nombres global.
agora-confianzaReconcilia los dos planos de confianza de agora en una sola opinión por-lector.
agora-aylluLa comunidad como autora: el mundo andino nunca tuvo al individuo como unidad — la unidad era el ayllu. Este crate le da identidad firmante.

Consideraciones