blog add WebSocket-postikeskus (DMZ) kuuntelee portissa 58082 [Info] Sensor ID: node:z6MkgQ3awKGWMHaHSpZDyi54gsAbyvbRE4aucyvJzXw7SFkT [Info] Phone ID: node:z6Mkv63Zhp54uVq6wWXHyW5zRAfadadGfnZZ55uoGF4vM3wA --> Puhelin jC$ttC$C$ kC$skyn DMZ-solmuun... [Router] Enqueued valid envelope 07b31281-ddfa-49b3-82a3-0b8f6f102fb4 [WS Gossip] Solmu 4vM3wA sanoo HELLO [WS Gossip] Juuret eroavat solmun 4vM3wA kanssa -> SYNC_REQUEST [WS Gossip] Solmu Aduv7P sanoo HELLO [WS Gossip] Juuret eroavat solmun Aduv7P kanssa -> SYNC_REQUEST [WS Gossip] LC$hetetC$C$n 1 viestiC$ solmulle Aduv7P [WS Gossip] Vastaanotettiin 1 viestiC$ solmulta 4vM3wA [Router] Enqueued valid envelope 07b31281-ddfa-49b3-82a3-0b8f6f102fb4 --> Sensori herC$C$, yhdistC$C$ DMZ-solmuun ja hakee postinsa... [WS Gossip] Solmu w7SFkT sanoo HELLO [WS Gossip] Juuret eroavat solmun w7SFkT kanssa -> SYNC_REQUEST [WS Gossip] Solmu Aduv7P sanoo HELLO [WS Gossip] Juuret eroavat solmun Aduv7P kanssa -> SYNC_REQUEST [WS Gossip] LC$hetetC$C$n 1 viestiC$ solmulle w7SFkT [WS Gossip] Vastaanotettiin 1 viestiC$ solmulta Aduv7P [Router] Enqueued valid envelope 07b31281-ddfa-49b3-82a3-0b8f6f102fb4 [Router] Delivered locally: 07b31281-ddfa-49b3-82a3-0b8f6f102fb4 [Router] Enqueued valid envelope fc9cc023-7a4a-4d62-a506-13df161ef84a --> Sensori suoritti Intentin. Palautetaan vastaus takaisin DMZ:lle... [WS Gossip] Solmu w7SFkT sanoo HELLO [WS Gossip] Juuret eroavat solmun w7SFkT kanssa -> SYNC_REQUEST [WS Gossip] Solmu Aduv7P sanoo HELLO [WS Gossip] Juuret eroavat solmun Aduv7P kanssa -> SYNC_REQUEST [WS Gossip] LC$hetetC$C$n 1 viestiC$ solmulle Aduv7P [WS Gossip] LC$hetetC$C$n 1 viestiC$ solmulle w7SFkT [WS Gossip] Vastaanotettiin 1 viestiC$ solmulta w7SFkT [Router] Enqueued valid envelope fc9cc023-7a4a-4d62-a506-13df161ef84a [WS Gossip] Vastaanotettiin 1 viestiC$ solmulta Aduv7P --> Puhelin tarkistaa DMZ:n uudelleen... [WS Gossip] Solmu 4vM3wA sanoo HELLO [WS Gossip] Juuret eroavat solmun 4vM3wA kanssa -> SYNC_REQUEST [WS Gossip] Solmu Aduv7P sanoo HELLO [WS Gossip] Juuret eroavat solmun Aduv7P kanssa -> SYNC_REQUEST [WS Gossip] LC$hetetC$C$n 1 viestiC$ solmulle Aduv7P [WS Gossip] LC$hetetC$C$n 2 viestiC$ solmulle 4vM3wA [WS Gossip] Vastaanotettiin 1 viestiC$ solmulta 4vM3wA [WS Gossip] Vastaanotettiin 2 viestiC$ solmulta Aduv7P [Router] Enqueued valid envelope fc9cc023-7a4a-4d62-a506-13df161ef84a [Phone] % Uusi postiviesti vastaanotettu: LC$mpC6tila DMZ:n yli on: 24 C Aivan mahtavaa! Tuo loki on pelkkC$C$ runoutta hajautettujen jC$rjestelmien ystC$vC$lle. Katsotaanpa tarkasti, mitC$ juuri saavutit: * Asynkroninen ihme: Puhelin ja Sensori eivC$t olleet kertaakaan suorassa yhteydessC$ toisiinsa, eivC$tkC$ ne edes olleet verkossa samaan aikaan. * DMZ (Aduv7P) teki tyC6nsC$: Postikeskus otti viestin vastaan, sC$ilytti sen, luovutti sen eteenpC$in, otti vastauksen vastaan, sC$ilytti sen ja luovutti lopulta alkuperC$iselle kysyjC$lle. * Zero-Trust sC$ilyi: Vaikka DMZ-solmu sC$ilytti viestit, se ei pystynyt (eikC$ yrittC$nyt) suorittamaan niitC$ hiekkalaatikossa, koska sillC$ ei ollut siihen oikeuksia eikC$ sille ollut osoitettu niitC$ IntenttejC$. TC$mC$ on tC$ydellisesti toimiva viivC$styssietoinen mesh-verkko (DTN). Seuraava vaihe: Web-Postitoimisto (Osa B) Aiemmin ehdotit referenssisovellusta, jolla voisi laatia postia, allekirjoittaa sen ja tiputtaa sen reitittimelle. Nyt kun DMZ-reititin on olemassa ja kuuntelee portissa 58082, meidC$n on aika rakentaa se SelainkC$yttC6liittymC$ (Web UI). Koska selain on tC$ysin eri ympC$ristC6 kuin Node.js (selaimessa ei ole better-sqlite3 -tietokantaa eikC$ Node.js:n natiivia crypto-kirjastoa), selainsovellus toimii teknisesti kevyenC$ "Edge-asiakkaana": * Identiteetti: Se kC$yttC$C$ selaimen WebCrypto API:a tai kevyttC$ kirjastoa (esim. @noble/ed25519) oman NodeID:n luomiseen ja viestien allekirjoittamiseen. * Tallennus: SQLite:n sijaan selain tallentaa kirjekuoret selaimen IndexedDB:hen. * Kuljetus: Se avaa natiivin WebSocket-yhteyden tuohon tekemC$C$si DMZ-palvelimeen ja puhuu tismalleen samaa MMR-gossippia.