wiki: 18 esquemas y dos paginas para entender Oasis desde cero
Faltaba la parte de arriba: alguien que llega sin saber que es SSB no tenia por
donde empezar. Ahora hay dos paginas antes de la rama:
Entender Oasis la red sin servidor, el registro firmado, el gossip, los
saltos, los pubs, apoyar contenido, los modulos, las tribus
y las nueve casas del LARP
Empezar de cero conseguir invitacion, seguir gente, abrir blog o tienda
Los esquemas son dibujos propios en negro, amarillo y naranja, generados con
un script para poder rehacerlos cuando cambie algo. Los datos salen del codigo
de upstream, no de memoria: las nueve casas del LARP con sus nombres reales,
las 625 rutas de backend.js, el valor 2 de hops por defecto.
Los especificos de la rama van dentro de sus paginas: el ciclo de vida de una
sala de Karvan, la sala entre dos dispositivos, como se negocia una llamada,
chats contra Karvan, varias identidades, la interfaz de movil por dentro y que
hay dentro de la APK.
Y se enlazan oasis-project.pub para buscar pub con invitacion y 0asis.net para
empezar desde cero, que es lo que preguntaria cualquiera al llegar.
2
Chats.md
|
|
@ -59,6 +59,8 @@ de serie se quitan antes de guardarlas.
|
||||||
|
|
||||||
## Chats o Karvan
|
## Chats o Karvan
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
Son dos cosas distintas y conviene no confundirlas:
|
Son dos cosas distintas y conviene no confundirlas:
|
||||||
|
|
||||||
| | Chats | [Karvan](Karvan) |
|
| | Chats | [Karvan](Karvan) |
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,8 @@
|
||||||
La APK se construye con un **proyecto Gradle propio**, en `android/`. Ya no se parte
|
La APK se construye con un **proyecto Gradle propio**, en `android/`. Ya no se parte
|
||||||
del APK oficial como molde.
|
del APK oficial como molde.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
## Qué se reutiliza y qué es nuevo
|
## Qué se reutiliza y qué es nuevo
|
||||||
|
|
||||||
Tres bibliotecas nativas se toman tal cual del APK existente:
|
Tres bibliotecas nativas se toman tal cual del APK existente:
|
||||||
|
|
|
||||||
78
Empezar.md
Normal file
|
|
@ -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
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### 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é?
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
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.
|
||||||
133
Entender.md
Normal file
|
|
@ -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
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
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
|
||||||
11
Home.md
|
|
@ -7,9 +7,12 @@
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
**Esta wiki solo cuenta lo que esta rama hace distinto.** Lo demás —qué es SSB, cómo
|
**¿Es la primera vez que oyes hablar de Oasis?** Empieza por
|
||||||
funcionan los pubs, para qué sirve cada módulo de Oasis— está en la
|
**[Entender Oasis en diez minutos](Entender)**: la red, los pubs, los saltos y el
|
||||||
[wiki del proyecto oficial](https://wiki.solarnethub.com/socialnet/overview), y no
|
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.
|
tiene sentido repetirlo peor.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
@ -42,6 +45,8 @@ tiene sentido repetirlo peor.
|
||||||
|
|
||||||
| Página | Qué cuenta |
|
| 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 |
|
| **[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 |
|
| **[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 |
|
| **[La interfaz](Interfaz)** | El panal, los filtros y la barra, botón por botón |
|
||||||
|
|
|
||||||
|
|
@ -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
|
Esta rama permite tener **varias en el mismo móvil** y elegir con cuál entrar. Está en
|
||||||
**Personal → Settings → Identities**.
|
**Personal → Settings → Identities**.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<img src="img/24-identidades.png" width="300" align="right">
|
<img src="img/24-identidades.png" width="300" align="right">
|
||||||
|
|
|
||||||
|
|
@ -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, `<details>` y formularios,
|
Nada de esto usa JavaScript en el cliente: son enlaces, `<details>` y formularios,
|
||||||
igual que el resto de Oasis.
|
igual que el resto de Oasis.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 1. El panal de hexágonos
|
## 1. El panal de hexágonos
|
||||||
|
|
|
||||||
16
Karvan.md
|
|
@ -6,6 +6,8 @@
|
||||||
Salas de chat que **viven solo en memoria** y se destruyen solas. Nada se escribe en
|
Salas de chat que **viven solo en memoria** y se destruyen solas. Nada se escribe en
|
||||||
disco ni en el registro de SSB.
|
disco ni en el registro de SSB.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Recorrido completo, paso a paso
|
## 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 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
|
## Lo mismo en el ordenador
|
||||||
|
|
||||||
Karvan está también en
|
Karvan está también en
|
||||||
|
|
|
||||||
|
|
@ -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
|
van **directamente entre los participantes** por WebRTC, cifrados de extremo a extremo
|
||||||
por el propio protocolo.
|
por el propio protocolo.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
## Cómo se llama, paso a paso
|
## Cómo se llama, paso a paso
|
||||||
|
|
||||||
### 1. Pulsar Call
|
### 1. Pulsar Call
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,12 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- [Portada](Home)
|
- [Portada](Home)
|
||||||
|
|
||||||
|
**Oasis en general**
|
||||||
|
- [Entender Oasis](Entender)
|
||||||
|
- [Empezar desde cero](Empezar)
|
||||||
|
|
||||||
|
**Esta rama**
|
||||||
- [La interfaz](Interfaz)
|
- [La interfaz](Interfaz)
|
||||||
- [Karvan · salas efímeras](Karvan)
|
- [Karvan · salas efímeras](Karvan)
|
||||||
- [Llamadas](Llamadas)
|
- [Llamadas](Llamadas)
|
||||||
|
|
|
||||||
BIN
img/esq/01-red.png
Normal file
|
After Width: | Height: | Size: 132 KiB |
BIN
img/esq/02-gossip.png
Normal file
|
After Width: | Height: | Size: 137 KiB |
BIN
img/esq/03-hops.png
Normal file
|
After Width: | Height: | Size: 165 KiB |
BIN
img/esq/04-pub.png
Normal file
|
After Width: | Height: | Size: 129 KiB |
BIN
img/esq/05-empezar.png
Normal file
|
After Width: | Height: | Size: 140 KiB |
BIN
img/esq/06-spread.png
Normal file
|
After Width: | Height: | Size: 154 KiB |
BIN
img/esq/07-modulos.png
Normal file
|
After Width: | Height: | Size: 163 KiB |
BIN
img/esq/08-tribus.png
Normal file
|
After Width: | Height: | Size: 139 KiB |
BIN
img/esq/09-larp.png
Normal file
|
After Width: | Height: | Size: 164 KiB |
BIN
img/esq/10-blog-shop.png
Normal file
|
After Width: | Height: | Size: 157 KiB |
BIN
img/esq/11-karvan.png
Normal file
|
After Width: | Height: | Size: 148 KiB |
BIN
img/esq/12-llamadas.png
Normal file
|
After Width: | Height: | Size: 168 KiB |
BIN
img/esq/13-chats-karvan.png
Normal file
|
After Width: | Height: | Size: 96 KiB |
BIN
img/esq/14-registro.png
Normal file
|
After Width: | Height: | Size: 138 KiB |
BIN
img/esq/15-identidades.png
Normal file
|
After Width: | Height: | Size: 113 KiB |
BIN
img/esq/16-arquitectura-movil.png
Normal file
|
After Width: | Height: | Size: 151 KiB |
BIN
img/esq/18-interfaz.png
Normal file
|
After Width: | Height: | Size: 148 KiB |
BIN
img/esq/19-relay.png
Normal file
|
After Width: | Height: | Size: 155 KiB |