Files
tool.meshservice/docs/status.md
Christian Nennemann c757494cbe feat: initial meshservice implementation
Generic decentralized service layer for mesh networks.
Includes FAPP (psychotherapy) and Housing as reference services.

- ServiceMessage with Ed25519 signatures
- Wire protocol (64-byte header + CBOR)
- ServiceRouter with pluggable handlers
- Verification framework (3 trust levels)
- 32 tests, 3 examples
2026-04-01 08:23:00 +02:00

87 lines
2.3 KiB
Markdown

# MeshService Status
## Overview
Generic decentralized service layer for mesh networks.
**Crate**: `meshservice`
**Version**: 0.1.0
**Status**: ✅ Core complete, ready for integration
## Completed
- [x] Core message types (`ServiceMessage`, `MessageType`)
- [x] Identity management (`ServiceIdentity` with Ed25519)
- [x] Wire protocol (64-byte header + CBOR payload)
- [x] Message store with eviction policies
- [x] Service router with pluggable handlers
- [x] Verification framework (3 levels)
- [x] FAPP service (psychotherapy appointments)
- [x] Housing service (room/apartment sharing)
- [x] 32 passing unit tests
- [x] 3 working examples
## Architecture
```
ServiceMessage → ServiceRouter → ServiceHandler → ServiceStore
TrustedVerifiers
```
## File Structure
```
src/
├── lib.rs # Crate root, service IDs, capabilities
├── identity.rs # Ed25519 key management
├── message.rs # ServiceMessage, MessageType
├── router.rs # ServiceRouter, ServiceHandler trait
├── store.rs # In-memory store with eviction
├── verification.rs # Trust levels, TrustedVerifiers
├── wire.rs # Binary encoding/decoding
├── error.rs # Error types
└── services/
├── mod.rs
├── fapp.rs # FAPP implementation
└── housing.rs # Housing implementation
examples/
├── fapp_service.rs
├── housing_service.rs
└── multi_service.rs
```
## Integration Points
### With quicprochat-p2p
The `MeshService` layer sits above the transport layer. Integration:
1. Receive raw bytes from mesh transport
2. `wire::decode()` to get `ServiceMessage`
3. `router.handle()` returns `ServiceAction`
4. On `StoreAndForward`, re-broadcast via transport
### Custom Services
1. Define payload structs (serde + CBOR)
2. Implement `ServiceHandler` trait
3. Register with router: `router.register(Box::new(MyService))`
## Next Steps
- [ ] Integration with quicprochat-p2p transport
- [ ] Service discovery protocol
- [ ] Encrypted reservation flow (E2E)
- [ ] Persistent storage backend
- [ ] Rate limiting per sender
## Metrics
| Metric | Value |
|--------|-------|
| Lines of Code | ~2000 |
| Tests | 32 |
| Examples | 3 |
| Dependencies | 10 |