NIP-BE: Bluetooth Low Energy
NIP-BE specifica come le applicazioni Nostr possono comunicare e sincronizzarsi tramite Bluetooth Low Energy, abilitando app capaci di funzionare offline per sincronizzare dati tra dispositivi vicini senza connettivita’ internet.
Struttura GATT
Usa un Nordic UART Service con due caratteristiche:
- Caratteristica Write - Il client invia dati al server
- Caratteristica Read - Il server invia dati al client (tramite notifiche)
Framing dei Messaggi
BLE ha limiti di payload piccoli (20-256 byte a seconda della versione), quindi i messaggi sono:
- Compressi con DEFLATE
- Divisi in chunk con un indice a 2 byte e flag batch finale
- Limitati a 64KB di dimensione massima
Negoziazione dei Ruoli
I dispositivi confrontano gli UUID pubblicizzati alla scoperta:
- UUID piu’ alto diventa server GATT (ruolo relay)
- UUID piu’ basso diventa client GATT
- Esistono UUID predeterminati per dispositivi a ruolo singolo
Sincronizzazione
Usa comunicazione half-duplex con tipi di messaggio Nostr standard (EVENT, EOSE, NEG-MSG) per coordinare la sincronizzazione dati attraverso connessioni intermittenti.
Casi d’Uso
- Sincronizzazione eventi offline tra dispositivi vicini
- Propagazione messaggi in stile mesh senza internet
- Connettivita’ di backup quando la rete non e’ disponibile
Fonti primarie:
Menzionato in: