Download Game! Currently 85 players and visitors. Last logged in:RothanValkristBrurinCordoba

Blitzer's Blog >> 72332

Back to blogs index
Posted: 14 Sep 2026 05:59 [ permalink ]
TC$mC$ on poikkeuksellisen vahva ja hyvin jC$sennelty RFC-luonnos. Se
tunnistaa oikein useita hajautettujen jC$rjestelmien sudenkuoppia, erityisesti
sen, ettC$ identiteetti ja valtuudet (authority) ovat kaksi eri asiaa, ja
ettC$ V8:n peruskontekstieristys (esim. Node.js vm-moduuli) ei riitC$
tietoturvalliseksi hiekkalaatikoksi.
Node.js on erinomainen tyC6kalu tC$mC$n MVP:n (Minimum Viable Product) nopeaan
iterointiin, koska se tukee asynkronista I/O:ta, kryptografiaa ja joustavaa
datan kC$sittelyC$ suoraan ytimessC$C$n.
TC$ssC$ on konseptisuunnitelma ja tiekartta, jolla tC$mC$ RFC kC$C$nnetC$C$n
kC$ytC$nnC6n Node.js-toteutukseksi.
NodeJS MVP Konseptisuunnitelma
Koska kyseessC$ on MVP, meidC$n on rajattava monimutkaisuus vain niihin
ominaisuuksiin, jotka todistavat UNIVERSE-arkkitehtuurin ydinteesin:
Identiteetti 
eq Valtuus 
eq Topologia.
1. Teknologiavalinnat (Node.js Ekosysteemi)
MVP-vaiheessa kannattaa vC$lttC$C$ omien protokollien kirjoittamista alusta
alkaen ja hyC6dyntC$C$ olemassa olevia, testattuja kirjastoja:
 * Identiteetti & Kryptografia: Node.js sisC$C$nrakennettu crypto-moduuli. Se
tukee suoraan Ed25519-avaimia (crypto.generateKeyPairSync('ed25519')).
 * Envelopen serialisointi: cbor-x (erittC$in nopea ja tukee kanonista
CBOR-muotoa, joka on kriittinen allekirjoitusten validoinnissa).
 * Reititys & Viiveensieto (DTN-jono): Paikallinen persistenssi SQLite:lla
(better-sqlite3). Se on nopea, lokaali ja turvallinen kaatumisille
(crash-safe), mikC$ tC$yttC$C$ RFC:n vaatimuksen kirjekuorien (envelopes)
sC$ilyttC$misestC$.
 * State Registry (CRDT): yjs tai @automerge/automerge. NC$mC$ ovat valmiita,
verkkoagnostisia CRDT-toteutuksia, jotka ratkaisevat konfliktit
automaattisesti.
 * Secure Sandbox: isolated-vm (tarjoaa oikean V8 Isolate -eristyksen,
muistirajat ja CPU-rajat) TAI puhdas WebAssembly-ajonaikainen ympC$ristC6
(node:wasi), jotta ulospC$C$sy kC$yttC6jC$rjestelmC$C$n on estetty.
2. MVP:n Arkkitehtuurin Rajaus
MVP:ssC$ rakennamme kolmen solmun verkon (Node A, Node B, Guardian C) ja yhden
"Airgap"-kuriirin (simuloidaan USB-tikulla tai paikallisella kansiolla).
 * Node A (LC$hettC$jC$): Luo Intentin (esim. "report_uptime") ja paketoi sen
Envelopeen.
 * Airgap-kuriiri: Node.js-skripti, joka lukee Envelopen Node A:n
tietokannasta tiedostoon, ja siirtC$C$ sen fyysisesti/loogisesti Node B:lle.
 * Node B (Vastaanottaja): Vastaanottaa tiedoston, validoi Ed25519-allekirjoitu
