- Bitchat, Bluetooth mesh ağı ile internet tabanlı Nostr'u birleştirerek hesap, telefon numarası veya merkezi sunucu olmadan çalışan iOS·macOS için merkeziyetsiz bir P2P mesajlaşma uygulamasıdır
- Çevrimdışıyken Bluetooth LE ile en fazla 7 atlamalı yönlendirmeyi destekler; internete bağlandığında ise 290'dan fazla Nostr relay'i üzerinden dünya geneli ve konum tabanlı kanallara bağlanır
- Özel mesajlar için önce Bluetooth'un Noise Protocol'ünü kullanır; bu mümkün değilse Nostr'un NIP-17'sine geçer; ikisi de mümkün değilse gönderim yapılabilene kadar kuyruğa alınır
- geohash hassasiyetine göre blok, mahalle, şehir, eyalet/il ve ülke düzeyinde kanallar sunar; ayrıca
/slap, /msg, /who gibi IRC tarzı komutlar ve verileri üç kez dokunarak silen Emergency Wipe desteği sağlar
- Proje public domain olarak yayımlandı; Xcode veya
just ile çalıştırılabilir, ancak gerçek cihaz derlemesi için Developer Team ID ve entitlement ayarları gerekir
Bluetooth ve Nostr'u birleştiren taşıma yapısı
- Bitchat, Bluetooth mesajlaşma ile Nostr'u birleştiren yerel bir iOS·macOS uygulamasıdır ve App Store üzerinden de sunulmaktadır
- Bluetooth mesh ağı, internet olmadan yakındaki cihazları otomatik olarak keşfedip bağlar
- Bluetooth LE ile doğrudan P2P iletişim kurar ve yakındaki cihazlar üzerinden mesajları en fazla 7 atlama boyunca iletir
- Noise Protocol tabanlı uçtan uca şifreleme ve forward secrecy desteği sunar
- Bluetooth LE kısıtlarına uygun sıkıştırılmış ikili paket formatı ve pil için optimize edilmiş duty cycle kullanır
mesh #bluetooth kanalı; protesto, afet ve uzak bölgeler gibi çevrimdışı iletişim senaryolarını hedefler
- Nostr taşıma katmanı, dünya genelindeki 290'dan fazla relay üzerinden internet mesajlaşması sağlar
- geohash koordinatlarıyla konum tabanlı sohbet odaları oluşturur ve her bölge için yeni geçici şifrelenmiş kimlikler kullanır
- Özel mesajlar NIP-17 gift wrapping ile korunur
- Konum kanalları internet bağlantısı gerektirir ve yerel topluluklar, yerel etkinlikler ve bölgesel tartışmalar için kullanılabilir
block 7 karakter: şehir bloğu
neighborhood 6 karakter: semt·mahalle
city 5 karakter: şehir
province 4 karakter: eyalet·il
region 2 karakter: ülke·büyük bölge
- Özel mesaj yönlendirme, kullanılabilir taşıma yöntemini otomatik olarak seçer
- Mevcut bir Noise oturumu kullanılabiliyorsa hızlı ve daha gizli Bluetooth bağlantısı önceliklendirilir
- Bluetooth kullanılamıyorsa alıcının Nostr açık anahtarı ve NIP-17 kullanılarak relay ağına gönderilir
- Her iki yöntem de kullanılamıyorsa mesaj kuyrukta tutulur ve bağlantı kurulduğunda otomatik olarak iletilir
- LZ4 mesaj sıkıştırma, uyarlanabilir pil modu, ağ optimizasyonu, IRC tarzı komutlar ve tüm verileri üç kez dokunarak anında silen Emergency Wipe de sunulur
- Ayrıntılı protokol için Technical Whitepaper incelenebilir
Derleme, yerelleştirme ve lisans
- Xcode'da çalıştırmak için depoda şu komutlar kullanılır
cd bitchat
open bitchat.xcodeproj
- Gerçek cihazda çalıştırmak için yerel yapılandırma ve kod imzalama hazırlanmalıdır
cp Configs/Local.xcconfig.example Configs/Local.xcconfig ile yapılandırma dosyası kopyalanır
- Yeni dosyaya Developer Team ID eklendiğinde varsayılan Bundle ID
chat.bitchat.<team_id> olarak ayarlanır
- entitlement içindeki
group.chat.bitchat değeri elle group.<your_bundle_id> olarak değiştirilmelidir
- macOS'ta
brew install just sonrasında just run ile kurulum ve kaynak kod çalıştırılabilir
- Ardından
just clean çalıştırılırsa mobil uygulama derleme ve geliştirme için başlangıç durumuna geri döner
- Yerelleştirme kaynakları uygulama ile paylaşım uzantısı arasında ayrılmıştır
- Temel uygulama metinleri ve çoğul kuralları,
bitchat/Localization/Base.lproj/ altındaki Localizable.strings ve Localizable.stringsdict dosyalarına eklenir
- Paylaşım uzantısı metinleri
bitchatShareExtension/Localization/Base.lproj/Localizable.strings içinde yönetilir
- Anahtarlar,
app_info.features.offline.title gibi niyeti açık edecek şekilde yazılmalı ve mümkün olduğunda mevcut anahtarlar yeniden kullanılmalıdır
- Yerelleştirme değişiklikleri,
xcodebuild -project bitchat.xcodeproj -scheme "bitchat (macOS)" -configuration Debug CODE_SIGNING_ALLOWED=NO build ile derlenerek doğrulanır
- Proje public domain olarak dağıtılmaktadır; ayrıntılı koşullar LICENSE içinde görülebilir
1 yorum
Hacker News yorumları
Dün Radicle masaüstü istemcisini kurup yeni bir kullanıcı adı ve parola girdim ama hiçbir şey olmadı. Uygulamayı yeniden başlatsam da hesap oluşturma/giriş ekranını geçemedim; Radicle kullanımı benim için orada bitti
Kullanılabilirliği önemsiyorsanız
libs.gms.locationbağımlılığını yeniden gözden geçirmeli ve F-Droid üzerinden de dağıtmalısınız (https://gitlab.com/fdroid/fdroiddata/-/merge_requests/24907#...)Fusion Festival'de Bitchat'i açıp dolaştım; yaklaşık 20 cihaz ve birkaç mesaj gördüm ama gönderdiğim mesajlara kimse yanıt vermedi. 80 bin kişi içinde 20 cihaz, hiç kullanıcı olmadığı anlamına gelmiyor ama çok da fazla değil; ayrıca en fazla 2 hop gördüm, bu da festival alanını kat edecek yoğunluk için yeterli değildi
Uçakta yan yana oturmak için fazladan 50 dolar ödemek istemeyip grubunuzdan ayrı düştüğünüzde işe yarıyor
BitChat ilginizi çekiyorsa, popülerleştiğinde ya da birlikte kullanacak birilerini bulduğunuzda hazır olması için şimdiden kurmaya değer. Kendim denediğimde Wi‑Fi veya mobil bağlantı olmadan mesajlaşmak gerçek dışı gibi hissettirdi
Üst üste binen geohash'ler de fena olmayabilir, ama telsiz gibi taraflardan yalnızca biri menzil içindeyse konuşmanın yarısını görme karmaşası yaratmasından endişe ederim. Mevcut geohash yaklaşık 1 acre'a kadar daraltılıyor; bu fazla hassas, ama 12 katlı bir üniversite yurdunun tamamı tek bir sohbet odası kullanacaksa faydalı olabilir
Radicle sitesi, bir Git depo platformu olarak ilginç bir tasarım sergiliyor. Tam genişlikli boşluklar, iyi kurgulanmış gezinme yapısı ve hoş kod render'ı hoşuma gitti
Bitchat, AOS'un projesi. Aynı AOS projesi olan ngit üzerinde yeniden barındırılmamış olması şaşırtıcı
Nostr safçılığına kapılınca gönderilerinizi yalnızca 5 kişinin gördüğü sonuçlar sık yaşanıyor. Protokolü seviyorum ama kullanıcı sayısını artırmak istiyorsanız uygulamayı insanların zaten bulunduğu yerlere koymanız gerekir
Diğer merkeziyetsiz mesajlaşma ürünleri olan Nostr veya XMTP ile karşılaştırıldığında özel bir özelliği var mı merak ediyorum
Önceki günkü ilgili tartışma: “Government orders GitHub to remove Bluetooth-based chat app Bitchat: Jack Dorsey”
https://news.ycombinator.com/item?id=49036433