Ontwikkelaarsoverzicht
Aan de slag
Als je gewoon wilt weten hoe je programmatisch op Hashiverse kunt posten — via een knop, Python of de opdrachtregel — begin hier. Als je in plaats daarvan wilt weten hoe Hashiverse is gebouwd, lees dan verder.
Hashiverse is een gedecentraliseerd, post-quantum-bestendig P2P sociaal netwerk. De ambities beschreven in de Visie-sectie vertalen zich rechtstreeks naar technische beslissingen die het waard zijn te begrijpen voordat je in de code duikt. Deze sectie behandelt die beslissingen: waarom ze zijn genomen, wat ze kosten en waar ze in de broncode wonen.
Repository-indeling
hashiverse/
├── hashiverse-rust/ Rust workspace (nightly)
│ ├── hashiverse-lib/ Core protocol — native + WASM
│ ├── hashiverse-server-lib/ Server library (reusable infra)
│ ├── hashiverse-server/ Server binary (thin wrapper)
│ ├── hashiverse-client-wasm/ Browser WASM wrapper
│ └── hashiverse-integration-tests/ End-to-end tests
├── hashiverse-client-web/ TypeScript / React 19 SPA
└── www/ Deze site (Astro) Het tweelaagsontwerp
hashiverse-lib is het protocol. Het compileert naar native code (voor de server) en naar WebAssembly (voor de browserclient). Alle cryptografie, DHT-logica, bericht-encodering en client-API leven hier. Elk platform dat WASM of native Rust kan draaien kan een volwaardige deelnemer in het netwerk zijn.
hashiverse-client-web is de referentie-browserclient — een React 19 SPA die de WASM-client in een Web Worker laadt en de hoofdthread vrijhoudt. Hij praat via een interface op basis van berichtuitwisseling met de WASM-module; de protocol-logica die hij aanroept is identiek aan wat native op de server draait.
Vier modules in hashiverse-lib
- transport/ — Abstracte traits (
TransportFactory,TransportServer,TransportServerHandler) met twee implementaties: in-memory (voor tests) en HTTP/TCP (voor productie). Wissel transports uit zonder de protocol-logica te raken. - protocol/ — RPC-pakketcodering/-decodering met PoW en compressie, peer-structs, request/response-types, post- en bundle-datastructuren.
- client/ —
HashiverseClient-API, peer-tracker, post-bundlebeheer, tijdlijn met recursieve bucket-traversal, en pluggableClientStorage/KeyLockerManagertraits. - tools/ — Kerntypes (
Hash,Id,Signature), cryptografische primitieven, PoW,TimeProvider-abstractie en protocolconfiguratie.
Waar te beginnen
Als je nieuw bent in de codebase zijn de beste instappunten:
-
hashiverse-lib/src/lib.rs— de modulekaart. Vier topmodules, elk duidelijk afgebakend. -
hashiverse-lib/src/client/mod.rs— de publieke client-API. Het contactvlak waar een ontwikkelaar die op het protocol bouwt mee te maken heeft. -
hashiverse-integration-tests/tests/— end-to-end-tests die echte server-topologieën in het geheugen opstarten en de volledige protocolstack uitoefenen. Deze lezen is de snelste manier om te begrijpen hoe de stukken in elkaar passen.
De secties in deze ontwikkelaarsgids behandelen elk een specifiek ontwerpgebied. Elke sectie verwijst naar de relevante bronbestanden zodat je de ideeën rechtstreeks de code in kunt volgen.