6.3 KiB
Tanemaki — Decisiones abiertas y "qué chirría"
Revisión de conjunto antes de seguir construyendo. Reúne los cabos sueltos repartidos por los docs de diseño, ordenados por cuándo hay que decidirlos, y nombra las tensiones del plan que conviene mirar de frente.
A) Decidir antes de escribir código de la Fase 1 (inventario)
Estas fijan schemaVersion = 1 y el arranque técnico:
- Formato de exportación/copia: abierto, documentado, versionado (datos + fotos + clave). Bloqueante para el backup. → backup-and-recovery.md
- Cifrado en reposo (el "cómo" técnico): SQLCipher + llave aleatoria en el almacén del sistema + QR de recuperación. Conceptualmente decidido; falta bajar el mecanismo. → security-privacy.md
- Claves separadas para identidad (firmar) y para cifrado. (Tiende a: sí.)
- Detalles de modelo que fijan el esquema: ¿
Quantitycomo tipo compartido reutilizado en Lot y Movement? ¿offer_statussolo en Lot? ¿categorylibre o ligada aSpecies.family? → data-model.md §6 - Licencia del código (AGPL vs GPLv3): conviene fijarla al abrir el repo público.
- Alcance de la "varilla" v1 y fuente de los datos de conservación (viabilidad, secado): ¿quién los cura/empaqueta? → data-notes.md §3-ter
- Estructura del workspace (
commons_core+app_seeds, pub workspaces) — decidido; falta materializarlo.
B) Decidir antes de la capa de compartir (Fase 3) — muy interdependientes
- Transporte de la capa social — REPLANTEAR (ya no "Nostr primero"): la decisión de "una sola clave Duniter/Substrate" (D7) descarta la identidad Nostr. Opciones: datapod/indexador del ecosistema Duniter (misma clave), transporte agnóstico a la clave, o Nostr como mero relay con sobre propio. → g1-integration.md D7
- Estrategia de relays: app-as-relay oportunista + proximidad física + relays comunitarios. → network-trust §3
- Parámetros de la red de confianza: umbral de certificaciones (¿5, estilo Duniter?), distancia, caducidad, certificación por colectivo. → network-trust §2
- Mensajería: alcance v1 (1:1 atada a oferta), apoyo en NIP-17. → network-trust §4
- Reputación atada a un trato/oferta cerrada (evitar reseñas falsas). → sharing-model §6
- Precio: ¿monedas comunitarias / de tiempo además de dinero? → sharing-model §6
- Integración Ğ1 (moneda libre): niveles 1–2 (precio en Ğ1 + enlace a cartera Ğecko/Cesium²/Ğ1nkgo) en la capa social; nivel 3 (reusar la WoT de Ğ1 como fuente de confianza) como estudio aparte. → g1-integration.md
- Ofertas de banco colectivo (publica la entidad, no la persona). → sharing-model §6
- Caducidad/revocación de ofertas ya replicadas en relays. → sharing-model §6
C) Puede esperar (no bloquea nada ahora)
- Negación plausible / bóveda señuelo; modo discreto. → security-privacy
- Reconocimiento por foto en la varilla.
- Respaldo social distribuido entre contactos.
- Ampliar avisos legales más allá de Europa (empezar por jurisdicción común europea). → PLAN §6
- Segundo producto (biblioteca de cosas) y extracción de
Item/Holdingal core. → core-domain-boundary - Bloqueo de app: ¿activado por defecto o sugerido? → security-privacy
D) Qué chirría (tensiones a mirar de frente)
-
La capa social es indivisible y grande. "MVP = inventario + compartición local" subestima que "compartir" de verdad = ofertas + mensajería + relays + red de confianza, todo junto e interdependiente. Propuesta: replantear las fases como (1) inventario —entregable, sólido, en solitario— y (2) el salto social —un bloque grande, no un incremento—. Ser honestos con esto en el plan y en la financiación.
-
Casi toda la dificultad vive en
commons_core. Identidad, sync CRDT, ofertas, pledge, red de confianza, mensajería, relays…app_seedses, en comparación, ligero. En el fondo Tanemaki es infraestructura de procomún con las semillas como primera aplicación. Es buena noticia para NLnet/NGI Zero (financian infraestructura), pero hay que asumir que lo "sencillo" (semillas) es la punta del iceberg y comunicar el proyecto en consecuencia. -
Apuesta fuerte por Nostr. Ofertas, mensajes y confianza dependerían de NIPs en evolución (99 / 17 / 85). La abstracción
OfferTransportamortigua las ofertas, pero mensajería y confianza también se apoyan en Nostr → más acoplamiento del que sugería el plan. Revisar si un solo protocolo lo cubre bien o si conviene aislar también mensajería y confianza tras interfaces. -
Cifrado en reposo + sync CRDT + multidispositivo. Hay que asegurar que la sincronización no filtra la llave ni datos en claro, y que la llave (QR) llega bien al segundo dispositivo. Encaja, pero es un punto técnico fino que conviene prototipar pronto.
-
La "varilla" y los datos de conservación necesitan una fuente y una curación que aún no tenemos. Puede ser más trabajo del que parece (y es, a la vez, de lo que más valor humano aporta).
-
Alcance vs. sostenibilidad de un mantenedor. El conjunto (inventario + cripto + P2P + confianza + mensajería + relays, en varias plataformas) es mucho para "proyecto personal + IA". Refuerza la necesidad de: fases honestas, comunidad temprana, y financiación (NLnet) para la parte social. La Fase 1 sí es abordable en solitario.
-
Primitivo de identidad — RESUELTO: una sola clave. Decidido: una única clave Duniter-v2/Substrate para todo (perfil, ofertas, mensajes, certificaciones, Ğ1), como en Duniter. Nada de claves por función. Consecuencia abierta: esto debilita Nostr como transporte (su identidad es su clave secp256k1) → hay que replantear el transporte de la capa social hacia el ecosistema Duniter (datapods) o algo agnóstico a la clave, en vez de "Nostr primero". No bloquea la Fase 1. → g1-integration.md
Recomendación de orden
Cerrar el bloque (A) — son pocas decisiones y desbloquean construir el inventario, que es valioso por sí solo y de bajo riesgo. Dejar (B) para una ronda de diseño específica de la capa social (con su propia financiación si llega). Y asumir explícitamente el punto (D.1): replantear las fases para que "lo social" sea un hito grande y no una coletilla del MVP.