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
This commit is contained in:
86
docs/status.md
Normal file
86
docs/status.md
Normal file
@@ -0,0 +1,86 @@
|
||||
# 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 |
|
||||
Reference in New Issue
Block a user