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.