⚡ Protokol Standartları ve Mimarisi

Jotstr’ın Arkasındaki Özgür ve Açık Mimari

Açık protokoller, kriptografik olay şemaları, Blossom medya sunucuları, DNS yönlendirme mekanikleri ve sıfır veritabanlı edge SSR motorunun derinlemesine analizi.

Protokol ve RFC Standartları

Standart Platformdaki Rolü Uygulama Detayı
NIP-23 Long-Form Content Parameterized replaceable event (kind:30023) with Markdown body & metadata tags.
BUD-01 / NIP-94 Blossom Media Storage SHA-256 content addressing with client signed authorization (kind:24242) headers.
NIP-78 App Metadata & Theme Portable theme settings & layout configurations stored directly on the author's public key.
NIP-05 / DNS Identity & Custom Domains DNS TXT record validation (_nostr) and human-readable internet handles.
NIP-07 / NIP-46 Cryptographic Authentication Browser extension signer bridge (window.nostr) and remote Bunker signing connections.
LUD-16 / NIP-57 Direct Lightning Zaps Instant peer-to-peer Bitcoin Lightning tipping directly to author's Lightning address.
Specification 01

1. NIP-23 Uzun Metin İçerik Şeması

Uzun metin makaleler parametrelendirilmiş değiştirilebilir olaylar (`kind:30023`) olarak oluşturulur ve yayınlanır. Her yazı, yazarın genel anahtarı ve `d` etiket tanımlayıcısı ile benzersiz şekilde dizinlenir; böylece kalıcı bağlantılar bozulmadan güncellemeler yapılabilir.

Kind 30023 Olay Yükü Yapısı kind:30023
{
  "id": "e4a89f72c1d30023a1e2f4581290bb345718a90123efd6718290abc123456789",
  "pubkey": "fa3b8172901bca981249871234123412341234123412341234123412341298c1",
  "created_at": 1727196000,
  "kind": 30023,
  "tags": [
    ["d", "sovereign-publishing-era"],
    ["title", "The Era of Sovereign Publishing"],
    ["summary", "Why writing on open cryptographic relays changes independent publishing forever."],
    ["published_at", "1727196000"],
    ["t", "writing"],
    ["t", "nostr"],
    ["image", "https://media.emre.xyz/9f0a8172bc9102938475819230.webp"],
    ["client", "Jotstr", "31990:fa3b...98c1:jotstr"]
  ],
  "content": "# The Era of Sovereign Publishing\n\nWords matter. When you write on an open protocol...",
  "sig": "98124019283401928340192834019283401928340192834019283401928340192834019283401928340192834019283401928340192834019283401928340192"
}
Specification 02

2. Blossom BUD-01 Medya Depolama ve Doğrulama

Fotoğraflar, illüstrasyonlar ve medya varlıkları; BUD-01 ve NIP-94 standartlarına uygun merkeziyetsiz Blossom sunucularında barındırılır. Her yükleme imzalı bir yetkilendirme olayı (`kind:24242`) gerektirir ve değişmez SHA-256 hash değeri ile referans verilir.

BUD-01 Authorization Header (kind:24242)
Authorization: Nostr {
  "kind": 24242,
  "created_at": 1727196000,
  "tags": [
    ["t", "upload"],
    ["x", "9f0a8172bc9102938475819230..."],
    ["expiration", "1727196300"]
  ],
  "content": "Upload cover image"
}
Multi-Server Mirror & Deduplication
media.emre.xyz/<sha256> ● Primary
blossom.primal.net/<sha256> ● Mirror
cdn.nostr.build/<sha256> ● Fallback
Specification 03

3. Özel Alan Adı ve DNS Edge Çözümleme

Yazarlar sunucu altyapısı kurmadan veya SSL sertifikası yönetmeden özel alan adlarını (örn. `blog.yazar.com`) bağlayabilir. Jotstr, yazarın genel anahtarı veya NIP-05 tanımlayıcısıyla eşleşen DNS TXT kayıtları (`_nostr`) üzerinden alan adı sahipliğini doğrular.

DNS TXT Doğrulama Kaydı
Host: _nostr.yourdomain.com
nostr=npub1delirehberi98c173...
DNS CNAME Yönlendirme Kaydı
Host: @ (or blog)
edge.jotstr.com
Specification 04

4. Veritabanısız Edge SSR Çalıştırma Motoru

Jotstr, Cloudflare Workers küresel edge düğümlerinde çalışır. Sunucu mimarisinde herhangi bir merkezi SQL veya NoSQL veritabanı tutulmaz. Gelen her istekte makaleler, yazar profilleri ve temalar küresel Nostr rölelerinden eşzamanlı çekilir, edge belleğinde önbelleğe alınır ve 50ms altında HTML olarak işlenir.

+-----------------------------------------------------------------------------+
| 1. HTTP Request (e.g. alice.jotstr.com or blog.alice.com)                   |
+-----------------------------------------------------------------------------+
                                      │
                                      ▼
+-----------------------------------------------------------------------------+
| 2. Cloudflare Edge Worker SSR (No SQL Database)                             |
|    - Hostname Resolver: extracts npub/NIP-05 or DNS TXT _nostr validation  |
|    - In-Memory Edge Cache check (TTL: 60s)                                 |
+-----------------------------------------------------------------------------+
                                      │
                   ┌──────────────────┴──────────────────┐
                   ▼                                     ▼
+------------------------------------+ +------------------------------------+
| 3. Concurrent Relay Fetch          | | 4. Blossom Media Mirror            |
|    - kind:0  (Profile Metadata)    | |    - SHA-256 Verified CDN Assets   |
|    - kind:30023 (Articles List)    | |    - Automatic failover endpoints  |
|    - kind:78 (Theme Settings)      | |                                    |
+------------------------------------+ +------------------------------------+
                   │                                     │
                   └──────────────────┬──────────────────┘
                                      │
                                      ▼
+-----------------------------------------------------------------------------+
| 5. Stream HTML Response to Client (< 50ms TTFB worldwide)                  |
+-----------------------------------------------------------------------------+
Specification 05

5. Kriptografik Kimlik ve Kimlik Doğrulama

Kimlik doğrulama tamamen istemci taraflı ve bağımsızdır. Jotstr; tarayıcı eklentilerini (NIP-07), uzaktan imzalayıcıları (NIP-46) ve şifrelenmiş yerel anahtar depolamayı (nsec) destekler. Özel anahtarlar asla sunucuya iletilmez veya sunucuda saklanmaz.

NIP-07 Extension

Browser-based key store (Alby, nos2x) manages private keys. Jotstr requests cryptographic signatures via window.nostr.

NIP-46 Remote Bunker

Sign from mobile devices (Amber, nsecBunker) over encrypted Nostr relays with fine-grained authorization policies.

Ephemeral Session Storage

Local private keys (nsec) remain strictly in browser sessionStorage. Zero key material is sent to servers.

Açık protokoller üzerinde geliştirin

Jotstr tamamen açık kaynaklıdır. Kodları inceleyin, katkıda bulunun veya kendi röle kümenizi bağlayın.