Oasis 0.9.5 con Karvan para escritorio
Rama de desarrollo experimental sobre el Oasis de epsylon, sin afiliacion con el proyecto original. Base: 0.9.5. Trae el modulo Karvan —salas efimeras en memoria con autodestruccion por TTL, chat que funciona sin JavaScript y llamadas de audio y video sobre WebRTC— con el enlace en el menu lateral por el mismo patron que el resto de modulos: renderKarvanLink calcado de renderPollsLink, entrada en modules_view y en la lista de /modules. Los estilos del modulo van en su propia hoja, styles/karvan.css, siguiendo el patron de highlight.css: asi se ve igual con cualquier tema, sin depender del tema movil. Sin servidores ICE de terceros: no hay STUN de fabrica, porque un STUN aprende la IP publica y el momento de cada llamada. Solo candidatos host salvo que se configure un TURN propio en oasis-config.json, con credenciales efimeras por el mecanismo REST de coturn. El codigo propio vive separado —views/fork/, backend/fork_routes.js, models/karvan_model.js y translations/fork/— de modo que sobre los ficheros de upstream solo hay enganches de una linea y cada version nueva se integra sin arrastrar nada. Respecto al arbol de Android: fuera el wrapper y main.js, que es su arranque; el tema vuelve a Dark-SNH y se restauran los modulos que en movil se recortan por peso. Verificado arrancando sin OASIS_MOBILE: nueve rutas OK, menu lateral de upstream con 27 grupos y el enlace de Karvan, cero rastro de la interfaz movil (ni hexagonos, ni topbar, ni barra inferior), y una sala creada y servida.
This commit is contained in:
commit
ddd2787b73
286 changed files with 157145 additions and 0 deletions
62
docs/devs/architecture/00-README.md
Normal file
62
docs/devs/architecture/00-README.md
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
# Guía de desarrollo de Oasis
|
||||
|
||||
Esta carpeta documenta cómo está construido Oasis por dentro, para que puedas
|
||||
entenderlo y extenderlo (por ejemplo, creando un **módulo de juegos** nuevo).
|
||||
|
||||
Está pensada para leerse en orden, pero cada archivo es autónomo.
|
||||
|
||||
## Índice
|
||||
|
||||
1. **[01-red-ssb.md](01-red-ssb.md)** — Cómo funciona Oasis **a nivel de red**:
|
||||
Secure Scuttlebutt (SSB), secret-stack, multiserver, muxrpc, EBT, blobs,
|
||||
federación P2P, puertos y cifrado.
|
||||
|
||||
2. **[02-arquitectura-software.md](02-arquitectura-software.md)** — La
|
||||
**arquitectura de software** del backend: el patrón MVC casero
|
||||
(models / views / backend.js), el stack de dependencias, el "cooler", el
|
||||
flujo de una petición y cómo se interrelacionan los archivos.
|
||||
|
||||
3. **[03-modulos-y-juegos.md](03-modulos-y-juegos.md)** — Cómo está construido
|
||||
el **módulo de juegos** actual y la anatomía de un módulo en general.
|
||||
|
||||
4. **[04-tutorial-modulo-desde-cero.md](04-tutorial-modulo-desde-cero.md)** —
|
||||
**Tutorial paso a paso** para crear un módulo nuevo desde cero (caso práctico:
|
||||
un módulo de juegos propio), con todos los puntos de integración.
|
||||
|
||||
5. **[05-mapa-funciones.txt](05-mapa-funciones.txt)** — **Gran mapa ASCII** de
|
||||
cómo se relacionan las funciones lógicas entre archivos, la persistencia
|
||||
(SSB) y la media (blobs).
|
||||
|
||||
## Conceptos en 30 segundos
|
||||
|
||||
Oasis es un **cliente web de Secure Scuttlebutt (SSB)**. SSB es un protocolo
|
||||
social **P2P, distribuido y federado**: no hay servidor central; cada nodo tiene
|
||||
una copia local de un *log append-only* firmado criptográficamente, y los nodos
|
||||
se replican entre sí por *gossip*.
|
||||
|
||||
Oasis se compone de **dos procesos**:
|
||||
|
||||
```
|
||||
┌─────────────────────────┐ ┌──────────────────────────┐
|
||||
│ SBOT (nodo de red SSB) │ <─────> │ FRONTEND WEB (Koa/HTML) │
|
||||
│ src/server/SSB_server │ unix │ src/backend/backend.js │
|
||||
│ habla con otros peers │ socket │ habla con tu navegador │
|
||||
└─────────────────────────┘ └──────────────────────────┘
|
||||
puerto 8008 (SSB) puerto 3000 (HTTP)
|
||||
```
|
||||
|
||||
- El **sbot** (`src/server/SSB_server.js`) es el nodo SSB: se conecta a otros
|
||||
peers, replica feeds, sirve y descarga blobs. → [01-red-ssb.md](01-red-ssb.md)
|
||||
- El **frontend** (`src/backend/backend.js`) es un servidor HTTP en Koa que
|
||||
renderiza HTML puro (sin JS de navegador) y se conecta al sbot como **cliente
|
||||
muxrpc** por un socket Unix local. → [02-arquitectura-software.md](02-arquitectura-software.md)
|
||||
|
||||
El patrón para **cada funcionalidad** ("módulo") es siempre el mismo:
|
||||
|
||||
```
|
||||
navegador → backend.js (ruta) → *_model.js (lee/escribe SSB) → *_view.js (HTML) → navegador
|
||||
```
|
||||
|
||||
> Las rutas, líneas y nombres citados en estos documentos corresponden a la
|
||||
> versión 0.8.1 del código. Si editas el código, vuelve a comprobar los números
|
||||
> de línea con `grep`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue