Download Game! Currently 71 players. Last logged in:UglinessAnksLotheacMalcom

Blitzer's Blog >> 73010

Back to blogs index
Posted: 11 Oct 2026 13:40 [ permalink ]
KC$ytC$nnC6n testausympC$ristC6n pystyttC$minen on suoraviivaista, sillC$
valitsimme riippuvuuksiksi vain vakiintuneita ja itsenC$isiC$
Node.js-kirjastoja. Suosittelen kC$yttC$mC$C$n vC$hintC$C$n Node.js v20
-versiota, jotta saamme natiivin node:test -moduulin ja uusimmat node:crypto
-ominaisuudet kC$yttC6C6n ilman polyfillejC$.
NC$in muutat edellisten viestien koodit ajettavaksi testiprojektiksi.
 1. Alusta projekti ja asenna riippuvuudet
   Pakettien asennus ja TypeScript-konfiguraatio
   Luo uusi kansio ja asenna ytimen vaatimat kirjastot sekC$ TypeScript-ajoympC
$ristC6 (tsx on erinomainen moderni tyC6kalu TS-tiedostojen suoraan
ajamiseen).
   mkdir universe-os-mvp && cd universe-os-mvp
npm init -y

# Tuotantoriippuvuudet
npm install zod cbor-x better-sqlite3 quickjs-emscripten

# Kehitysriippuvuudet (TypeScript ja tyypit)
npm install -D typescript tsx @types/node @types/better-sqlite3

# Luo perus tsconfig.json
npx tsc --init --target ES2022 --module NodeNext --moduleResolution NodeNext

 2. Luo kansiorakenne ja tallenna tiedostot
   Kopioi aiemmat koodilohkot paikoilleen
   Luo seuraava hakemistorakenne ja liitC$ aiemmin kirjoittamamme koodit
niitC$ vastaaviin tiedostoihin:
   universe-os-mvp/
 src/
    envelope/
       schema.ts      # (Zod-skeemat ja vakiot)
       canonical.ts   # (RFC 8949 bytewise -lajittelu ja cbor-x)
       verify.ts      # (Kryptografinen validaattori)
    router/
       store.ts       # (SQLite DTN-jono ja Replay-vC$limuisti)
       core.ts        # (UniversalRouter-luokka)
    sandbox/
       runtime.ts     # (QuickJS-hiekkalaatikko)
    transport/
       airgap.ts      # (AirgapCourier-luokka)
    index.ts           # (PC$C$simulaatio)
 test/
     canonical.test.ts  # (CBOR-testivektorit ja Golden Hash)
     verify.test.ts     # (Negatiivinen tietoturvatestipatteristo)

 3. Aja negatiivinen testipatteristo
   Varmista kryptografian ja kanonisoinnin tiiviys
   Ennen kuin simuloit koko verkkoa, aja yksikkC6testit. NC$mC$ varmistavat,
ettC$ Zod-skeemat hylkC$C$vC$t viallisen datan, CBOR-lajittelu toimii
tavutasolla (bytewise) ja verify.ts torjuu hyC6kkC$ykset.
   npx tsx --test test/canonical.test.ts
npx tsx --test test/verify.test.ts

   Huom: Golden Hash -testin PLACEHOLDER saattaa kaatua, kunnes vaihdat
tilalle konsoliin tulostuvan oikean SHA-256 -tiivisteen, kuten aiemmin
sovimme.
 4. Aja E2E-simulaatio
   KC$ynnistC$ koko verkon elinkaari
   Aja lopuksi index.ts, joka pystyttC$C$ kolme virtuaalista solmua (Guardian,
Node A, Node B) ja yhden fyysisen kuriirin.
   npx tsx src/index.ts

   MitC$ sinun pitC$isi nC$hdC$:
   * Konsoliin tulostuu solmujen generoituja Ed25519-avaimia (Base58).
   * Ilmoitus .universe -tiedoston luomisesta /tmp/universe-sim-... -kansioon
(TC$mC$ simuloi USB-tikulle kirjoittamista).
   * Node B lukee tuon saman tiedoston ja ilmoittaa tuoneensa envelopen.
   * QuickJS kC$ynnistyy ja tulostaa [Sandbox] Intent generated response for
node:zAdmin sekC$ raportoi onnistuneen suorituksen.
Kun saat tC$mC$n ajettua lokaalisti, sinulla on toimiva, matemaattisesti
varmistettu pohja. Kaikki jatkokehitys (esim. TCP-verkkokerroksen tai
Bluetooth-siirron rakentaminen) on vain uusien "Transport"-luokkien
kirjoittamista  jC$rjestelmC$n kryptografiseen ytimeen ei tarvitse enC$C$
koskea.