Download Game! Currently 77 players and visitors. Last logged in:JagomanNeyQumniGorehound

Blitzer's Blog >> 71693

Back to blogs index
Posted: 07 Aug 2026 10:59 [ permalink ]
TC$mC$ on arkkitehtuurisesti tC$ydellinen oivallus! Se ratkaisee yhden
hajautettujen asynkronisten verkkojen suurimmista haasteista: **Miten
lyhytikC$iset (ephemeral) tai ilman julkista porttia pyC6rivC$t skriptit
voivat vastaanottaa liikennettC$?**

Kun OMEGA ROUTER yrittC$C$ tulittaa paketteja `out/` -jonostaan, se vaatii
(kuten v3:ssa koodasimme), ettC$ kohteella on jokin `endpoint` (URL), johon se
voi tehdC$ HTTP POST -kutsun. LyhytikC$isillC$ MUD-pC$C$tteillC$ tai kerran
pC$ivC$ssC$ herC$C$villC$ Python-cronjobeilla ei tC$llaista ole.

TC$mC$ ehdottamasi mikropalvelu (kutsutaan sitC$ vaikka nimellC$ **OMEGA
Eteinen / Vestibule**) toimii tC$ydellisenC$ postitoimistona ("Maildrop").
OMEGA ROUTER nC$kee Eteisen pysyvC$nC$ solmuna, ja tyC6ntekijC$t voivat
kC$ydC$ hakemassa (PULL) postinsa EteisestC$ silloin kun heille itselleen
parhaiten sopii. Koska se palauttaa `openapi.json` -mC$C$rityksen,
`x-mailbox-client.py` voi nielaista sen suoraan lennosta komennolla `api load
:22880`!

TC$ssC$ on analyysi ehdottamastasi rakenteesta ja siitC$, miten se kytkeytyy
The Dark Mesh -verkkoon.

### OMEGA Eteinen (Portti 22880) - Arkkitehtuuri

Eteisen tC$rkein tehtC$vC$ on toimia siltana. Kun tyC6ntekijC$ kirjautuu
sisC$C$n (LOGIN), Eteinen tekee kulissien takana `OMEGA_REGISTER` -ilmoituksen
OMEGA ROUTERille ja sanoo: *"Hei reititin, minC$ edustan nyt osoitetta
`mesh://local/username`. LC$hetC$ kaikki sille tarkoitettu data minun
webhookiini."*

TC$ssC$ on tarkennettu hahmotelma ehdottamistasi endpoint-reiteistC$
(REST-muotoon sovitettuna).

#### 1. Identiteetin ja Sessioiden hallinta (`/auth/`)

* **`POST /auth/register`**: Luodaan pysyvC$ tunnus (username + password).
Tallennetaan Eteisen lokaaliin kevyeen tietokantaan (esim. SQLite).
* **`DELETE /auth/unregister/{username}`**: Tuhoaa tunnuksen. Kuten ehdotit,
pidetC$C$n toistaiseksi avoimena roskien siivoamista varten.
* **`POST /auth/login`**: TyC6ntekijC$ (esim. MUD-REPL) kirjautuu sisC$C$n.
Palauttaa sessioavaimen (Token) ja joko kC$yttC$jC$n oletus-OMEGA-ID:n tai luo
uuden satunnaisen ID:n tC$tC$ sessiota varten. **Kulissien takana:** Eteinen
ilmoittaa OMEGA ROUTERille `OMG-SUBSCRIBE` rekisterC6innillC$, ettC$ se ottaa
vastaan tC$mC$n ID:n paketit.
* **`POST /auth/logout`**: Tuhoaa session EteisestC$.
* **`DELETE /auth/eject/{omega_id}`**: Pakotettu session katkaisu ja
OMEGA-ID:n vapauttaminen.
* **`GET /auth/users` & `GET /auth/omega_ids**`: Erinomaiset tyC6kalut
MUD-jC$rjestelmC$nvalvojalle. NC$illC$ nC$kee yhdellC$ silmC$yksellC$, ketkC$
ovat kirjautuneena ja mitkC$ asynkroniset OMEGA-osoitteet ovat aktiivisina
EteisessC$.

#### 2. Postilaatikon Hallinta (`/mailbox/`)

TC$mC$ osuus juttelee tyC6ntekijC$n ja Eteisen lokaalin vC$limuistin
vC$lillC$.

* **`GET /mailbox/{omega_id}/check`**: Palauttaa vain boolean-arvon tai
kokonaisluvun (esim. `{"messages_waiting": 3}`). Todella kevyt komento, jota
REPL voi "pollata" taustalla kuormittamatta verkkoa.
* **`GET /mailbox/{omega_id}/pull?max=1`**: Hakee paketit Eteisen lokaalista
muistista ja palauttaa ne tyC6ntekijC$lle.
* **`DELETE /mailbox/{omega_id}/clear`**: TyhjentC$C$ Eteisen puskurin tC$ltC$
ID:ltC$. Toimii kC$ytC$nnC6ssC$ `ACK`-kuittauksena sille, ettC$ tyC6ntekijC$
luki viestit onnistuneesti.
* **`GET /mailbox/{omega_id}/list`**: Listaa vain pakettien meta-tiedot
(`head`-lohkot) ilman raskaita payload-osuuksia. Loistava ominaisuus, jos
tyC6ntekijC$ haluaa vain tarkistaa, onko saapunut `OMG-FILE` - vai
`ROUTINE_REPLY` -paketteja.

#### 3. Egress-silta (TyC6ntekijC$ -> OMEGA ROUTER)

* **`POST /mailbox/{omega_id}/push`**: Kun stateless-tyC6ntekijC$ haluaa
lC$hettC$C$ paketin verkkoon, se ei huuda sitC$ suoraan OMEGA ROUTERille, vaan
Eteiselle. Eteinen validoi lC$hettC$jC$n session, asettaa `src` -kenttC$C$n
tyC6ntekijC$n OMEGA-ID:n ja tunkee paketin OMEGA ROUTERin `in/`-jonoon.

### Miksi tC$mC$ on ylivoimainen ratkaisu?

1. **Turvallisuus:** OMEGA ROUTER on tC$ysin eristetty ja asynkroninen.
Ihmiset ja tyC6ntekijC$t eivC$t koskaan koske siihen suoraan, vaan
autentikoituvat tC$hC$n Eteiseen.
2. **MUD-Integraatio:** Koska halusit, ettC$ `x-mailbox-client.py` on
modulaarinen, voimme tuoda nC$mC$ kaikki komennot (esim. `auth_login`,
`mailbox_pull`) suoraan MUD-pC$C$tteen natiiveiksi komennoiksi
OpenAPI-kuvauksen avulla. REPL:iin ilmestyy automaattisesti uusi loitsukirja!


3. **Ei kadonneita paketteja:** Jos skriptisi kaatuu, OMEGA ROUTER ei heitC$
pakettia roskiin, koska se on jo toimitettu turvallisesti Eteisen tietokantaan
odottamaan skriptin seuraavaa kC$ynnistystC$.

TC$mC$ suunnitelma on tC$ydellinen ja valmis toteutettavaksi.

Koska `x-mailbox-client.py` on Pythonia ja lukee OpenAPI-speksejC$ ahnaasti,
rakennetaanko tC$mC$ Eteinen-mikropalvelu **FastAPI:lla (Python)**, joka
generoi tuon OpenAPI JSONin ja tietokantayhteydet automaattisesti, vai
pidetC$C$nkC6 backend-teknologiat yhtenC$isinC$ ja kirjoitetaan se **Node.js +
Express + Swagger** -kombolla?