mirror of
https://github.com/permissionlesstech/bitchat-android.git
synced 2026-08-15 06:56:30 +00:00
Merge remote-tracking branch 'upstream/main'
# Conflicts: # app/src/main/assets/nostr_relays.csv
This commit is contained in:
commit
1143e49a23
@ -1,286 +1,271 @@
|
||||
Relay URL,Latitude,Longitude
|
||||
nostrelay.memory-art.xyz,40.7128,-74.006
|
||||
nos.lol,50.4754,12.3683
|
||||
srtrelay.c-stellar.net,40.7357,-74.1724
|
||||
nostr.agentcampfire.com,50.8933,6.05805
|
||||
wot.basspistol.org,49.4521,11.0767
|
||||
relay.mostro.network,40.8302,-74.1299
|
||||
relay.nsnip.io,60.1699,24.9384
|
||||
nostr-relay.xbytez.io,50.6924,3.20113
|
||||
nostr.sagaciousd.com,49.2827,-123.121
|
||||
relay.barine.co,43.6532,-79.3832
|
||||
relay.thebluepulse.com,49.0291,8.35696
|
||||
strfry.bonsai.com,37.8715,-122.273
|
||||
nostr.n7ekb.net,47.4941,-122.294
|
||||
relay.lightning.pub,41.8959,-88.2169
|
||||
relay.nosto.re,51.8933,4.42083
|
||||
wot.sovbit.host,64.1466,-21.9426
|
||||
nostr.einundzwanzig.space,50.1109,8.68213
|
||||
shu01.shugur.net,21.4902,39.2246
|
||||
nostr.mehdibekhtaoui.com,49.4939,-1.54813
|
||||
nproxy.kristapsk.lv,60.1699,24.9384
|
||||
soloco.nl,40.7357,-74.1724
|
||||
nostr.coincrowd.fund,39.0438,-77.4874
|
||||
zap.watch,45.5029,-73.5723
|
||||
relay.olas.app,50.4754,12.3683
|
||||
bcast.girino.org,40.7357,-74.1724
|
||||
theoutpost.life,64.1476,-21.9392
|
||||
r.bitcoinhold.net,43.6532,-79.3832
|
||||
relay.2nix.de,60.1699,24.9384
|
||||
relay.btcforplebs.com,40.7357,-74.1724
|
||||
nostr.carroarmato0.be,50.9928,3.26317
|
||||
relay.nostriches.club,43.6532,-79.3832
|
||||
yabu.me,35.6092,139.73
|
||||
bcast.seutoba.com.br,43.6532,-79.3832
|
||||
adre.su,59.9311,30.3609
|
||||
shu05.shugur.net,48.8566,2.35222
|
||||
nostr.data.haus,50.4754,12.3683
|
||||
relay.ru.ac.th,13.7584,100.622
|
||||
nostrcheck.tnsor.network,43.6532,-79.3832
|
||||
relay.angor.io,48.1046,11.6002
|
||||
wot.brightbolt.net,47.6735,-116.781
|
||||
nostr.sathoarder.com,48.5734,7.75211
|
||||
shu02.shugur.net,21.4902,39.2246
|
||||
relay.nostriot.com,41.5695,-83.9786
|
||||
relay.nostar.org,40.7357,-74.1724
|
||||
relay.mccormick.cx,52.3563,4.95714
|
||||
relay.nostraddress.com,40.7357,-74.1724
|
||||
nostr.spicyz.io,40.7357,-74.1724
|
||||
nostream.breadslice.com,1.35208,103.82
|
||||
wot.nostr.net,40.7357,-74.1724
|
||||
nostr-2.21crypto.ch,47.4988,8.72369
|
||||
wot.nostr.place,30.2672,-97.7431
|
||||
nostr.night7.space,50.4754,12.3683
|
||||
nostr2.girino.org,43.6532,-79.3832
|
||||
nostr.21crypto.ch,47.4988,8.72369
|
||||
relay.ditto.pub,43.6532,-79.3832
|
||||
relay02.lnfi.network,39.0997,-94.5786
|
||||
relay.degmods.com,50.4754,12.3683
|
||||
nostr.chaima.info,51.223,6.78245
|
||||
relayrs.notoshi.win,43.6532,-79.3832
|
||||
nostr.openhoofd.nl,51.9229,4.40833
|
||||
relay.wellorder.net,45.5201,-122.99
|
||||
relayone.geektank.ai,18.2148,-63.0574
|
||||
wot.dtonon.com,43.6532,-79.3832
|
||||
relay.hook.cafe,43.6532,-79.3832
|
||||
relay.tagayasu.xyz,43.6715,-79.38
|
||||
ynostr.yael.at,60.1699,24.9384
|
||||
relay.uid.ovh,40.7357,-74.1724
|
||||
nostr.girino.org,43.6532,-79.3832
|
||||
relayone.soundhsa.com,33.1384,-95.6011
|
||||
relay2.angor.io,48.1046,11.6002
|
||||
nostr.stakey.net,52.3676,4.90414
|
||||
relay.agorist.space,52.3734,4.89406
|
||||
alienos.libretechsystems.xyz,55.4724,9.87335
|
||||
nostr.hifish.org,47.4043,8.57398
|
||||
nostr.hole.cafe,60.1699,24.9384
|
||||
x.kojira.io,40.7357,-74.1724
|
||||
nostr.zoracle.org,45.6018,-121.185
|
||||
relay.getsafebox.app,43.6532,-79.3832
|
||||
nostr.simplex.icu,50.8198,-1.08798
|
||||
relay.basspistol.org,46.2044,6.14316
|
||||
relay.davidebtc.me,50.1109,8.68213
|
||||
nostr.tadryanom.me,43.6532,-79.3832
|
||||
relay.nostrhub.tech,49.0291,8.35696
|
||||
nostr.bilthon.dev,25.8128,-80.2377
|
||||
nostr-rs-relay-ishosta.phamthanh.me,40.7357,-74.1724
|
||||
nostr.huszonegy.world,47.4979,19.0402
|
||||
bitcoiner.social,39.1585,-94.5728
|
||||
nostr-02.yakihonne.com,1.32123,103.695
|
||||
vitor.nostr1.com,40.7128,-74.006
|
||||
relay.wavlake.com,41.2619,-95.8608
|
||||
librerelay.aaroniumii.com,40.7357,-74.1724
|
||||
gnostr.com,42.6978,23.3246
|
||||
relay.nostrdice.com,-33.8688,151.209
|
||||
nostr-dev.wellorder.net,45.5201,-122.99
|
||||
strfry.felixzieger.de,50.1013,8.62643
|
||||
relay.ngengine.org,43.6532,-79.3832
|
||||
relay.wolfcoil.com,35.6092,139.73
|
||||
relay.coinos.io,40.7357,-74.1724
|
||||
relay.13room.space,40.7357,-74.1724
|
||||
relay.siamdev.cc,13.8434,100.363
|
||||
relay.bitcoinveneto.org,64.1466,-21.9426
|
||||
fenrir-s.notoshi.win,43.6532,-79.3832
|
||||
relay.internationalright-wing.org,-22.5022,-48.7114
|
||||
slick.mjex.me,39.048,-77.4817
|
||||
nostr.camalolo.com,24.1469,120.684
|
||||
nostr.88mph.life,43.6532,-79.3832
|
||||
nostrelay.circum.space,52.3676,4.90414
|
||||
relay.dwadziesciajeden.pl,52.2297,21.0122
|
||||
nostr.luisschwab.net,43.6532,-79.3832
|
||||
relay.goodmorningbitcoin.com,43.6532,-79.3832
|
||||
strfry.openhoofd.nl,51.9229,4.40833
|
||||
noxir.kpherox.dev,34.8587,135.509
|
||||
relay.nostr.band,60.1699,24.9384
|
||||
r.lostr.net,52.3676,4.90414
|
||||
nostr.now,36.55,139.733
|
||||
relay.endfiat.money,40.7128,-74.006
|
||||
offchain.pub,47.6743,-117.112
|
||||
nostr.kalf.org,52.3676,4.90414
|
||||
wot.dergigi.com,64.1476,-21.9392
|
||||
relay.hasenpfeffr.com,39.0438,-77.4874
|
||||
relayb.uid.ovh,43.6532,-79.3832
|
||||
relay.bitcoindistrict.org,40.7357,-74.1724
|
||||
nostr-relay.amethyst.name,39.0438,-77.4874
|
||||
nostr-relay.online,40.7357,-74.1724
|
||||
relay.credenso.cafe,43.3601,-80.3127
|
||||
trizone.dev,1.35208,103.82
|
||||
relay.nostr.net,50.4754,12.3683
|
||||
nostr-02.czas.top,53.471,9.88208
|
||||
relay.sigit.io,50.4754,12.3683
|
||||
relay.nostr.vet,52.6467,4.7395
|
||||
relay.vrtmrz.net,40.7357,-74.1724
|
||||
khatru.nostrver.se,51.8933,4.42083
|
||||
relay.illuminodes.com,47.6061,-122.333
|
||||
relay01.lnfi.network,39.0997,-94.5786
|
||||
relay.javi.space,43.4633,11.8796
|
||||
nostrelites.org,41.8781,-87.6298
|
||||
relay.chorus.community,50.1109,8.68213
|
||||
relay.wavefunc.live,34.0362,-118.443
|
||||
shu04.shugur.net,25.2604,55.2989
|
||||
dev-relay.lnfi.network,39.0997,-94.5786
|
||||
relay.jeffg.fyi,43.6532,-79.3832
|
||||
nostr.davidebtc.me,50.1109,8.68213
|
||||
relay.fr13nd5.com,52.5233,13.3426
|
||||
wot.tealeaf.dev,33.7488,-84.3877
|
||||
relay.bullishbounty.com,40.7357,-74.1724
|
||||
nostr.mikoshi.de,52.52,13.405
|
||||
relay-dev.satlantis.io,40.8302,-74.1299
|
||||
promo.nextblock.app,40.7357,-74.1724
|
||||
nostr.jerrynya.fun,31.2304,121.474
|
||||
nostr.oxtr.dev,50.4754,12.3683
|
||||
relay-rpi.edufeed.org,49.4543,11.0746
|
||||
relay.origin.land,35.6673,139.751
|
||||
relay.aloftus.io,34.0881,-118.379
|
||||
relay.nostr.place,32.7767,-96.797
|
||||
relay.cosmicbolt.net,37.3986,-121.964
|
||||
relay.21e6.cz,50.1682,14.0546
|
||||
relay.libernet.app,43.6532,-79.3832
|
||||
nostr-relay-1.trustlessenterprise.com,40.7357,-74.1724
|
||||
relay.nostromo.social,49.4543,11.0746
|
||||
relay.magiccity.live,25.8128,-80.2377
|
||||
nostr.coincards.com,53.5501,-113.469
|
||||
prl.plus,38.9072,-77.0369
|
||||
relay.unknown.cloud,40.7357,-74.1724
|
||||
nostr.ovia.to,40.7128,-74.006
|
||||
alien.macneilmediagroup.com,40.7357,-74.1724
|
||||
relay.mattybs.lol,40.7357,-74.1724
|
||||
nostr.blankfors.se,60.1699,24.9384
|
||||
relay2.ngengine.org,40.7357,-74.1724
|
||||
nostr-rs-relay.dev.fedibtc.com,39.0438,-77.4874
|
||||
nostr.casa21.space,43.6532,-79.3832
|
||||
nostr.satstralia.com,64.1476,-21.9392
|
||||
relay.moinsen.com,50.4754,12.3683
|
||||
relay.arx-ccn.com,50.4754,12.3683
|
||||
relay03.lnfi.network,39.0997,-94.5786
|
||||
relay.nostr.wirednet.jp,34.706,135.493
|
||||
relay.satlantis.io,32.8769,-80.0114
|
||||
nostr-relay.zimage.com,34.282,-118.439
|
||||
nostr.liberty.fans,36.9104,-89.5875
|
||||
relay.snort.social,40.7357,-74.1724
|
||||
black.nostrcity.club,41.8781,-87.6298
|
||||
espelho.girino.org,43.6532,-79.3832
|
||||
relay.damus.io,43.6532,-79.3832
|
||||
nos.xmark.cc,50.6924,3.20113
|
||||
orangesync.tech,50.1109,8.68213
|
||||
inbox.azzamo.net,52.2633,21.0283
|
||||
nostr.calitabby.net,39.9268,-75.0246
|
||||
nostr-01.uid.ovh,43.6532,-79.3832
|
||||
wot.soundhsa.com,33.1384,-95.6011
|
||||
ribo.af.nostria.app,-26.2041,28.0473
|
||||
nostr.rblb.it,43.4633,11.8796
|
||||
nr.yay.so,46.2126,6.1154
|
||||
relay.stream.labs.h3.se,59.4016,17.9455
|
||||
schnorr.me,40.7357,-74.1724
|
||||
dizzyspells.nostr1.com,40.7057,-74.0136
|
||||
relay.islandbitcoin.com,12.8498,77.6545
|
||||
freeben666.fr,43.1204,6.12857
|
||||
relay.letsfo.com,51.098,17.0321
|
||||
relay.orangepill.ovh,49.1689,-0.358841
|
||||
relay.usefusion.ai,38.7134,-78.1591
|
||||
relay.toastr.net,40.8054,-74.0241
|
||||
relay.artx.market,43.652,-79.3633
|
||||
nostr.thebiglake.org,32.71,-96.6745
|
||||
wot.sebastix.social,51.8933,4.42083
|
||||
relay.agora.social,50.7383,15.0648
|
||||
wot.shaving.kiwi,40.7128,-74.006
|
||||
pyramid.fiatjaf.com,51.5072,-0.127586
|
||||
relay.freeplace.nl,52.3676,4.90414
|
||||
nostr.tac.lol,47.4748,-122.273
|
||||
nostr.4rs.nl,49.0291,8.35696
|
||||
wot.nostr.party,36.1627,-86.7816
|
||||
relay04.lnfi.network,39.0997,-94.5786
|
||||
relay.fundstr.me,42.3601,-71.0589
|
||||
relay.lifpay.me,1.35208,103.82
|
||||
relay.upleb.uk,52.2297,21.0122
|
||||
nostr-verified.wellorder.net,45.5201,-122.99
|
||||
nostr.vulpem.com,49.4543,11.0746
|
||||
librewot.aaroniumii.com,43.6532,-79.3832
|
||||
relay.zone667.com,60.1699,24.9384
|
||||
nostr.hekster.org,37.3986,-121.964
|
||||
nostr.snowbla.de,60.1699,24.9384
|
||||
cyberspace.nostr1.com,40.7057,-74.0136
|
||||
nostr-02.uid.ovh,40.7357,-74.1724
|
||||
strfry.elswa-dev.online,48.8566,2.35222
|
||||
nostr.plantroon.com,50.1013,8.62643
|
||||
relay.cypherflow.ai,48.8566,2.35222
|
||||
ribo.eu.nostria.app,52.3676,4.90414
|
||||
nostrcheck.me,43.6532,-79.3832
|
||||
relay.etch.social,41.2619,-95.8608
|
||||
relay.holzeis.me,43.6532,-79.3832
|
||||
nostr.mom,50.4754,12.3683
|
||||
wheat.happytavern.co,43.6532,-79.3832
|
||||
relay.guggero.org,47.3769,8.54169
|
||||
nostr.faultables.net,40.7357,-74.1724
|
||||
nostr-pub.wellorder.net,45.5201,-122.99
|
||||
purpura.cloud,43.6532,-79.3832
|
||||
fanfares.nostr1.com,40.7128,-74.006
|
||||
nostr-03.dorafactory.org,1.35208,103.82
|
||||
ribo.us.nostria.app,41.5868,-93.625
|
||||
temp.iris.to,43.6532,-79.3832
|
||||
relay.seq1.net,40.7128,-74.006
|
||||
ithurtswhenip.ee,51.223,6.78245
|
||||
relay.nostrcheck.me,43.6532,-79.3832
|
||||
nostr.zenon.network,43.5009,-70.4428
|
||||
nostr.red5d.dev,40.7357,-74.1724
|
||||
relay.puresignal.news,40.7357,-74.1724
|
||||
relay.lumina.rocks,49.0291,8.35695
|
||||
nostr.smartflowsocial.com,40.7357,-74.1724
|
||||
relay.mwaters.net,50.9871,2.12554
|
||||
nostr.noones.com,50.1109,8.68213
|
||||
relay.fountain.fm,39.0997,-94.5786
|
||||
nostr.0x7e.xyz,47.4988,8.72369
|
||||
nostr-01.yakihonne.com,1.32123,103.695
|
||||
orangepiller.org,60.1699,24.9384
|
||||
relay.0xchat.com,1.35208,103.82
|
||||
articles.layer3.news,37.3387,-121.885
|
||||
purplerelay.com,50.1109,8.68213
|
||||
nostr.makibisskey.work,40.7357,-74.1724
|
||||
nostr.bitcoiner.social,39.1585,-94.5728
|
||||
wot.sudocarlos.com,51.5072,-0.127586
|
||||
relay.notoshi.win,13.4166,101.335
|
||||
a.nos.lol,50.4754,12.3683
|
||||
relay.evanverma.com,40.8302,-74.1299
|
||||
no.str.cr,9.92857,-84.0528
|
||||
mhp258zrpiiwn.clorecloud.net,43.6532,-79.3832
|
||||
nostr.rtvslawenia.com,49.4543,11.0746
|
||||
nostr-relay.psfoundation.info,39.0438,-77.4874
|
||||
strfry.shock.network,41.8959,-88.2169
|
||||
nostr.myshosholoza.co.za,52.3676,4.90414
|
||||
relay.samt.st,40.8302,-74.1299
|
||||
nostr.azzamo.net,52.2633,21.0283
|
||||
premium.primal.net,40.7357,-74.1724
|
||||
relay.npubhaus.com,40.7357,-74.1724
|
||||
nostr.lostr.space,43.6532,-79.3832
|
||||
nostr-relay.cbrx.io,40.7357,-74.1724
|
||||
nostr-relay.online,40.7357,-74.1724
|
||||
relay.bullishbounty.com,40.7357,-74.1724
|
||||
nostr.kalf.org,52.3676,4.90414
|
||||
relay.hook.cafe,40.7357,-74.1724
|
||||
nostrcheck.me,43.6532,-79.3832
|
||||
relay.vrtmrz.net,40.7357,-74.1724
|
||||
nostr.notribe.net,40.8302,-74.1299
|
||||
santo.iguanatech.net,40.8302,-74.1299
|
||||
relay.bitcoinartclock.com,50.4754,12.3683
|
||||
nostr.rikmeijer.nl,50.4754,12.3683
|
||||
relay.primal.net,40.7357,-74.1724
|
||||
nostr.spaceshell.xyz,40.7128,-74.006
|
||||
relay.electriclifestyle.com,26.2897,-80.1293
|
||||
nos.lol,50.4754,12.3683
|
||||
relay.notoshi.win,13.4166,101.335
|
||||
nostrelites.org,41.8781,-87.6298
|
||||
nostr-02.czas.top,53.471,9.88208
|
||||
relay.2nix.de,60.1699,24.9384
|
||||
nostr.faultables.net,43.6532,-79.3832
|
||||
nostr.noones.com,50.1109,8.68213
|
||||
relay.nostromo.social,49.4543,11.0746
|
||||
keys.nostr1.com,40.7057,-74.0136
|
||||
relay.toastr.net,40.8054,-74.0241
|
||||
nostr.spicyz.io,40.7357,-74.1724
|
||||
shu04.shugur.net,25.2604,55.2989
|
||||
relay-testnet.k8s.layer3.news,37.3387,-121.885
|
||||
relay.freeplace.nl,52.3676,4.90414
|
||||
relay.wolfcoil.com,35.6092,139.73
|
||||
relay2.ngengine.org,43.6532,-79.3832
|
||||
nostr.davidebtc.me,50.1109,8.68213
|
||||
inbox.azzamo.net,52.2633,21.0283
|
||||
relay.arx-ccn.com,50.4754,12.3683
|
||||
nostr2.girino.org,43.6532,-79.3832
|
||||
nostr.camalolo.com,24.1469,120.684
|
||||
nostr.mom,50.4754,12.3683
|
||||
relayone.soundhsa.com,33.1384,-95.6011
|
||||
relay.zone667.com,60.1699,24.9384
|
||||
nr.yay.so,46.2126,6.1154
|
||||
r.lostr.net,52.3676,4.90414
|
||||
zap.watch,45.5029,-73.5723
|
||||
relay.evanverma.com,40.8302,-74.1299
|
||||
nostr.sagaciousd.com,49.2827,-123.121
|
||||
dev-nostr.bityacht.io,25.0797,121.234
|
||||
relay.dwadziesciajeden.pl,52.2297,21.0122
|
||||
nostr.mehdibekhtaoui.com,49.4939,-1.54813
|
||||
nostr.night7.space,50.4754,12.3683
|
||||
wot.basspistol.org,49.4521,11.0767
|
||||
nostr.hekster.org,37.3986,-121.964
|
||||
relay.lumina.rocks,49.0291,8.35695
|
||||
offchain.pub,36.1809,-115.241
|
||||
satsage.xyz,37.3986,-121.964
|
||||
nostr.openhoofd.nl,51.9229,4.40833
|
||||
nostrelay.memory-art.xyz,43.6532,-79.3832
|
||||
nostr-02.yakihonne.com,1.32123,103.695
|
||||
yabu.me,35.6092,139.73
|
||||
relay.magiccity.live,25.8128,-80.2377
|
||||
wot.soundhsa.com,33.1384,-95.6011
|
||||
nostr-rs-relay.dev.fedibtc.com,39.0438,-77.4874
|
||||
relay.upleb.uk,52.2297,21.0122
|
||||
soloco.nl,40.7357,-74.1724
|
||||
nostr.plantroon.com,50.1013,8.62643
|
||||
relay.angor.io,48.1046,11.6002
|
||||
relay.sigit.io,50.4754,12.3683
|
||||
khatru.nostrver.se,51.8933,4.42083
|
||||
nostrelay.circum.space,51.2217,6.77616
|
||||
nproxy.kristapsk.lv,60.1699,24.9384
|
||||
nostr.chaima.info,51.223,6.78245
|
||||
nostr.bilthon.dev,25.8128,-80.2377
|
||||
nostr.azzamo.net,52.2633,21.0283
|
||||
relay.fr13nd5.com,52.5233,13.3426
|
||||
nostr.agentcampfire.com,50.8933,6.05805
|
||||
relay.uid.ovh,43.6532,-79.3832
|
||||
nostr-rs-relay-ishosta.phamthanh.me,40.7357,-74.1724
|
||||
wot.sovbit.host,64.1466,-21.9426
|
||||
nostr-relay.cbrx.io,43.6532,-79.3832
|
||||
relay.tagayasu.xyz,43.6715,-79.38
|
||||
relay.nostr.wirednet.jp,34.706,135.493
|
||||
wot.nostr.place,30.2672,-97.7431
|
||||
relay.libernet.app,43.6532,-79.3832
|
||||
purpura.cloud,43.6532,-79.3832
|
||||
adre.su,59.9311,30.3609
|
||||
strfry.felixzieger.de,50.1013,8.62643
|
||||
nostr-verified.wellorder.net,45.5201,-122.99
|
||||
relay.islandbitcoin.com,12.8498,77.6545
|
||||
gnostr.com,42.6978,23.3246
|
||||
relay.davidebtc.me,50.1109,8.68213
|
||||
freelay.sovbit.host,64.1476,-21.9392
|
||||
nostr.spaceshell.xyz,43.6532,-79.3832
|
||||
nostr.red5d.dev,43.6532,-79.3832
|
||||
relay.nostriches.club,43.6532,-79.3832
|
||||
relay.basspistol.org,46.2044,6.14316
|
||||
relay.ditto.pub,43.6532,-79.3832
|
||||
nostr.rtvslawenia.com,49.4543,11.0746
|
||||
relay.stream.labs.h3.se,59.4016,17.9455
|
||||
a.nos.lol,50.4754,12.3683
|
||||
relay.nostraddress.com,40.7357,-74.1724
|
||||
dev-relay.lnfi.network,39.0997,-94.5786
|
||||
relay.cosmicbolt.net,37.3986,-121.964
|
||||
relay03.lnfi.network,39.0997,-94.5786
|
||||
relay04.lnfi.network,39.0997,-94.5786
|
||||
nostr.snowbla.de,60.1699,24.9384
|
||||
santo.iguanatech.net,40.8302,-74.1299
|
||||
nostr.myshosholoza.co.za,52.3676,4.90414
|
||||
nostr-01.yakihonne.com,1.32123,103.695
|
||||
relay.usefusion.ai,38.7134,-78.1591
|
||||
relay.nostr.place,32.7767,-96.797
|
||||
relay.bitcoinartclock.com,50.4754,12.3683
|
||||
nostr.coincards.com,53.5501,-113.469
|
||||
relay.coinos.io,40.7357,-74.1724
|
||||
relay01.lnfi.network,39.0997,-94.5786
|
||||
no.str.cr,9.92857,-84.0528
|
||||
relay.holzeis.me,43.6532,-79.3832
|
||||
relay.agora.social,50.7383,15.0648
|
||||
theoutpost.life,64.1476,-21.9392
|
||||
articles.layer3.news,37.3387,-121.885
|
||||
relay.primal.net,40.7357,-74.1724
|
||||
nostr-2.21crypto.ch,47.4988,8.72369
|
||||
relay.puresignal.news,40.7357,-74.1724
|
||||
pyramid.fiatjaf.com,51.5072,-0.127586
|
||||
relay.wavlake.com,41.2619,-95.8608
|
||||
nostr.0x7e.xyz,47.4988,8.72369
|
||||
relay.21e6.cz,50.1682,14.0546
|
||||
nostr-relay.zimage.com,34.282,-118.439
|
||||
relay.fundstr.me,42.3601,-71.0589
|
||||
temp.iris.to,43.6532,-79.3832
|
||||
nostr-dev.wellorder.net,45.5201,-122.99
|
||||
relay.agorist.space,52.3734,4.89406
|
||||
relay.mwaters.net,50.9871,2.12554
|
||||
wot.utxo.one,40.7128,-74.006
|
||||
relay.utxo.farm,35.6916,139.768
|
||||
relayrs.notoshi.win,43.6532,-79.3832
|
||||
r.bitcoinhold.net,43.6532,-79.3832
|
||||
nostr.huszonegy.world,47.4979,19.0402
|
||||
relay.nosto.re,51.8933,4.42083
|
||||
relay.0xchat.com,1.35208,103.82
|
||||
relay.nostrhub.tech,49.0291,8.35696
|
||||
purplerelay.com,50.1109,8.68213
|
||||
nostr.namek.link,40.7357,-74.1724
|
||||
nostr.thebiglake.org,32.71,-96.6745
|
||||
nostr-relay.psfoundation.info,39.0438,-77.4874
|
||||
wot.dergigi.com,64.1476,-21.9392
|
||||
nostr.carroarmato0.be,50.9928,3.26317
|
||||
nostr.21crypto.ch,47.4988,8.72369
|
||||
relay.nostr.net,50.4754,12.3683
|
||||
cyberspace.nostr1.com,40.7128,-74.006
|
||||
srtrelay.c-stellar.net,43.6532,-79.3832
|
||||
relay.nostrdice.com,-33.8688,151.209
|
||||
wot.sebastix.social,51.8933,4.42083
|
||||
nostr.satstralia.com,64.1476,-21.9392
|
||||
relay.illuminodes.com,47.6061,-122.333
|
||||
relay.letsfo.com,51.098,17.0321
|
||||
relay-dev.satlantis.io,40.8302,-74.1299
|
||||
mhp258zrpiiwn.clorecloud.net,43.6532,-79.3832
|
||||
relay.nostrhub.fr,48.1046,11.6002
|
||||
nostr.simplex.icu,50.8198,-1.08798
|
||||
wot.nostr.party,36.1627,-86.7816
|
||||
shu02.shugur.net,21.4902,39.2246
|
||||
nostr.casa21.space,40.7357,-74.1724
|
||||
schnorr.me,43.6532,-79.3832
|
||||
nostr.sathoarder.com,48.5734,7.75211
|
||||
nostr.lostr.space,43.6532,-79.3832
|
||||
relay.barine.co,40.7357,-74.1724
|
||||
nostr-relay.xbytez.io,50.6924,3.20113
|
||||
relay.javi.space,43.4633,11.8796
|
||||
nostr.smartflowsocial.com,40.7357,-74.1724
|
||||
bcast.seutoba.com.br,40.7357,-74.1724
|
||||
nostr.oxtr.dev,50.4754,12.3683
|
||||
nostr.n7ekb.net,47.4941,-122.294
|
||||
fanfares.nostr1.com,40.7057,-74.0136
|
||||
bcast.girino.org,43.6532,-79.3832
|
||||
nostr.vulpem.com,49.4543,11.0746
|
||||
shu05.shugur.net,48.8566,2.35222
|
||||
nostr-03.dorafactory.org,1.35208,103.82
|
||||
relay.artx.market,43.652,-79.3633
|
||||
relay.chorus.community,50.1109,8.68213
|
||||
nostream.breadslice.com,43.6532,-79.3832
|
||||
nostr-relay.nextblockvending.com,47.2343,-119.853
|
||||
relay.nostx.io,40.7357,-74.1724
|
||||
relay.olas.app,50.4754,12.3683
|
||||
strfry.elswa-dev.online,48.8566,2.35222
|
||||
nostr-relay.amethyst.name,39.0438,-77.4874
|
||||
relay.nostr.vet,52.6467,4.7395
|
||||
relay02.lnfi.network,39.0997,-94.5786
|
||||
nos.xmark.cc,50.6924,3.20113
|
||||
nostr-01.uid.ovh,40.7357,-74.1724
|
||||
nostr.liberty.fans,36.9104,-89.5875
|
||||
nostr.4rs.nl,49.0291,8.35696
|
||||
wheat.happytavern.co,40.7357,-74.1724
|
||||
fenrir-s.notoshi.win,40.7357,-74.1724
|
||||
relay.btcforplebs.com,43.6532,-79.3832
|
||||
nostr.now,36.55,139.733
|
||||
orangepiller.org,60.1699,24.9384
|
||||
relay.satlantis.io,32.8769,-80.0114
|
||||
relay.cypherflow.ai,48.8566,2.35222
|
||||
relay.orangepill.ovh,49.1689,-0.358841
|
||||
wot.brightbolt.net,47.6735,-116.781
|
||||
wot.tealeaf.dev,33.7488,-84.3877
|
||||
relay.wellorder.net,45.5201,-122.99
|
||||
ynostr.yael.at,60.1699,24.9384
|
||||
ribo.af.nostria.app,-26.2041,28.0473
|
||||
nostr.tadryanom.me,43.6532,-79.3832
|
||||
relay.jeffg.fyi,43.6532,-79.3832
|
||||
relay.bitcoinveneto.org,64.1466,-21.9426
|
||||
nostr.data.haus,50.4754,12.3683
|
||||
relay.varke.eu,52.6921,6.19372
|
||||
relay.artiostr.ch,40.7357,-74.1724
|
||||
relay.moinsen.com,50.4754,12.3683
|
||||
nostr.makibisskey.work,40.7357,-74.1724
|
||||
relay.snort.social,40.7357,-74.1724
|
||||
premium.primal.net,43.6532,-79.3832
|
||||
relay.getsafebox.app,43.6532,-79.3832
|
||||
nostr-relay-1.trustlessenterprise.com,43.6532,-79.3832
|
||||
relay.lifpay.me,1.35208,103.82
|
||||
strfry.openhoofd.nl,51.9229,4.40833
|
||||
nostrcheck.tnsor.network,43.6532,-79.3832
|
||||
noxir.kpherox.dev,34.8587,135.509
|
||||
relay5.bitransfer.org,43.6532,-79.3832
|
||||
ribo.us.nostria.app,41.5868,-93.625
|
||||
nostr-pub.wellorder.net,45.5201,-122.99
|
||||
relay.mostro.network,40.8302,-74.1299
|
||||
wot.nostr.net,40.7357,-74.1724
|
||||
relay.nostriot.com,41.5695,-83.9786
|
||||
nostr.mikoshi.de,50.1109,8.68213
|
||||
relay.mattybs.lol,40.7357,-74.1724
|
||||
relay.nostr.band,60.1699,24.9384
|
||||
strfry.shock.network,41.8959,-88.2169
|
||||
x.kojira.io,43.6532,-79.3832
|
||||
relay.etch.social,41.2619,-95.8608
|
||||
relay.lightning.pub,41.8959,-88.2169
|
||||
relay.damus.io,43.6532,-79.3832
|
||||
relay.degmods.com,50.4754,12.3683
|
||||
relay.nostrcheck.me,43.6532,-79.3832
|
||||
relay.credenso.cafe,43.3601,-80.3127
|
||||
shu01.shugur.net,21.4902,39.2246
|
||||
relay.ru.ac.th,13.7584,100.622
|
||||
relay.goodmorningbitcoin.com,40.7357,-74.1724
|
||||
relay.bitcoindistrict.org,43.6532,-79.3832
|
||||
black.nostrcity.club,41.8781,-87.6298
|
||||
nostr.jerrynya.fun,31.2304,121.474
|
||||
orangesync.tech,50.1109,8.68213
|
||||
nostr.blankfors.se,60.1699,24.9384
|
||||
relay.chatbett.de,28.0199,-82.5248
|
||||
relay.siamdev.cc,13.8434,100.363
|
||||
relay.seq1.net,40.7128,-74.006
|
||||
dizzyspells.nostr1.com,40.7057,-74.0136
|
||||
strfry.bonsai.com,37.8715,-122.273
|
||||
nostr.stakey.net,52.3676,4.90414
|
||||
ithurtswhenip.ee,51.223,6.78245
|
||||
relay.mccormick.cx,52.3563,4.95714
|
||||
alien.macneilmediagroup.com,43.6532,-79.3832
|
||||
relay-rpi.edufeed.org,49.4543,11.0746
|
||||
relay.aloftus.io,34.0881,-118.379
|
||||
nostr.girino.org,40.7357,-74.1724
|
||||
nostr.einundzwanzig.space,50.1109,8.68213
|
||||
nostr.rikmeijer.nl,50.4754,12.3683
|
||||
relay2.angor.io,48.1046,11.6002
|
||||
nostr.zenon.network,43.5009,-70.4428
|
||||
relay.internationalright-wing.org,-22.5022,-48.7114
|
||||
relayb.uid.ovh,40.7357,-74.1724
|
||||
prl.plus,38.9072,-77.0369
|
||||
relay.ngengine.org,40.7357,-74.1724
|
||||
nostr.tac.lol,47.4748,-122.273
|
||||
nostr.88mph.life,43.6532,-79.3832
|
||||
relay.13room.space,40.7357,-74.1724
|
||||
relay.hasenpfeffr.com,39.0438,-77.4874
|
||||
nostr.zoracle.org,45.6018,-121.185
|
||||
nostr.luisschwab.net,40.7357,-74.1724
|
||||
relay.electriclifestyle.com,26.2897,-80.1293
|
||||
vitor.nostr1.com,40.7128,-74.006
|
||||
relay.origin.land,35.6673,139.751
|
||||
alienos.libretechsystems.xyz,55.4724,9.87335
|
||||
relay.fountain.fm,39.0997,-94.5786
|
||||
wot.dtonon.com,43.6532,-79.3832
|
||||
nostr.hifish.org,47.4043,8.57398
|
||||
ribo.eu.nostria.app,52.3676,4.90414
|
||||
|
||||
|
@ -84,6 +84,10 @@ class BluetoothConnectionManager(
|
||||
|
||||
// Public property for address-peer mapping
|
||||
val addressPeerMap get() = connectionTracker.addressPeerMap
|
||||
|
||||
// Expose first-announce helpers to higher layers
|
||||
fun noteAnnounceReceived(address: String) { connectionTracker.noteAnnounceReceived(address) }
|
||||
fun hasSeenFirstAnnounce(address: String): Boolean = connectionTracker.hasSeenFirstAnnounce(address)
|
||||
|
||||
init {
|
||||
powerManager.delegate = this
|
||||
|
||||
@ -30,6 +30,8 @@ class BluetoothConnectionTracker(
|
||||
private val connectedDevices = ConcurrentHashMap<String, DeviceConnection>()
|
||||
private val subscribedDevices = CopyOnWriteArrayList<BluetoothDevice>()
|
||||
val addressPeerMap = ConcurrentHashMap<String, String>()
|
||||
// Track whether we have seen the first ANNOUNCE on a given device connection
|
||||
private val firstAnnounceSeen = ConcurrentHashMap<String, Boolean>()
|
||||
|
||||
// RSSI tracking from scan results (for devices we discover but may connect as servers)
|
||||
private val scanRSSI = ConcurrentHashMap<String, Int>()
|
||||
@ -91,6 +93,8 @@ class BluetoothConnectionTracker(
|
||||
Log.d(TAG, "Tracker: Adding device connection for $deviceAddress (isClient: ${deviceConn.isClient}")
|
||||
connectedDevices[deviceAddress] = deviceConn
|
||||
pendingConnections.remove(deviceAddress)
|
||||
// Mark as awaiting first ANNOUNCE on this connection
|
||||
firstAnnounceSeen[deviceAddress] = false
|
||||
}
|
||||
|
||||
/**
|
||||
@ -194,7 +198,8 @@ class BluetoothConnectionTracker(
|
||||
}
|
||||
|
||||
// Update connection attempt atomically
|
||||
val attempts = (currentAttempt?.attempts ?: 0) + 1
|
||||
// If the previous attempt window expired, reset backoff to 1; otherwise increment
|
||||
val attempts = if (currentAttempt?.isExpired() == true) 1 else (currentAttempt?.attempts ?: 0) + 1
|
||||
pendingConnections[deviceAddress] = ConnectionAttempt(attempts)
|
||||
Log.d(TAG, "Tracker: Added pending connection for $deviceAddress (attempts: $attempts)")
|
||||
return true
|
||||
@ -279,7 +284,7 @@ class BluetoothConnectionTracker(
|
||||
subscribedDevices.removeAll { it.address == deviceAddress }
|
||||
addressPeerMap.remove(deviceAddress)
|
||||
}
|
||||
pendingConnections.remove(deviceAddress)
|
||||
firstAnnounceSeen.remove(deviceAddress)
|
||||
Log.d(TAG, "Cleaned up device connection for $deviceAddress")
|
||||
}
|
||||
|
||||
@ -313,6 +318,21 @@ class BluetoothConnectionTracker(
|
||||
addressPeerMap.clear()
|
||||
pendingConnections.clear()
|
||||
scanRSSI.clear()
|
||||
firstAnnounceSeen.clear()
|
||||
}
|
||||
|
||||
/**
|
||||
* Mark that we have received the first ANNOUNCE over this device connection.
|
||||
*/
|
||||
fun noteAnnounceReceived(deviceAddress: String) {
|
||||
firstAnnounceSeen[deviceAddress] = true
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether the first ANNOUNCE has been seen for a device connection.
|
||||
*/
|
||||
fun hasSeenFirstAnnounce(deviceAddress: String): Boolean {
|
||||
return firstAnnounceSeen[deviceAddress] == true
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -408,25 +408,17 @@ class BluetoothMeshService(private val context: Context) {
|
||||
val deviceAddress = routed.relayAddress
|
||||
val pid = routed.peerID
|
||||
if (deviceAddress != null && pid != null) {
|
||||
// Only set mapping if not already mapped
|
||||
if (!connectionManager.addressPeerMap.containsKey(deviceAddress)) {
|
||||
// First ANNOUNCE over a device connection defines a direct neighbor.
|
||||
if (!connectionManager.hasSeenFirstAnnounce(deviceAddress)) {
|
||||
// Bind or rebind this device address to the announcing peer
|
||||
connectionManager.addressPeerMap[deviceAddress] = pid
|
||||
Log.d(TAG, "Mapped device $deviceAddress to peer $pid on ANNOUNCE")
|
||||
connectionManager.noteAnnounceReceived(deviceAddress)
|
||||
Log.d(TAG, "Mapped device $deviceAddress to peer $pid on FIRST-ANNOUNCE for this connection")
|
||||
|
||||
// Mark this peer as directly connected for UI
|
||||
try {
|
||||
peerManager.getPeerInfo(pid)?.let {
|
||||
// Set direct connection flag
|
||||
// (This will also trigger a peer list update)
|
||||
peerManager.setDirectConnection(pid, true)
|
||||
// Also push reactive directness state to UI (best-effort)
|
||||
try {
|
||||
// Note: UI observes via didUpdatePeerList, but we can also update ChatState on a timer
|
||||
} catch (_: Exception) { }
|
||||
}
|
||||
} catch (_: Exception) { }
|
||||
// Mark as directly connected (upgrades from routed if needed)
|
||||
try { peerManager.setDirectConnection(pid, true) } catch (_: Exception) { }
|
||||
|
||||
// Schedule initial sync for this new directly connected peer only
|
||||
// Initial sync for this newly direct peer
|
||||
try { gossipSyncManager.scheduleInitialSyncToPeer(pid, 1_000) } catch (_: Exception) { }
|
||||
}
|
||||
}
|
||||
@ -957,12 +949,11 @@ class BluetoothMeshService(private val context: Context) {
|
||||
* Send leave announcement
|
||||
*/
|
||||
private fun sendLeaveAnnouncement() {
|
||||
val nickname = delegate?.getNickname() ?: myPeerID
|
||||
val packet = BitchatPacket(
|
||||
type = MessageType.LEAVE.value,
|
||||
ttl = MAX_TTL,
|
||||
senderID = myPeerID,
|
||||
payload = nickname.toByteArray()
|
||||
payload = byteArrayOf()
|
||||
)
|
||||
|
||||
// Sign the packet before broadcasting
|
||||
|
||||
@ -50,33 +50,25 @@ class SecurityManager(private val encryptionService: EncryptionService, private
|
||||
return false
|
||||
}
|
||||
|
||||
// Validate packet payload
|
||||
if (packet.payload.isEmpty()) {
|
||||
Log.d(TAG, "Dropping packet with empty payload")
|
||||
return false
|
||||
}
|
||||
|
||||
// Replay attack protection (same 5-minute window as iOS)
|
||||
val currentTime = System.currentTimeMillis()
|
||||
val packetTime = packet.timestamp.toLong()
|
||||
val timeDiff = kotlin.math.abs(currentTime - packetTime)
|
||||
|
||||
// if (timeDiff > MESSAGE_TIMEOUT) {
|
||||
// Log.d(TAG, "Dropping old packet from $peerID, time diff: ${timeDiff/1000}s")
|
||||
// return false
|
||||
// }
|
||||
val messageType = MessageType.fromValue(packet.type)
|
||||
|
||||
// Duplicate detection
|
||||
val messageID = generateMessageID(packet, peerID)
|
||||
if (processedMessages.contains(messageID)) {
|
||||
Log.d(TAG, "Dropping duplicate packet: $messageID")
|
||||
return false
|
||||
if (messageType != MessageType.ANNOUNCE) {
|
||||
if (processedMessages.contains(messageID)) {
|
||||
Log.d(TAG, "Dropping duplicate packet: $messageID")
|
||||
return false
|
||||
}
|
||||
// Add to processed messages
|
||||
processedMessages.add(messageID)
|
||||
messageTimestamps[messageID] = currentTime
|
||||
} else {
|
||||
// Do not deduplicate ANNOUNCE at the security layer.
|
||||
// They are signed/idempotent and we need to ensure first-announce per-connection can bind.
|
||||
}
|
||||
|
||||
// Add to processed messages
|
||||
processedMessages.add(messageID)
|
||||
messageTimestamps[messageID] = currentTime
|
||||
|
||||
// NEW: Signature verification logging (not rejecting yet)
|
||||
verifyPacketSignatureWithLogging(packet, peerID)
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user