wiki: 17 esquemas y dos paginas para entender Oasis desde cero
Mismas dos paginas nuevas que en la de movil —Entender Oasis y Empezar desde cero— con los esquemas de la red, el registro firmado, el gossip, los saltos, los pubs, apoyar contenido, los modulos, las tribus y el LARP. Los propios de esta rama van dentro de sus paginas: Karvan y su ciclo de vida, la sala entre dos equipos, la negociacion de una llamada, chats contra Karvan, las identidades y la arquitectura de escritorio, que es distinta de la de la APK y por eso tiene su propio dibujo. Se enlazan oasis-project.pub y 0asis.net.
2
Chats.md
|
|
@ -48,6 +48,8 @@ intacta sin avisar**. Aquí no depende de nada. Ver [Si algo va mal](Problemas).
|
||||||
|
|
||||||
## 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) |
|
||||||
|
|
|
||||||
80
Empezar.md
Normal file
|
|
@ -0,0 +1,80 @@
|
||||||
|
# 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, con videollamada |
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
Para instalarlo y para tener varias identidades en el mismo equipo, **[Instalar](Instalar)**.
|
||||||
137
Entender.md
Normal file
|
|
@ -0,0 +1,137 @@
|
||||||
|
# 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 |
|
||||||
|
| **[Identidades](Instalar)** | Varias cuentas en el mismo equipo |
|
||||||
|
| **[Respuesta citada](Chats)** | Responder a un mensaje concreto en los chats |
|
||||||
|
|
||||||
|
La interfaz no se toca: es la del Oasis oficial, con sus mismos nombres y sus mismos
|
||||||
|
módulos. Lo que cambia respecto al repositorio de móvil está en
|
||||||
|
**[Diferencias](Diferencias)**.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 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
|
||||||
|
|
@ -9,6 +9,8 @@ código propio se distingue del suyo y no le estorba.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
## La regla
|
## La regla
|
||||||
|
|
||||||
**Upstream no usa ni un solo subdirectorio** en `src/views`, `src/backend`,
|
**Upstream no usa ni un solo subdirectorio** en `src/views`, `src/backend`,
|
||||||
|
|
|
||||||
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— 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.
|
||||||
|
|
||||||
La interfaz es la suya, sin tocar: el menú lateral por grupos, los mismos nombres de
|
La interfaz es la suya, sin tocar: el menú lateral por grupos, los mismos nombres de
|
||||||
|
|
@ -34,6 +37,8 @@ categoría, los mismos módulos.
|
||||||
|
|
||||||
| 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 |
|
||||||
| **[Instalar](Instalar)** | Puesta en marcha, varias identidades y avisos antes de tocar tu `~/.ssb` |
|
| **[Instalar](Instalar)** | Puesta en marcha, varias identidades y avisos antes de tocar tu `~/.ssb` |
|
||||||
| **[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)** | WebRTC sin terceros, la prueba entre dos participantes y el TURN |
|
| **[Llamadas](Llamadas)** | WebRTC sin terceros, la prueba entre dos participantes y el TURN |
|
||||||
|
|
|
||||||
12
Instalar.md
|
|
@ -23,8 +23,20 @@ Jobs y L.A.R.P.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
## Cómo encaja todo
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Oasis levanta un servidor **en tu propia máquina**. El navegador es solo la ventana: las
|
||||||
|
páginas se generan localmente y no pasan por ningún sitio ajeno. Lo único que sale a la
|
||||||
|
red es la replicación, por el puerto 8008.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Varias identidades en el mismo equipo
|
## Varias identidades en el mismo equipo
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
Esta rama admite más de una cuenta. La variable `OASIS_ACCOUNT` decide **dónde vive
|
Esta rama admite más de una cuenta. La variable `OASIS_ACCOUNT` decide **dónde vive
|
||||||
todo**: el `secret`, la base de datos y los blobs.
|
todo**: el `secret`, la base de datos y los blobs.
|
||||||
|
|
||||||
|
|
|
||||||
14
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
|
||||||
|
|
@ -106,6 +108,18 @@ la página se recarga sola cada diez segundos para traer los mensajes nuevos.
|
||||||
Con JavaScript activado se añade un canal directo entre navegadores, y entonces los
|
Con JavaScript activado se añade un canal directo entre navegadores, y entonces los
|
||||||
mensajes llegan al instante sin pasar por el servidor.
|
mensajes llegan al instante sin pasar por el servidor.
|
||||||
|
|
||||||
|
## Entre dos equipos
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Una sala vive en la memoria de **un** nodo. Para que otro equipo entre en ella, la
|
||||||
|
invitación viaja como mensaje privado de SSB y el nodo que la recibe la adopta.
|
||||||
|
|
||||||
|
Los mensajes siguen siendo efímeros en los dos lados, pero **la invitación no**: queda
|
||||||
|
en tu registro que invitaste a alguien, aunque no quede qué se dijo dentro.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Qué protege y qué no
|
## Qué protege y qué no
|
||||||
|
|
||||||
**Protege**: los mensajes no tocan el disco, no entran en tu registro de SSB y
|
**Protege**: los mensajes no tocan el disco, no entran en tu registro de SSB y
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
## Los botones
|
## Los botones
|
||||||
|
|
||||||

|

|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,12 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
- [Portada](Home)
|
- [Portada](Home)
|
||||||
|
|
||||||
|
**Oasis en general**
|
||||||
|
- [Entender Oasis](Entender)
|
||||||
|
- [Empezar desde cero](Empezar)
|
||||||
|
|
||||||
|
**Esta rama**
|
||||||
- [Instalar](Instalar)
|
- [Instalar](Instalar)
|
||||||
- [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/17-arquitectura-escritorio.png
Normal file
|
After Width: | Height: | Size: 137 KiB |
BIN
img/esq/19-relay.png
Normal file
|
After Width: | Height: | Size: 155 KiB |