0xMiden / 0xMiden/note-transport-service

Unbounded storage growth — no quotas or disk-full handling

Ouverte
#118 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
enhancement production-readiness
Langage dominant
Rust
Étoiles
3
Forks
10
Merge moyen
2 h 23 min
PR mergées (30 j)
4

Description

Severity: critical.

### Summary

There is no per-sender, per-tag, or global cap on stored data. The only reclamation is the 30-day retention sweep (`crates/node/src/database/maintenance.rs`). The only per-write bound is `max_note_size` (512 KB, `bin/node/src/main.rs`).

### Impact

At 512 KB/note, an unauthenticated writer fills the disk well within the 30-day window. SQLite disk-full then surfaces as generic `QueryExecution` errors to all clients and takes the whole service down. After retention deletes, freelist pages are never returned to the OS (no `auto_vacuum`/`VACUUM`), so the file stays at high-water size.

### Recommendation

- Add a global note-count / byte watermark checked in the maintenance loop (metric + alert; optionally refuse writes above a hard cap with `RESOURCE_EXHAUSTED`).
- Consider `PRAGMA auto_vacuum=INCREMENTAL` + periodic `incremental_vacuum` in maintenance.
- The real growth control is rate limiting + auth (linked issues); this issue is the storage-side backstop.

Related: #44, #111 (Postgres inherits mature quota/monitoring tooling).

---
Part of #114.

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.