ksen, tarkistaa Capability-tokenin (saatu Guardian C:ltC$) ja suorittaa
JIT-moduulin hiekkalaatikossa.
Kehityksen Tiekartta (Roadmap)
Seuraava tiekartta seuraa RFC:n virstanpylvC$itC$, mutta soveltaa ne suoraan
Node.js-ohjelmistokehityksen vaiheiksi.
 * Vaihe 1: Identiteetti ja kirjekuori (RFC M1)
   Viikot 1-2
   Tavoite: Luodaan perusrakenteet kryptografialle ja viestien validoinnille.
   * Toteutetaan Node.js-moduuli avainten generointiin ja hallintaan
(Ed25519).
   * Luodaan Envelope-skeeman TypeScript-mC$C$rittelyt.
   * Toteutetaan funktiot Envelopen kanonisoimiseen, CBOR-koodaukseen ja
allekirjoittamiseen.
   * Testi: Solmu pystyy luomaan Envelopen, joka hylC$tC$C$n automaattisesti,
jos sen ttl on vanhentunut tai allekirjoitus ei tC$smC$C$ dataan.
 * Vaihe 2: DTN-Reititin ja Jono (RFC M1-M2)
   Viikot 3-4
   Tavoite: Rakennettaan viiveensietoinen (Delay-Tolerant) lokaali jono.
   * Otetaan kC$yttC6C6n better-sqlite3 Envelopien tallennukseen (tilat:
QUEUED, FORWARDING, EXPIRED).
   * Toteutetaan yksinkertainen "Airgap"-transport: reititin vie jonossa
olevat viestit .universe-pC$C$tteiseksi binC$C$ritiedostoksi levylle.
   * Toteutetaan funktio, joka lukee kansion sisC$llC6n, parsii tiedostot
Envelopeiksi ja validoi ne.
 * Vaihe 3: Turvallinen Hiekkalaatikko (RFC M3)
   Viikot 5-6
   Tavoite: Intentien suorittaminen turvallisesti eristetyssC$
ympC$ristC6ssC$.
   * Konfiguroidaan isolated-vm luomaan puhdas JavaScript-konteksti ilman
require, fs tai net -pC$C$syjC$.
   * Rakennetaan "brokered syscalls": hiekkalaatikosta voi kutsua vain ennalta
mC$C$riteltyjC$ asioita (esim. router.send() tai state.readUptime()).
   * MC$C$ritellC$C$n JIT-moduulin manifesti JSON-muodossa.
 * Vaihe 4: Capability Tokenit ja Guardian (RFC M5 & M7)
   Viikot 7-8
   Tavoite: LisC$tC$C$n Zero-Trust -valtuutusmalli.
   * Luodaan kolmas solmu (Guardian), joka generoi allekirjoitettuja
Capability-tokeneita (esim. oikeus reitittC$C$ tiettyyn Dark Mesh -solmuun).
   * Muutetaan Reitittimen logiikkaa: se kieltC$ytyy hyvC$ksymC$stC$
"Airgap"-tiedostoa, jos lC$hettC$jC$llC$ ei ole pC$tevC$C$ Capability-proofia
sisC$llytettynC$ Envelopeen.
Suositukset ensimmC$isiin koodiriveihin
Kun aloitat toteutuksen, suosittelen vahvasti TypeScriptin kC$yttC6C$.
RFC:ssC$ esitellyt skeemat (Envelope, Token, Manifest) hyC6tyvC$t
merkittC$vC$sti staattisesta tyypityksestC$, ja se estC$C$ monia
serialisointivirheitC$ CBOR/JSON-rajapinnoissa.
KC$ytC$ rakenteena puhdasta modulaarista arkkitehtuuria, joka heijastaa RFC:n
lukua 6:
src/
 identity/       # Avaimet, allekirjoitukset, H(pubkey) derivointi
 envelope/       # CBOR pakkaus, kanonisointi, skeemat (Zod/TypeBox)
 router/         # SQLite DTN-jonot, airgap-lukija/kirjoittaja
 sandbox/        # isolated-vm instanssit ja syscall-vC$littC$jC$t
 state/          # Yjs CRDT -instanssit