diff options
| author | DanConwayDev <DanConwayDev@protonmail.com> | 2026-02-25 15:07:40 +0000 |
|---|---|---|
| committer | DanConwayDev <DanConwayDev@protonmail.com> | 2026-02-25 15:07:40 +0000 |
| commit | 5ad9d9093fcbe7037e5474a9d8fa20a0b64fb79a (patch) | |
| tree | 3c22fb4b42a62badedc29963d1ce39a2fbc83bb1 /docs/explanation | |
| parent | 4fc3b279d3eb86993f7748959a3986be5a6c49a7 (diff) | |
drop nostr-db backend support, keep only lmdb and memory
Diffstat (limited to 'docs/explanation')
| -rw-r--r-- | docs/explanation/architecture.md | 2 | ||||
| -rw-r--r-- | docs/explanation/comparison.md | 10 | ||||
| -rw-r--r-- | docs/explanation/deletion-requests.md | 2 |
3 files changed, 7 insertions, 7 deletions
diff --git a/docs/explanation/architecture.md b/docs/explanation/architecture.md index e101425..e0a57e5 100644 --- a/docs/explanation/architecture.md +++ b/docs/explanation/architecture.md | |||
| @@ -101,7 +101,7 @@ After examining both the reference implementation and HTTP server options, we ha | |||
| 101 | - Initialize configuration from environment (clap + dotenvy) | 101 | - Initialize configuration from environment (clap + dotenvy) |
| 102 | - Set up Hyper HTTP server with request routing | 102 | - Set up Hyper HTTP server with request routing |
| 103 | - Initialize Nostr relay builder with custom [`Nip34WritePolicy`](src/nostr/builder.rs:51) | 103 | - Initialize Nostr relay builder with custom [`Nip34WritePolicy`](src/nostr/builder.rs:51) |
| 104 | - Set up shared storage (LMDB, NostrDB, or Memory) | 104 | - Set up shared storage (LMDB or Memory) |
| 105 | - Handle WebSocket upgrades for Nostr relay | 105 | - Handle WebSocket upgrades for Nostr relay |
| 106 | - Handle graceful shutdown | 106 | - Handle graceful shutdown |
| 107 | 107 | ||
diff --git a/docs/explanation/comparison.md b/docs/explanation/comparison.md index 090e0eb..315f091 100644 --- a/docs/explanation/comparison.md +++ b/docs/explanation/comparison.md | |||
| @@ -11,7 +11,7 @@ This document compares ngit-grasp (this project) with ngit-relay (the reference | |||
| 11 | | **Git Protocol** | git-http-backend (C via fcgiwrap) | HTTP layer in Rust + git subprocess | | 11 | | **Git Protocol** | git-http-backend (C via fcgiwrap) | HTTP layer in Rust + git subprocess | |
| 12 | | **Authorization** | Pre-receive Git hook | Inline HTTP handler validation | | 12 | | **Authorization** | Pre-receive Git hook | Inline HTTP handler validation | |
| 13 | | **Nostr Relay** | Khatru (Go library) | nostr-relay-builder (Rust library) | | 13 | | **Nostr Relay** | Khatru (Go library) | nostr-relay-builder (Rust library) | |
| 14 | | **Event Store** | Badger (Go KV database) | LMDB or NostrDB (Rust) | | 14 | | **Event Store** | Badger (Go KV database) | LMDB (Rust) | |
| 15 | | **Proactive Sync** | Git-only (polls DB + fetches from git servers) | Nostr event sync + git sync (event-driven) | | 15 | | **Proactive Sync** | Git-only (polls DB + fetches from git servers) | Nostr event sync + git sync (event-driven) | |
| 16 | | **Process Management** | supervisord (4 processes) | Single tokio runtime | | 16 | | **Process Management** | supervisord (4 processes) | Single tokio runtime | |
| 17 | | **Packaging** | Docker with supervisord | Single static binary or Docker | | 17 | | **Packaging** | Docker with supervisord | Single static binary or Docker | |
| @@ -78,7 +78,7 @@ This document compares ngit-grasp (this project) with ngit-relay (the reference | |||
| 78 | │ │ │ │ builder library) │ │ | 78 | │ │ │ │ builder library) │ │ |
| 79 | │ │ - info/refs │ │ - NIP-34 Policy │ │ | 79 | │ │ - info/refs │ │ - NIP-34 Policy │ │ |
| 80 | │ │ - upload-pk │◀─────┤ (inline query) │ │ | 80 | │ │ - upload-pk │◀─────┤ (inline query) │ │ |
| 81 | │ │ - receive-pk │ auth │ - LMDB/NostrDB │ │ | 81 | │ │ - receive-pk │ auth │ - LMDB/Memory │ │ |
| 82 | │ │ + inline │ check│ - WebSocket │ │ | 82 | │ │ + inline │ check│ - WebSocket │ │ |
| 83 | │ │ validation │ │ - NIP-11 endpoint │ │ | 83 | │ │ validation │ │ - NIP-11 endpoint │ │ |
| 84 | │ └──────┬───────┘ └──────────┬─────────┘ │ | 84 | │ └──────┬───────┘ └──────────┬─────────┘ │ |
| @@ -100,7 +100,7 @@ This document compares ngit-grasp (this project) with ngit-relay (the reference | |||
| 100 | │ │ | 100 | │ │ |
| 101 | │ ┌──────────────────────────────────────────────────┐ │ | 101 | │ ┌──────────────────────────────────────────────────┐ │ |
| 102 | │ │ Shared State (Arc<T>) │ │ | 102 | │ │ Shared State (Arc<T>) │ │ |
| 103 | │ │ - Database (LMDB/NostrDB/Memory) │ │ | 103 | │ │ - Database (LMDB/Memory) │ │ |
| 104 | │ │ - Purgatory (DashMap - concurrent queue) │ │ | 104 | │ │ - Purgatory (DashMap - concurrent queue) │ │ |
| 105 | │ │ - Metrics (Prometheus) │ │ | 105 | │ │ - Metrics (Prometheus) │ │ |
| 106 | │ └──────────────────────────────────────────────────┘ │ | 106 | │ └──────────────────────────────────────────────────┘ │ |
| @@ -161,7 +161,7 @@ This is why ngit-grasp has ~13x more code - the majority is implementing GRASP-0 | |||
| 161 | | Feature | ngit-relay | ngit-grasp | | 161 | | Feature | ngit-relay | ngit-grasp | |
| 162 | |---------|-----------|-----------| | 162 | |---------|-----------|-----------| |
| 163 | | **Implementation** | Khatru (Go library) | nostr-relay-builder (Rust library) | | 163 | | **Implementation** | Khatru (Go library) | nostr-relay-builder (Rust library) | |
| 164 | | **Database** | Badger (Go KV store) | LMDB or NostrDB (Rust) | | 164 | | **Database** | Badger (Go KV store) | LMDB (Rust) | |
| 165 | | **Process** | Separate process on :3334 | Integrated (same binary) | | 165 | | **Process** | Separate process on :3334 | Integrated (same binary) | |
| 166 | | **Policies** | Go functions in `policies.go` | Rust traits (modular sub-policies) | | 166 | | **Policies** | Go functions in `policies.go` | Rust traits (modular sub-policies) | |
| 167 | | **Event Validation** | Single function with branches | 4 separate policy modules | | 167 | | **Event Validation** | Single function with branches | 4 separate policy modules | |
| @@ -287,7 +287,7 @@ For users of ngit-relay, migration to ngit-grasp involves: | |||
| 287 | 287 | ||
| 288 | ### Data Migration | 288 | ### Data Migration |
| 289 | 289 | ||
| 290 | 1. **Events**: Export from Badger → Import to LMDB/NostrDB | 290 | 1. **Events**: Export from Badger → Import to LMDB |
| 291 | - No direct migration tool yet (would need to be built) | 291 | - No direct migration tool yet (would need to be built) |
| 292 | - Alternative: Use proactive sync to re-fetch from other relays | 292 | - Alternative: Use proactive sync to re-fetch from other relays |
| 293 | 2. **Git Repositories**: Direct copy (same structure) | 293 | 2. **Git Repositories**: Direct copy (same structure) |
diff --git a/docs/explanation/deletion-requests.md b/docs/explanation/deletion-requests.md index 7660774..4b4cd88 100644 --- a/docs/explanation/deletion-requests.md +++ b/docs/explanation/deletion-requests.md | |||
| @@ -28,7 +28,7 @@ The deletion system uses three separate data stores: | |||
| 28 | ┌─────────────────────────────────────────────────────────┐ | 28 | ┌─────────────────────────────────────────────────────────┐ |
| 29 | │ Main Database │ | 29 | │ Main Database │ |
| 30 | │ (Live events - actively served) │ | 30 | │ (Live events - actively served) │ |
| 31 | │ LMDB/NostrDB/Memory backend │ | 31 | │ LMDB/Memory backend │ |
| 32 | └─────────────────────────────────────────────────────────┘ | 32 | └─────────────────────────────────────────────────────────┘ |
| 33 | ↓ deletion request | 33 | ↓ deletion request |
| 34 | ┌─────────────────────────────────────────────────────────┐ | 34 | ┌─────────────────────────────────────────────────────────┐ |