diff --git a/Chats.md b/Chats.md index 603e241..c8f9c6c 100644 --- a/Chats.md +++ b/Chats.md @@ -59,6 +59,8 @@ de serie se quitan antes de guardarlas. ## Chats o Karvan +![Chats o Karvan](img/esq/13-chats-karvan.png) + Son dos cosas distintas y conviene no confundirlas: | | Chats | [Karvan](Karvan) | diff --git a/Compilar.md b/Compilar.md index ebdb122..f00e70a 100644 --- a/Compilar.md +++ b/Compilar.md @@ -6,6 +6,8 @@ La APK se construye con un **proyecto Gradle propio**, en `android/`. Ya no se parte del APK oficial como molde. +![Qué hay dentro de la APK](img/esq/16-arquitectura-movil.png) + ## Qué se reutiliza y qué es nuevo Tres bibliotecas nativas se toman tal cual del APK existente: diff --git a/Empezar.md b/Empezar.md new file mode 100644 index 0000000..4644637 --- /dev/null +++ b/Empezar.md @@ -0,0 +1,78 @@ +# Empezar desde cero + +> Para quien acaba de instalar Oasis y ve una pantalla vacía · +> [Volver a la portada](Home) + +La primera vez desconcierta: no hay nada que leer, nadie a quien seguir y ningún botón +de "buscar amigos". Es normal. Esto se arregla en cinco minutos. + +--- + +## Los seis pasos + +![De cero a estar dentro](img/esq/05-empezar.png) + +### Lo que hace falta de verdad + +Solo dos cosas: **una invitación de un pub** y **seguir a alguien**. Sin lo primero no +te ve nadie fuera de tu wifi; sin lo segundo, tu pantalla seguirá vacía aunque estés +conectado. + +### Dónde conseguir la invitación + +En **[oasis-project.pub](https://oasis-project.pub)** hay un directorio de pubs con su +estado y su código de invitación. Eliges uno, copias el código y lo pegas en Oasis: +**Invites → pegar**. + +Si prefieres empezar leyendo, **[0asis.net](https://0asis.net)** explica el proyecto +desde el principio. + +### Y si no quieres pub + +No hace falta. Dos equipos en la misma wifi se encuentran solos. Para un hacklab, una +casa okupa o una asamblea, la red funciona igual de puertas adentro y sin salir a +internet. + +--- + +## Ya estoy dentro. ¿Y ahora qué? + +![Tu blog y tu tienda](img/esq/10-blog-shop.png) + +Lo primero que hace casi todo el mundo es escribir. Después, según para qué te haya +traído esto: + +| Si quieres… | Enciende | Y verás | +|---|---|---| +| Publicar textos largos | **Blogs** | Un blog propio, sin dominio ni hosting | +| Vender o intercambiar | **Shops** | Una tienda con precios en ECOin | +| Organizar a un grupo | **Tribus** | Un grupo cerrado con llave propia | +| Debatir | **Foros** | Hilos con votación | +| Coordinar tareas | **Tasks**, **Projects** | Listas y proyectos compartidos | +| Hablar sin dejar rastro | **[Karvan](Karvan)** | Salas que se borran solas | + +Todo eso vive **en tu disco** y se replica a quien te sigue. No hay que pagar hosting, +ni dominio, ni comisiones. + +--- + +## Un aviso antes de publicar + +Lo que sale de tu equipo **no se puede retirar del todo**. Puedes borrarlo de tu vista, +pero quien ya lo replicó lo tiene en su disco. + +No es un fallo: es la consecuencia de que no haya un servidor central que pueda decidir +qué desaparece. Conviene tenerlo presente **antes** de escribir, no después. + +--- + +## Los tres sitios que vas a necesitar + +| | | +|---|---| +| **[oasis-project.pub](https://oasis-project.pub)** | Directorio de pubs, con invitaciones y estado de cada uno | +| **[0asis.net](https://0asis.net)** | El proyecto explicado desde cero | +| **[wiki.solarnethub.com](https://wiki.solarnethub.com/socialnet/overview)** | La documentación oficial, módulo por módulo | + +Y si algo no arranca o se ve raro, mira **[Si algo va mal](Problemas)**: están los +fallos que han pasado de verdad y cómo se arreglan. diff --git a/Entender.md b/Entender.md new file mode 100644 index 0000000..aded76f --- /dev/null +++ b/Entender.md @@ -0,0 +1,133 @@ +# Entender Oasis en diez minutos + +> Esta página explica **la red**, no esta rama. Si ya sabes cómo funciona SSB, salta +> directamente a [Karvan](Karvan) o a [Llamadas](Llamadas) · +> [Volver a la portada](Home) + +Oasis no se parece a las redes que ya conoces, y por eso cuesta la primera media hora. +Cuando cae, cae del todo. + +--- + +## 1. No hay servidor. Hay copias + +![Qué es Oasis](img/esq/01-red.png) + +Cuando publicas algo, no lo subes a ningún sitio: lo escribes en **tu propio disco**. +Lo que ocurre después es que otras personas se traen una copia. + +Eso cambia tres cosas de golpe: + +- **No hay cuenta.** Tu identidad es una clave que se genera en tu equipo. No hay + correo, ni contraseña, ni nadie que pueda cerrártela. +- **No hay caída del servicio.** Si el pub se apaga, sigues teniendo todo tu Oasis. +- **No hay borrado real.** Lo que se replicó, replicado está. Esto es importante y se + explica más abajo. + +--- + +## 2. Tu registro es una cadena firmada + +![Tu registro](img/esq/14-registro.png) + +Cada cosa que publicas se encadena a la anterior y va firmada con tu clave. Nadie puede +colar un mensaje en medio, ni cambiar lo que dijiste, sin que la cadena se rompa a la +vista de todos. + +Y de aquí sale el único peligro serio de todo Oasis: **si publicas desde dos sitios con +la misma clave**, se crean dos eslabones con el mismo número, la red ve la bifurcación +y deja de replicar ese registro. La identidad se pierde y no se recupera. + +Por eso una copia de seguridad se guarda, no se usa a la vez. + +--- + +## 3. Los mensajes viajan de vecino en vecino + +![Cómo llega un mensaje](img/esq/02-gossip.png) + +Se llama **gossip**, como el rumor: cada nodo le cuenta a sus vecinos lo que ha +recibido. No hace falta que dos personas se conecten entre sí, ni siquiera que estén +encendidas a la vez. + +Por eso Oasis funciona **sin internet**: dos móviles en la misma wifi se encuentran +solos y se pasan lo que tienen. + +--- + +## 4. Los saltos deciden cuánto te traes + +![Los saltos](img/esq/03-hops.png) + +Un salto es una persona de distancia. Con **2** —el valor de fábrica— te descargas a +quien sigues y a quien siguen ellos. + +No es un permiso: no da acceso a nada. Solo dice cuánto material guardas en tu disco +para poder leerlo sin conexión. + +--- + +## 5. Un pub es un nodo que no se apaga + +![Qué es un pub](img/esq/04-pub.png) + +Es la pieza que más se malinterpreta. Un pub **no es un servidor con tus datos**: es un +vecino que está siempre encendido y que, por eso, resulta cómodo para sincronizar y +para que gente nueva entre. + +Encontrarás pubs con su invitación en **[oasis-project.pub](https://oasis-project.pub)**. + +--- + +## 6. Lo que llega lejos es lo que la gente repite + +![Apoyar algo](img/esq/06-spread.png) + +No hay algoritmo que decida qué ves. Cuando apoyas algo, **publicas en tu propio +registro** que eso merece la pena, y por eso llega a quien te sigue. + +Es un gesto con tu firma detrás, no un contador en una base de datos ajena. + +--- + +## 7. Todo lo demás son módulos + +![Los módulos](img/esq/07-modulos.png) + +Oasis no es un muro con publicaciones: son casi cincuenta herramientas —foros, mercado, +tareas, mapas, tienda, parlamento— y enciendes las que uses. + +### Dos que conviene conocer + +![Tribus](img/esq/08-tribus.png) + +Una **tribu** es un grupo con llave propia: lo que se publica dentro viaja cifrado por +la red y solo lo entienden sus miembros. Los pubs lo repiten sin poder leerlo. + +![Las nueve casas](img/esq/09-larp.png) + +El **L.A.R.P.** parece un juego y es la forma que tiene la red de organizarse: se entra +en una casa, se proponen cosas, se vota, y de ahí salen los gobiernos del Parlamento. +Todo el mundo empieza en ACADEMIA. + +--- + +## Lo que esta rama añade encima + +Hasta aquí, Oasis. Lo que cambia en esta rama: + +| | | +|---|---| +| **[Karvan](Karvan)** | Salas que no guardan nada y se autodestruyen | +| **[Llamadas](Llamadas)** | Audio y vídeo directos, sin servidores de terceros | +| **[La interfaz](Interfaz)** | Panal de hexágonos pensado para el pulgar | +| **[Identidades](Identidades)** | Varias cuentas en el mismo móvil | + +--- + +## Para seguir leyendo + +- **[0asis.net](https://0asis.net)** — el sitio del proyecto, para empezar desde cero +- **[oasis-project.pub](https://oasis-project.pub)** — directorio de pubs con invitaciones +- **[wiki.solarnethub.com](https://wiki.solarnethub.com/socialnet/overview)** — la documentación oficial, módulo por módulo +- **[github.com/epsylon/oasis](https://github.com/epsylon/oasis)** — el código del proyecto original diff --git a/Home.md b/Home.md index ccc0cd6..70b59d0 100644 --- a/Home.md +++ b/Home.md @@ -7,9 +7,12 @@ ![Las cuatro novedades](img/00-novedades.png) -**Esta wiki solo cuenta lo que esta rama hace distinto.** Lo demás —qué es SSB, cómo -funcionan los pubs, para qué sirve cada módulo de Oasis— está en la -[wiki del proyecto oficial](https://wiki.solarnethub.com/socialnet/overview), y no +**¿Es la primera vez que oyes hablar de Oasis?** Empieza por +**[Entender Oasis en diez minutos](Entender)**: la red, los pubs, los saltos y el +registro, explicados con esquemas. Y luego **[Empezar desde cero](Empezar)**. + +El resto de esta wiki cuenta **solo lo que esta rama hace distinto**. Lo demás está en +la [wiki del proyecto oficial](https://wiki.solarnethub.com/socialnet/overview), y no tiene sentido repetirlo peor. --- @@ -42,6 +45,8 @@ tiene sentido repetirlo peor. | Página | Qué cuenta | |---|---| +| **[Entender Oasis](Entender)** | La red, el gossip, los saltos, los pubs y el registro, con esquemas | +| **[Empezar desde cero](Empezar)** | Conseguir invitación, seguir gente, abrir tu blog o tu tienda | | **[Karvan](Karvan)** | Salas efímeras: crear, invitar, cuánto viven, qué protege y qué no | | **[Llamadas](Llamadas)** | Cómo se llama, por qué la APK oficial no puede, y el TURN | | **[La interfaz](Interfaz)** | El panal, los filtros y la barra, botón por botón | diff --git a/Identidades.md b/Identidades.md index 0328901..c41f596 100644 --- a/Identidades.md +++ b/Identidades.md @@ -9,6 +9,8 @@ base de datos— cuelga de ella y vive en su propia carpeta. Esta rama permite tener **varias en el mismo móvil** y elegir con cuál entrar. Está en **Personal → Settings → Identities**. +![Varias identidades](img/esq/15-identidades.png) + --- diff --git a/Interfaz.md b/Interfaz.md index 9276e0b..ed1040b 100644 --- a/Interfaz.md +++ b/Interfaz.md @@ -10,6 +10,8 @@ dos **filtros** arriba y una **barra de accesos rápidos** abajo. Nada de esto usa JavaScript en el cliente: son enlaces, `
` y formularios, igual que el resto de Oasis. +![La interfaz por dentro](img/esq/18-interfaz.png) + --- ## 1. El panal de hexágonos diff --git a/Karvan.md b/Karvan.md index 0260200..b2bd9f0 100644 --- a/Karvan.md +++ b/Karvan.md @@ -6,6 +6,8 @@ Salas de chat que **viven solo en memoria** y se destruyen solas. Nada se escribe en disco ni en el registro de SSB. +![Cómo funciona Karvan](img/esq/11-karvan.png) + --- ## Recorrido completo, paso a paso @@ -153,6 +155,20 @@ pregunta por el módulo antes de responder, igual que las de upstream. --- +## Entre dos dispositivos + +![Una sala entre dos dispositivos](img/esq/19-relay.png) + +Una sala vive en la memoria de **un** nodo. Para que tu portátil entre en una sala que +creaste en el móvil, la invitación viaja como mensaje privado de SSB y el otro nodo la +adopta. + +Ahí está el matiz que conviene tener claro: los mensajes siguen siendo efímeros en los +dos lados, pero **la invitación no**. Queda en tu registro que invitaste a alguien a una +sala, aunque no quede rastro de qué se dijo dentro. + +--- + ## Lo mismo en el ordenador Karvan está también en diff --git a/Llamadas.md b/Llamadas.md index 589f960..eded2d7 100644 --- a/Llamadas.md +++ b/Llamadas.md @@ -7,6 +7,8 @@ Dentro de una sala de [Karvan](Karvan) hay un botón de llamada. El audio y el v van **directamente entre los participantes** por WebRTC, cifrados de extremo a extremo por el propio protocolo. +![Cómo funciona una llamada](img/esq/12-llamadas.png) + ## Cómo se llama, paso a paso ### 1. Pulsar Call diff --git a/_Sidebar.md b/_Sidebar.md index 908c6b6..d72ea9f 100644 --- a/_Sidebar.md +++ b/_Sidebar.md @@ -6,6 +6,12 @@ --- - [Portada](Home) + +**Oasis en general** +- [Entender Oasis](Entender) +- [Empezar desde cero](Empezar) + +**Esta rama** - [La interfaz](Interfaz) - [Karvan · salas efímeras](Karvan) - [Llamadas](Llamadas) diff --git a/img/esq/01-red.png b/img/esq/01-red.png new file mode 100644 index 0000000..ea75ac8 Binary files /dev/null and b/img/esq/01-red.png differ diff --git a/img/esq/02-gossip.png b/img/esq/02-gossip.png new file mode 100644 index 0000000..75496bb Binary files /dev/null and b/img/esq/02-gossip.png differ diff --git a/img/esq/03-hops.png b/img/esq/03-hops.png new file mode 100644 index 0000000..f94a11b Binary files /dev/null and b/img/esq/03-hops.png differ diff --git a/img/esq/04-pub.png b/img/esq/04-pub.png new file mode 100644 index 0000000..30519cd Binary files /dev/null and b/img/esq/04-pub.png differ diff --git a/img/esq/05-empezar.png b/img/esq/05-empezar.png new file mode 100644 index 0000000..8e163b8 Binary files /dev/null and b/img/esq/05-empezar.png differ diff --git a/img/esq/06-spread.png b/img/esq/06-spread.png new file mode 100644 index 0000000..dc54017 Binary files /dev/null and b/img/esq/06-spread.png differ diff --git a/img/esq/07-modulos.png b/img/esq/07-modulos.png new file mode 100644 index 0000000..07b0211 Binary files /dev/null and b/img/esq/07-modulos.png differ diff --git a/img/esq/08-tribus.png b/img/esq/08-tribus.png new file mode 100644 index 0000000..86c047e Binary files /dev/null and b/img/esq/08-tribus.png differ diff --git a/img/esq/09-larp.png b/img/esq/09-larp.png new file mode 100644 index 0000000..a94fc43 Binary files /dev/null and b/img/esq/09-larp.png differ diff --git a/img/esq/10-blog-shop.png b/img/esq/10-blog-shop.png new file mode 100644 index 0000000..ca0b86c Binary files /dev/null and b/img/esq/10-blog-shop.png differ diff --git a/img/esq/11-karvan.png b/img/esq/11-karvan.png new file mode 100644 index 0000000..c7fcbb3 Binary files /dev/null and b/img/esq/11-karvan.png differ diff --git a/img/esq/12-llamadas.png b/img/esq/12-llamadas.png new file mode 100644 index 0000000..6e0aded Binary files /dev/null and b/img/esq/12-llamadas.png differ diff --git a/img/esq/13-chats-karvan.png b/img/esq/13-chats-karvan.png new file mode 100644 index 0000000..6d24fdb Binary files /dev/null and b/img/esq/13-chats-karvan.png differ diff --git a/img/esq/14-registro.png b/img/esq/14-registro.png new file mode 100644 index 0000000..57aa8d9 Binary files /dev/null and b/img/esq/14-registro.png differ diff --git a/img/esq/15-identidades.png b/img/esq/15-identidades.png new file mode 100644 index 0000000..d234f9e Binary files /dev/null and b/img/esq/15-identidades.png differ diff --git a/img/esq/16-arquitectura-movil.png b/img/esq/16-arquitectura-movil.png new file mode 100644 index 0000000..34faa66 Binary files /dev/null and b/img/esq/16-arquitectura-movil.png differ diff --git a/img/esq/18-interfaz.png b/img/esq/18-interfaz.png new file mode 100644 index 0000000..be04a73 Binary files /dev/null and b/img/esq/18-interfaz.png differ diff --git a/img/esq/19-relay.png b/img/esq/19-relay.png new file mode 100644 index 0000000..5df7177 Binary files /dev/null and b/img/esq/19-relay.png differ