العودة إلى التحديثات
New releaseAug 1, 2026

bitchat v1.7.1

دردشة بلوتوث ميش، بأجواء IRC

مشاركة
icon_128x128@2x

bitchat

تطبيق مراسلة لامركزي من نظير إلى نظير بمعمارية نقل مزدوجة: شبكات Bluetooth mesh محلية للتواصل دون اتصال، وبروتوكول Nostr القائم على الإنترنت للوصول العالمي. لا حسابات، لا أرقام هواتف، لا خوادم مركزية. إنه الشات الجانبي للمجموعة.

bitchat.free

📲 App Store

License

هذا المشروع مُصدر إلى النطاق العام. راجع ملف LICENSE للتفاصيل.

Features

  • معمارية النقل المزدوج: شبكة Bluetooth mesh للعمل دون اتصال + بروتوكول Nostr للمراسلة عبر الإنترنت
  • قنوات مبنية على الموقع: غرف دردشة جغرافية باستخدام إحداثيات geohash عبر مرحلات Nostr العالمية
  • التوجيه الذكي للرسائل: يختار تلقائيًا أفضل وسيلة نقل (Bluetooth ← الرجوع إلى Nostr)
  • شبكة شبكية لامركزية: اكتشاف تلقائي للأقران وترحيل متعدد القفزات للرسائل عبر Bluetooth LE
  • الخصوصية أولاً: لا حسابات، لا أرقام هواتف، لا معرّفات دائمة
  • تشفير الرسائل الخاصة من طرف إلى طرف: بروتوكول Noise لشبكة mesh وNIP-17 لـ Nostr
  • أوامر بأسلوب IRC: واجهة مألوفة على غرار /slap و/msg و/who
  • تطبيق شامل: دعم أصلي لنظامي iOS وmacOS
  • مسح طارئ: نقرة ثلاثية لمسح جميع البيانات فورًا
  • تحسينات الأداء: ضغط الرسائل LZ4، وأوضاع بطارية تكيفية، وشبكات محسّنة

المعمارية التقنية

يستخدم BitChat معمارية مراسلة هجينة بطبقتين للنقل متكاملتين:

شبكة Bluetooth Mesh (دون اتصال)

  • تواصل محلي: مباشر من نظير إلى نظير ضمن نطاق Bluetooth
  • ترحيل متعدد القفزات: تمرير الرسائل عبر الأجهزة القريبة (بحد أقصى 7 قفزات)
  • لا يتطلب إنترنت: يعمل دون اتصال تمامًا في سيناريوهات الكوارث
  • تشفير بروتوكول Noise: تشفير من طرف إلى طرف مع سرية أمامية
  • بروتوكول ثنائي: تنسيق حزم مضغوط محسَّن لقيود Bluetooth LE
  • اكتشاف تلقائي: اكتشاف الأقران وإدارة الاتصالات
  • طاقة تكيفية: دورة تشغيل محسّنة للبطارية

بروتوكول Nostr (إنترنت)

  • وصول عالمي: تواصل مع المستخدمين حول العالم عبر مرحلات الإنترنت
  • قنوات الموقع: غرف دردشة جغرافية باستخدام إحداثيات geohash
  • شبكة مرحلات تضم 290+ مرحلاً: موزعة حول العالم لضمان الموثوقية
  • تشفير NIP-17: رسائل خاصة مغلّفة كهدايا للخصوصية على الإنترنت
  • مفاتيح مؤقتة: هوية تشفير جديدة لكل منطقة geohash

أنواع القنوات

mesh #bluetooth

  • النقل: شبكة Bluetooth Low Energy الشبكية
  • النطاق: الأجهزة المحلية ضمن نطاق متعدد القفزات
  • الإنترنت: غير مطلوب
  • حالة الاستخدام: التواصل دون اتصال، الاحتجاجات، الكوارث، المناطق النائية

قنوات الموقع (block #dr5rsj7, neighborhood #dr5rs, country #dr)

  • النقل: بروتوكول Nostr عبر الإنترنت
  • النطاق: مناطق جغرافية محددة بدقة geohash
    • block (7 أحرف): مستوى المربع السكني في المدينة
    • neighborhood (6 أحرف): الحي/المنطقة
    • city (5 أحرف): مستوى المدينة
    • province (4 أحرف): الولاية/المقاطعة
    • region (حرفان): البلد/المنطقة الكبيرة
  • الإنترنت: مطلوب (يتصل بمرحلات Nostr)
  • حالة الاستخدام: دردشة مجتمعية قائمة على الموقع، أحداث محلية، نقاشات إقليمية

توجيه الرسائل المباشرة

تستخدم الرسائل الخاصة اختيار النقل الذكي:

  1. Bluetooth أولاً (مُفضَّل عند توفره)

    • اتصال مباشر بجلسة Noise قائمة
    • الخيار الأسرع والأكثر خصوصية
  2. الاحتياط عبر Nostr (عند عدم توفر Bluetooth)

    • يستخدم المفتاح العام الخاص بالمستلم على Nostr
    • تغليف NIP-17 كهدية للخصوصية
    • التوجيه عبر شبكة المرحلات العالمية
  3. الطابور الذكي (عند عدم توفر أي منهما)

    • تُخزَّن الرسائل في طابور حتى يتوفر النقل
    • تسليم تلقائي عند إنشاء الاتصال

للاطلاع على توثيق البروتوكول المفصّل، راجع الورقة التقنية البيضاء.

الإعداد

الخيار 1: باستخدام Xcode

cd bitchat
open bitchat.xcodeproj

لتشغيل التطبيق على جهاز، هناك بضع خطوات لتجهيز الكود:

  • انسخ الإعدادات المحلية: cp Configs/Local.xcconfig.example Configs/Local.xcconfig
  • أضف معرّف فريق المطوّر الخاص بك إلى Configs/Local.xcconfig المُنشأ حديثًا
    • سيتم تعيين معرّف الحزمة إلى chat.bitchat.<team_id> (إلا إذا عيّنت قيمة أخرى)
  • يجب تحديث الصلاحيات يدويًا (TODO: أتمتة):
    • ابحث عن group.chat.bitchat واستبدلها بـ group.<your_bundle_id> (مثل group.chat.bitchat.ABC123)

الخيار 2: باستخدام just

brew install just

هل تريد تجربة ذلك على macOS: just run سيقوم بالإعداد والتشغيل من المصدر. شغّل just clean بعد ذلك لاستعادة الأشياء إلى حالتها الأصلية لبناء وتطوير تطبيق الجوال.

التوطين

  • موارد التطبيق الأساسية موجودة في bitchat/Localization/Base.lproj/. أضف النصوص الجديدة إلى Localizable.strings وقواعد الجمع إلى Localizable.stringsdict.
  • نصوص ملحق المشاركة منفصلة في bitchatShareExtension/Localization/Base.lproj/Localizable.strings.
  • فضّل المفاتيح التي تصف الغرض (app_info.features.offline.title) وأعد استخدام الموجود منها حيثما أمكن.
  • شغّل xcodebuild -project bitchat.xcodeproj -scheme "bitchat (macOS)" -configuration Debug CODE_SIGNING_ALLOWED=NO build للتحقق من ترجمة أي تحديثات للتوطين.

الفئات