NIP-BE: Bluetooth Low Energy
NIP-BEは、NostrアプリケーションがBluetooth Low Energy経由で通信・同期する方法を規定し、オフライン対応アプリがインターネット接続なしで近くのデバイス間でデータを同期できるようにします。
GATT構造
Nordic UART Serviceを使用し、2つのキャラクタリスティックを持ちます:
- Writeキャラクタリスティック - クライアントがサーバーにデータを送信
- Readキャラクタリスティック - サーバーがクライアントにデータを送信(通知経由)
メッセージフレーミング
BLEはペイロード制限が小さい(バージョンにより20〜256バイト)ため、メッセージは:
- DEFLATEで圧縮
- 2バイトのインデックスと最終バッチフラグを持つチャンクに分割
- 最大64KBのサイズ制限
ロールネゴシエーション
デバイスは発見時にアドバタイズされたUUIDを比較:
- 高いUUIDがGATTサーバー(リレーロール)になる
- 低いUUIDがGATTクライアントになる
- 単一ロールデバイス用の事前定義UUIDが存在
同期
標準的なNostrメッセージタイプ(EVENT、EOSE、NEG-MSG)を使用した半二重通信で、断続的な接続間でデータ同期を調整します。
ユースケース
- 近くのデバイス間でのオフラインイベント同期
- インターネットなしでのメッシュ型メッセージ伝播
- ネットワーク利用不可時のバックアップ接続
主要ソース:
言及箇所: