导航栏

Home

  • wss://relay.damus.io
  • wss://nostr-pub.wellorder.net
  • wss://nostr.mom
  • wss://nostr.slothy.win
  • wss://relay.stoner.com
  • wss://nostr.einundzwanzig.space
  • wss://nos.lol
  • wss://relay.nostr.band
  • wss://no.str.cr
  • wss://nostr-relay.schnitzel.world
  • wss://relay.nostr.com.au
  • wss://knostr.neutrine.com
  • wss://nostr.nodeofsven.com
  • wss://nostr.vulpem.com
  • wss://nostr-verif.slothy.win
  • wss://relay.lexingtonbitcoin.org
  • wss://nostr-1.nbo.angani.co
  • wss://relay.wellorder.net
  • wss://nostr.easydns.ca
  • wss://relay.dwadziesciajeden.pl
  • wss://relay.orangepill.dev
  • wss://e.nos.lol
  • wss://ragnar-relay.com
  • wss://nostr.data.haus
  • wss://nostr.wine
  • wss://nostr.koning-degraaf.nl
  • wss://nostr.thank.eu
  • wss://relay.hamnet.io
  • wss://nostr.sidnlabs.nl
  • wss://nostr.inosta.cc
  • wss://nostr21.com
  • wss://nostr.ch3n2k.com
  • wss://relay.nostrview.com
  • wss://relay.nostromo.social
  • wss://offchain.pub
  • wss://relay.nostr.wirednet.jp
  • wss://nostr.l00p.org
  • wss://lightningrelay.com
  • wss://bitcoinmaximalists.online
  • wss://private.red.gb.net
  • wss://relay.nostrid.com
  • wss://relay.nostrcheck.me
  • wss://nostrelay.yeghro.site
  • wss://nostrue.com
  • wss://nostr.topeth.info
  • wss://nostr.bitcoiner.social
  • wss://nostr.spaceshell.xyz
  • wss://nostr.roundrockbitcoiners.com
  • wss://relay.nostrology.org
  • wss://nostr-dev.wellorder.net
  • wss://relay.snort.social
  • wss://nr.yay.so
  • wss://nostr.lu.ke
  • wss://atlas.nostr.land
  • wss://nostr.pjv.me
  • wss://brb.io
  • wss://eden.nostr.land
  • wss://nostr-verified.wellorder.net
  • wss://nostr.noones.com
  • wss://relay.nostr.nu
  • wss://nostr-relay.bitcoin.ninja
  • wss://paid.no.str.cr
  • wss://freespeech.casa
  • wss://bitcoiner.social
  • wss://nostr.1f52b.xyz
  • wss://nostr.sebastix.dev
  • wss://nostr.cizmar.net
  • wss://n.wingu.se
  • wss://nostr.bitcoinplebs.de
  • wss://nostr.corebreach.com
  • wss://nostr.tools.global.id
  • wss://xmr.usenostr.org
  • wss://at.nostrworks.com
  • wss://nostr.sovbit.host
  • wss://nostr.1sat.org
  • wss://mastodon.cloud/api/v1/streaming
  • wss://nostr.256k1.dev
  • wss://relay.beta.fogtype.com
  • wss://rsslay.ch3n2k.com
  • wss://relay.nostr.bg
  • wss://nostr.primz.org
  • wss://relay.johnnyasantos.com
  • wss://btc.klendazu.com
  • wss://slick.mjex.me
  • wss://nostr.yael.at
  • wss://nostr.lorentz.is
  • wss://relay.nostrified.org
  • wss://nostr.orangepill.dev
  • wss://relay.primal.net
  • wss://nostr.cercatrova.me
  • wss://nostr.swiss-enigma.ch
  • wss://nostr-relay.derekross.me
  • wss://puravida.nostr.land
  • wss://nostr.sectiontwo.org
  • wss://nostr.oxtr.dev
  • wss://relay.s3x.social
  • wss://relay.ryzizub.com
  • wss://nostr.liberty.fans
  • wss://nostr.frostr.xyz
  • wss://nostr.ginuerzh.xyz
  • wss://nostr.d11n.net
  • wss://nostr.semisol.dev
  • wss://misskey.io
  • wss://nostr.namek.link
  • wss://nostr.gruntwerk.org
  • wss://relay.nostr.wf
  • wss://nostr.land
  • wss://relay.mostr.pub
  • wss://relay.nostrplebs.com
  • wss://purplepag.es
  • wss://yestr.me
  • wss://relay.nostr.ai
  • wss://paid.nostrified.org
  • wss://nostr-02.dorafactory.org
  • wss://nostr.zbd.gg
  • wss://relay.hodl.ar
  • wss://relay.nostr.sc
  • wss://feeds.nostr.band/nostrhispano
  • wss://nostr.middling.mydns.jp
  • wss://nostr.portemonero.com
  • wss://search.nos.today
  • wss://relay.minds.com/nostr/v1/ws
  • wss://welcome.nostr.wine
  • wss://yabu.me
  • wss://nrelay.c-stellar.net
  • wss://nostrja-kari.heguro.com
  • wss://nostr-relay.app
  • wss://rly.nostrkid.com
  • wss://nostr.filmweb.pl
  • wss://relay.utxo.one
  • wss://nostr.strits.dk
  • wss://relay.poster.place
  • wss://nostr.mining.sc
  • wss://nostr.xmr.rocks
  • wss://ithurtswhenip.ee
  • wss://powrelay.xyz
  • wss://relay.vanderwarker.family
  • wss://wc1.current.ninja
  • wss://nostr.ingwie.me
  • wss://nostr.gleeze.com
  • wss://relay.nostrify.io
  • wss://relay2.nostrchat.io
  • wss://relay1.nostrchat.io
  • wss://relay.devstr.org
  • wss://relay.nostr.hu
  • wss://nostr.hifish.org
  • wss://nostr2.sanhauf.com
  • wss://nostrja-kari-nip50.heguro.com
  • wss://nostr.rikmeijer.nl
  • wss://nostrua.com
  • wss://relay.nsecbunker.com
  • wss://nostr.hekster.org
  • wss://nostr.schorsch.fans
  • wss://nostr.reelnetwork.eu
  • wss://nostr.hexhex.online
  • wss://relay.wavlake.com
  • wss://relay.nostr.lighting
  • wss://nostr.sagaciousd.com
  • wss://nostr.fbxl.net
  • wss://multiplextr.coracle.social
  • wss://nostril.cam
  • wss://nostr.btc-library.com
  • wss://relay.getalby.com/v1
  • wss://rss.nos.social
  • wss://nostr.overmind.lol
  • wss://relay.nostrcn.com
  • wss://nostr-01.yakihonne.com
  • wss://nostr.fort-btc.club
  • wss://relay.bitcoinpark.com
  • wss://nostr01.counterclockwise.io
  • wss://relap.orzv.workers.dev
  • wss://christpill.nostr1.com
  • wss://relay.verified-nostr.com
  • wss://nostr.sathoarder.com
  • wss://wbc.nostr1.com
  • wss://nostr.is-defs.fun
  • wss://nostr.heliodex.cf
  • wss://nostr.4liberty.one
  • wss://f7z.io
  • wss://relay.casualcrypto.date
  • wss://relay.notmandatory.org
  • wss://fiatjaf.com
  • wss://relay.despera.space
  • wss://bitstack.app
  • wss://nostr-relay.psfoundation.info
  • wss://purplerelay.com
  • wss://relay.orangepill.ovh
  • wss://nostr.rubberdoll.cc
  • wss://relay.ingwie.me
  • wss://soloco.nl
  • wss://nostr.dlsouza.lol
  • wss://relay.kamp.site
  • wss://nostr.heavyrubberslave.com
  • wss://relay.keychat.io
  • wss://relay.froth.zone
  • wss://nostr.bitcoinist.org
  • wss://nostr.cloud.vinney.xyz
  • wss://relay.momostr.pink
  • wss://nosdrive.app/relay
  • wss://nostrrelay.win
  • wss://nostr.8777.ch
  • wss://unhostedwallet.com
  • wss://21ideas.nostr1.com
  • wss://nostr.stakey.net
  • wss://nostr.sats.li
  • wss://relay.guggero.org
  • wss://relay.noswhere.com
  • wss://unostr.site
  • wss://pyramid.fiatjaf.com
  • wss://frens.nostr1.com
  • wss://creatr.nostr.wine
  • wss://140.f7z.io
  • wss://a.nos.lol
  • wss://directory.yabu.me
  • wss://hist.nostr.land
  • wss://nostr.dodge.me.uk
  • wss://privateisland.club
  • wss://relay.weloveit.info
  • wss://relay.magiccity.live
  • wss://nostr.notribe.net
  • wss://relay.westernbtc.com
  • wss://relay.siamstr.com
  • wss://groups.0xchat.com
  • wss://theforest.nostr1.com
  • wss://problematic.network
  • wss://us.purplerelay.com
  • wss://nostr1.daedaluslabs.io
  • wss://relay.noderunners.network
  • wss://relay.azzamo.net
  • wss://bevo.nostr1.com
  • wss://freelay.sovbit.host
  • wss://relay.sebdev.io
  • wss://inbox.nostr.wine
  • wss://ditto.puhcho.me/relay
  • wss://nostr.t-rg.ws
  • wss://multiplexer.huszonegy.world
  • wss://nostr.huszonegy.world
  • wss://nostr.jcloud.es
  • wss://nostr.thurk.org
  • wss://dev-relay.kube.b-n.space
  • wss://relay.nos.social
  • wss://ditto.slothy.win/relay
  • wss://nostr.hashi.sbs
  • wss://paid.relay.vanderwarker.family
  • wss://nostr.javi.space
  • wss://gleasonator.dev/relay
  • wss://bucket.coracle.social
  • wss://relay.nsec.app
  • wss://relay.sepiropht.me
  • wss://nostr.kungfu-g.rip
  • wss://hotrightnow.nostr1.com
  • wss://relay.artx.market
  • wss://nfrelay.app
  • wss://relay.notoshi.win
  • wss://relay.highlighter.com
  • wss://relay.geyser.fund
  • wss://relay.minibits.cash
  • wss://nostr.petrkr.net/strfry
  • wss://n.ok0.org
  • wss://greensoul.space
  • wss://nostr-02.yakihonne.com
  • wss://nostr-03.dorafactory.org
  • wss://vitor.nostr1.com
  • wss://relay.lax1dude.net
  • wss://relay.zhoushen929.com
  • wss://relay.oke.minds.io/nostr/v1/ws
  • wss://strfry.corebreach.com
  • wss://relay.bitdevs.tw
  • wss://nostr.btczh.tw
  • wss://nostrich.adagio.tw
  • wss://nostr.zoel.network
  • wss://nostr.lifeonbtc.xyz
  • wss://nostr.se7enz.com
  • wss://thecitadel.nostr1.com
  • wss://mleku.nostr1.com
  • wss://nostr2.daedaluslabs.io
  • wss://fiatjaf.nostr1.com
  • wss://nostr.daedaluslabs.io
  • wss://xmr.ithurtswhenip.ee
  • wss://cellar.nostr.wine
  • wss://rkgk.moe
  • wss://nostr.self-determined.de
  • wss://nostr.gerbils.online
  • wss://jingle.carlos-cdb.top
  • wss://carlos-cdb.top
  • wss://bostr.online
  • wss://relays.diggoo.com
  • wss://jp.purplerelay.com
  • wss://ir.purplerelay.com
  • wss://me.purplerelay.com
  • wss://nostr.0x7e.xyz
  • wss://nostr.reckless.dev
  • wss://relay.nostr.net
  • wss://relay.fountain.fm
  • wss://v1250.planz.io/nostr
  • wss://relay.13room.space
  • wss://relay.usefusion.ai
  • wss://ae.purplerelay.com
  • wss://njump.me
  • wss://au.purplerelay.com
  • wss://in.purplerelay.com
  • wss://nosflare.plebes.fans
  • wss://nostr.at
  • wss://bostr.bitcointxoko.com
  • wss://nostria.space
  • wss://nostr.searx.is
  • wss://test.nfrelay.app
  • wss://relay.fanfares.io
  • wss://relay.varke.eu
  • wss://relay.nostr.jabber.ch
  • wss://relay.nostpy.lol
  • wss://relay.camelus.app
  • wss://nostr.myshosholoza.co.za
  • wss://nostr.ussenterprise.xyz
  • wss://nostr.dbtc.link
  • wss://ftp.halifax.rwth-aachen.de/nostr
  • wss://tw.purplerelay.com
  • wss://eu.purplerelay.com
  • wss://relay.benthecarman.com
  • wss://fabian.nostr1.com
  • wss://staging.yabu.me
  • wss://nostr.dmgd.monster
  • wss://testnet.plebnet.dev/nostrrelay/1
  • wss://hivetalk.nostr1.com
  • wss://relay.lawallet.ar
  • wss://relay.piazza.today
  • wss://relay.pleb.to
  • wss://orangepiller.org
  • wss://nostr.lopp.social
  • wss://ch.purplerelay.com
  • wss://loli.church
  • wss://adre.su
  • wss://misskey.04.si
  • wss://cache2.primal.net/v1
  • wss://relay.sincensura.org
  • wss://relay.moinsen.com
  • wss://relay.freeplace.nl
  • wss://cache1.primal.net/v1
  • wss://nostr.openordex.org
  • wss://rly.bopln.com
  • wss://relay.0v0.social
  • wss://nostr.psychoet.nexus
  • wss://relay.nostrr.de
  • wss://us.nostr.land
  • wss://srtrelay.c-stellar.net
  • wss://lnbits.papersats.io/nostrclient/api/v1/relay
  • wss://strfry.chatbett.de
  • wss://relay.nquiz.io
  • wss://nostr.plantroon.com
  • wss://nostr.jfischer.org
  • wss://relay.corpum.com
  • wss://relay.bostr.online
  • wss://lunchbox.sandwich.farm
  • wss://nr.rosano.ca
  • wss://nostr.happytavern.co
  • wss://novoa.nagoya
  • wss://misskey.takehi.to
  • wss://relay.satoshidnc.com
  • wss://nostr.novacisko.cz
  • wss://nsrelay.assilvestrar.club
  • wss://nostr.atitlan.io
  • wss://relay.livefreebtc.dev
  • wss://nostr.tavux.tech
  • wss://nostr.girino.org
  • wss://merrcurrup.railway.app
  • wss://nostr-dev.zbd.gg
  • wss://submarin.online
  • wss://social.camph.net
  • wss://relay.nostrich.cc
  • wss://relay.lumina.rocks
  • wss://profiles.nostr1.com
  • wss://rebelbase.social/relay
  • wss://support.nostr1.com
  • wss://relay.dev.bdw.to
  • wss://ca.purplerelay.com
  • wss://nostr.bitcoinvn.io
  • wss://auth.nostr1.com
  • wss://custom.fiatjaf.com
  • wss://hub.nostr-relay.app
  • wss://nostr.babyshark.win
  • wss://echo.websocket.org
  • wss://nostr.kosmos.org
  • wss://polnostr.xyz
  • wss://relay.refinery.coracle.tools
  • wss://user.kindpag.es
  • wss://nostr.hashbang.nl
  • wss://czas.live
  • wss://chorus.pjv.me
  • wss://relay.agorist.space
  • wss://bostr.cx.ms
  • wss://relay.nostrhub.fr
  • wss://groups.fiatjaf.com
  • wss://hodlbod.coracle.tools
  • wss://hk.purplerelay.com
  • wss://lnbits.satoshibox.io/nostrclient/api/v1/relay
  • wss://relay.cosmicbolt.net
  • wss://nostr.drafted.pro
  • wss://nostr.a2x.pub
  • wss://bostr.lightningspore.com
  • wss://nostr.intrepid18.com
  • wss://de.purplerelay.com
  • wss://obiurgator.thewhall.com
  • wss://nostr.madco.me
  • wss://relay.braydon.com
  • wss://nostr-relay.algotech.io
  • wss://relay.unknown.cloud
  • wss://relay.gems.xyz
  • wss://longhorn.bgp.rodeo
  • wss://notes.miguelalmodo.com
  • wss://onlynotes.lol
  • wss://relay.tagayasu.xyz
  • wss://relay.zone667.com
  • wss://nostr-relay.sn-media.com
  • wss://relay.mostro.network
  • wss://nostr.polyserv.xyz
  • wss://n3r.xyz
  • wss://relay5.bitransfer.org
  • wss://brisceaux.com
  • wss://nostr.faust.duckdns.org
  • wss://satellite.hzrd149.com
  • wss://gnost.faust.duckdns.org
  • wss://relay.jerseyplebs.com
  • wss://nostr.cxplay.org
  • wss://nostr.polonkai.eu
  • wss://libretechsystems.nostr1.com
  • wss://nostr.pailakapo.com
  • wss://relay.alex71btc.com
  • wss://cfrelay.puhcho.workers.dev
  • wss://kiwibuilders.nostr21.net
  • wss://nostr3.daedaluslabs.io
  • wss://relay1.xfire.to:
  • wss://nostr.brackrat.com
  • wss://relay.satlantis.io
  • wss://relay.test.nquiz.io
  • wss://relay.illuminodes.com
  • wss://relay.arrakis.lat
  • wss://cfrelay.haorendashu.workers.dev
  • wss://core.btcmap.org/nostrrelay/relay
  • wss://junxingwang.org
  • wss://relay2.angor.io
  • wss://relaypag.es
  • wss://nostr.skitso.business
  • wss://history.nostr.watch
  • wss://relay.oh-happy-day.xyz
  • wss://invillage-outvillage.com
  • wss://nostr-relay.cbrx.io
  • wss://tigs.nostr1.com
  • wss://misskey.design
  • wss://relay.nostrainsley.coracle.tools
  • wss://relay.cxplay.org
  • wss://relay.angor.io
  • wss://nostr.tbai.me:592
  • wss://strfry.iris.to
  • wss://orangesync.tech
  • wss://nostr.chaima.info
  • wss://relay.minibolt.info
  • wss://jingle.nostrver.se
  • wss://kr.purplerelay.com
  • wss://fl.purplerelay.com
  • wss://relay.chontit.win
  • wss://nostr.bilthon.dev
  • wss://relay.vengeful.eu
  • wss://dtonon.nostr1.com
  • wss://relay.gasteazi.net
  • wss://us.nostr.wine
  • wss://frjosh.nostr1.com
  • wss://relay.staging.geyser.fund
  • wss://nostr.yuhr.org
  • wss://relay.mattybs.lol
  • wss://sushi.ski
  • wss://relay.unsupervised.online
  • wss://nostr.bit4use.com
  • wss://prl.plus
  • wss://news.nos.social
  • wss://airchat.nostr1.com
  • wss://nortis.nostr1.com
  • wss://adeptus.cwharton.com
  • wss://relay.mycelium.social
  • wss://node.coincreek.com/nostrclient/api/v1/relay
  • wss://nostr2.girino.org
  • wss://relay.s-w.art
  • wss://nerostr.girino.org
  • wss://uk.purplerelay.com
  • wss://bostr.erechorse.com
  • wss://eostagram.com
  • wss://relay.coinos.io
  • wss://sendit.nosflare.com
  • wss://relay.nostraddress.com
  • wss://nostrelites.org
  • wss://wot.nostr.party
  • wss://wot.utxo.one
  • wss://haven.cyberhornet.net
  • wss://relay.customkeys.de
  • wss://relay.groups.nip29.com
  • wss://relay29.notoshi.win
  • wss://nostr.2h2o.io
  • wss://relay.nostriot.com
  • wss://relay.lem0n.cc
  • wss://relay.b1t.beer
  • wss://rocky.nostr1.com
  • wss://wot.sovbit.host
  • wss://relay.sovereign.app
  • wss://zap.watch
  • wss://zorrelay.libretechsystems.xyz
  • wss://sorrelay.libretechsystems.xyz
  • wss://mailbox.mw.leastauthority.com/v1
  • wss://memrelay.girino.org
  • wss://relay.lnfi.network
  • wss://wot.girino.org
  • wss://labour.fiatjaf.com
  • wss://wot.codingarena.top
  • wss://relay.nostrdice.com
  • wss://nostr.azzamo.net
  • wss://wot.azzamo.net
  • wss://wot.nostr.sats4.life
  • wss://wot.nostr.net
  • wss://api.freefrom.space/v1/ws
  • wss://wheat.happytavern.co
  • wss://chorus.bonsai.com
  • wss://strfry.bonsai.com
  • wss://wot.sebastix.social
  • wss://inner.sebastix.social
  • wss://haven.accioly.social
  • wss://relay.notestack.com
  • wss://relay.sigit.io
  • wss://satsage.xyz
  • wss://nostr.noderunners.network
  • wss://chronicle.puhcho.me
  • wss://haven.puhcho.me
  • wss://haven.calva.dev/inbox
  • wss://dergigi.nostr1.com
  • wss://wons.calva.dev
  • wss://thebarn.nostr1.com
  • wss://nostr.grooveix.com
  • wss://relay.rodbishop.nz/inbox
  • wss://travis-shears-nostr-relay-v2.fly.dev
  • wss://nostr.sprovoost.nl
  • wss://nostr.x0f.org
  • wss://bostr.syobon.net
  • wss://art.nostrfreaks.com
  • wss://cobrafuma.com/relay
  • wss://alru07.nostr1.com
  • wss://relay.nostrfreedom.net/outbox
  • wss://aplaceinthesun.nostr1.com
  • wss://relay.flirtingwithbitcoin.com
  • wss://plebone.nostr1.com
  • wss://cfrelay.snowcait.workers.dev
  • wss://thewritingdesk.nostr1.com
  • wss://relay.botev.sv
  • wss://relay.degmods.com
  • wss://seth.nostr1.com
  • wss://untreu.me
  • wss://agentorange.nostr1.com
  • wss://reimagine.nostr1.com
  • wss://nostr.takasaki.dev
  • wss://nostr.coincrowd.fund
  • wss://bnc.netsec.vip
  • wss://nostr.community.ath.cx
  • wss://nostr.cltrrd.us
  • wss://relay.xeble.me
  • wss://no.netsec.vip
  • wss://strfry.shock.network
  • wss://relay.8333.space
  • wss://relay02.lnfi.network
  • wss://relay.lightning.gdn
  • wss://nostr.cypherpunk.today
  • wss://relay.nostrfreaks.com
  • wss://relay.shuymn.me
  • wss://haven.eternal.gdn
  • wss://cyberspace.nostr1.com
  • wss://nostr-rs-relay.dev.fedibtc.com
  • wss://relay.das.casa
  • wss://ursin.nostr1.com
  • wss://monitorlizard.nostr1.com
  • wss://wot.shaving.kiwi
  • wss://relay.cyphernomad.com
  • wss://nostr.extrabits.io
  • wss://relay.jellyfish.land
  • wss://wot.tealeaf.dev
  • wss://chorus.tealeaf.dev
  • wss://haven.tealeaf.dev/inbox
  • wss://h.codingarena.top/inbox
  • wss://relay.goodmorningbitcoin.com
  • wss://wot.zacoos.com
  • wss://relay.shawnyeager.com/chat
  • wss://proxy0.siamstr.com
  • wss://articles.layer3.news
  • wss://relay.hs.vc
  • wss://chronicle.dtonon.com
  • wss://wot.dtonon.com
  • wss://relay.stens.dev
  • wss://social.protest.net/relay
  • wss://relay.patrickulrich.com/inbox
  • wss://relay.davidebtc.me
  • wss://relay.dev.ntech.it
  • wss://chronicle.dev.ntech.it
  • wss://nostr.bitpunk.fm
  • wss://lnvoltz.com/nostrrelay/n49jzjytb
  • wss://ghost.dolu.dev
  • wss://thebarn.nostrfreaks.com
  • wss://niel.nostr1.com
  • wss://adoringcardinal1.lnbits.com/nostrrelay/test-relay
  • wss://nostr.thebiglake.org
  • wss://wot.relay.vanderwarker.family
  • wss://haven.girino.org
  • wss://pow.hzrd149.com
  • wss://nostr-news.nostr1.com
  • wss://thewildhustle.nostr1.com
  • wss://nostr.sats.coffee
  • wss://dikaios1517.nostr1.com
  • wss://nostr4.daedaluslabs.io
  • wss://relay.calders.us
  • wss://nostr.mikoshi.de
  • wss://relay.nuts.cash
  • wss://brightlights.nostr1.com
  • wss://darknights.nostr1.com
  • wss://relay.chrisatmachine.com
  • wss://nostr.agentcampfire.com
  • wss://nostr.me/relay
  • wss://relay.nostr.watch
  • wss://dwebcamp.nos.social
  • wss://nostr.1312.media
  • wss://nostr.phauna.org
  • wss://henhouse.social/relay
  • wss://nostr.neilalexander.dev
  • wss://nip13.girino.org
  • wss://tijl.xyz
  • wss://relay.rengel.org
  • wss://relay.stewlab.win
  • wss://relay.badgr.digital
  • wss://relay.crbl.io
  • wss://rl.baud.one
  • wss://relay.axeldolce.xyz
  • wss://nip85.nostr.band
  • wss://antisocial.nostr1.com
  • wss://relay.isphere.lol
  • wss://cl4.tnix.dev
  • wss://nostr.dl3.dedyn.io
  • wss://nostr.camalolo.com
  • wss://hayloo.nostr1.com
  • wss://nostr.schneimi.de
  • wss://wostr.hexhex.online
  • wss://pareto.nostr1.com
  • wss://nostr.pareto.space
  • wss://relay.utih.net
  • wss://relay.lifpay.me
  • wss://david.nostr1.com
  • wss://haven.ciori.net
  • wss://bonifatius.nostr1.com
  • wss://pay.thefockinfury.wtf/nostrrelay/1
  • wss://relay.xplbzx.uk
  • wss://nostr.tac.lol
  • wss://btcpay2.nisaba.solutions/nostr
  • wss://relay.bitcoinschool.nl
  • wss://dev-relay.lnfi.network
  • wss://relay.netstr.io
  • wss://freespeech.social/relay
  • wss://straylight.cafe/relay
  • wss://nostr-relay01.redscrypt.org:48443
  • wss://relay.devvul.com
  • wss://relay.bitcoinveneto.org
  • wss://relay.shop21.dk
  • wss://nostr.mtrj.cz
  • wss://relay.jthecodemonkey.xyz
  • wss://devapi.freefrom.space/v1/ws
  • wss://aaa-api.freefrom.space/v1/ws
  • wss://nostr.rosenbaum.se
  • wss://fido-news.z7.ai
  • wss://stratum.libretechsystems.xyz
  • wss://tamby.mjex.me
  • wss://nostr.cottongin.xyz
  • wss://wot.eminence.gdn
  • wss://hi.myvoiceourstory.org
  • wss://nostr.red5d.dev
  • wss://relay-testnet.k8s.layer3.news
  • wss://nostr.pistaum.com
  • wss://relay-nwc.rizful.com/v1
  • wss://nostrum.satoshinakamoto.win
  • wss://eupo43gj24.execute-api.us-east-1.amazonaws.com/test
  • wss://backup.keychat.io
  • wss://relay.openbalance.app
  • wss://nostr.jonmartins.com
  • wss://social.proxymana.net
  • wss://nostr-pr02.redscrypt.org
  • wss://nostr-pr03.redscrypt.org
  • wss://nostrelay.memory-art.xyz
  • wss://promenade.fiatjaf.com
  • wss://inbox.azzamo.net
  • wss://premium.primal.net
  • wss://nostr.timegate.co
  • wss://team-relay.pareto.space
  • wss://relay.dariccoin.me
  • wss://relay.dannymorabito.com/inbox
  • wss://nostr.lojong.info
  • wss://relay.transtoad.com
  • wss://cfrelay.royalgarter.workers.dev
  • wss://nostr-rs-relay-ishosta.phamthanh.me
  • wss://nostr.rblb.it:7777
  • wss://fiatrevelation.nostr1.com
  • wss://sources.nostr1.com
  • wss://nostr-pr04.redscrypt.org
  • wss://relay.nostronautti.fi
  • wss://moonboi.nostrfreaks.com
  • wss://mats-techno-gnome-ca.trycloudflare.com
  • wss://nostr.d3id.xyz/relay
  • wss://nostr.holbrook.no
  • wss://logen.btcforplebs.com
  • wss://relay.nostrtalk.org
  • wss://community.proxymana.net
  • wss://misskey.gothloli.club
  • wss://mleku.realy.lol
  • wss://relay.maiqr.app
  • wss://relay.tv-base.com
  • wss://relay.rkus.se
  • wss://relay.snotr.nl:49999
  • wss://relay.brightbolt.net/inbox
  • wss://magic.nostr1.com
  • wss://null.spdns.eu
  • wss://nostr.itdestro.cc
  • wss://nostrrelay.taylorperron.com
  • wss://nostr.tegila.com.br
  • wss://stage.mosavi.xyz/v1/ws
  • wss://eclipse.pub/relay
  • wss://relay.asthroughfire.com
  • wss://relay.nostrarabia.com
  • wss://news.utxo.one
  • wss://relay.stream.labs.h3.se
  • wss://mls.akdeniz.edu.tr/nostr
  • wss://asia.azzamo.net
  • wss://tollbooth.stens.dev
  • wss://nostrelay.yeghro.com
  • wss://nostrich.zonemix.tech
  • wss://relay.chakany.systems
  • wss://45.135.180.104
  • wss://relay.mwaters.net
  • wss://kitchen.zap.cooking
  • wss://basedpotato.nostr1.com
  • wss://nostr1.jpegslangah.com
  • wss://primus.nostr1.com
  • wss://wot.mwaters.net
  • wss://prod.mosavi.io/v1/ws
  • wss://bots.utxo.one
  • wss://nostr.caramboo.com
  • wss://9yo.punipoka.pink
  • wss://nostr.trepechov.com
  • wss://stg.nostpy.lol
  • wss://nostr.ovia.to
  • wss://riley.timegate.co
  • wss://willow.timegate.co
  • wss://relay.olas.app
  • wss://social.olsentribe.fyi
  • wss://relay.arx-ccn.com
  • wss://zaplab.nostr1.com
  • wss://hax.reliefcloud.com
  • wss://nostrrelay.blocktree.cc
  • wss://hole.v0l.io
  • wss://nostr.phuture.sk
  • wss://cc3d.nostr1.com
  • wss://coop.nostr1.com
  • wss://synalysis.nostr1.com
  • wss://nostr.luisschwab.net
  • wss://relay.fr13nd5.com
  • wss://relay.nostrfy.io
  • wss://relay.vaporware.network
  • wss://relay.mzm.app
  • wss://nostr.felixzieger.de
  • wss://nostr.spicyz.io
  • wss://relay.pre-alfa.iz-collaborator.com
  • wss://bunker.vanderwarker.family
  • wss://ltgnetwork.nostr1.com
  • wss://relay.bullishbounty.com
  • wss://dev.coracle.tools
  • wss://relay04.lnfi.network
  • wss://jellyfish.land
  • wss://relay03.lnfi.network
  • wss://rtson.onrender.com
  • wss://nostr.1sat.store
  • wss://v2.fly.dev
  • wss://communities.nos.social
  • wss://vidono.apps.slidestr.net
  • wss://nostrboss.com
  • wss://aegis.utxo.one
  • wss://data.relay.vanderwarker.family
  • wss://relay.marc26z.com
  • wss://relay-dev.netstr.io
  • wss://relay.danieldaquino.me
  • wss://aegis.relayted.de
  • wss://relay.nostrverified.fyi
  • wss://n.posto.us.kg
  • wss://relay.hook.cafe
  • wss://aegis.relaynostr.xyz
  • wss://nostrapps.com
  • wss://nostr.douglascruz.com.br
  • wss://wot.relayted.de
  • wss://inbox.mycelium.social
  • wss://relay.d11n.net
  • wss://haven.relayted.de
  • wss://free.relayted.de
  • wss://relay.zapstore.dev
  • wss://chat.mihhdu.org
  • wss://bridge.duozhutuan.com
  • wss://relay.evanverma.com
  • wss://relay.nostrdvm.com
  • wss://nostr.joomaen.top
  • wss://nostr.235421.xyz
  • wss://nostr.bitcoinsult.de
  • wss://nostrelay.circum.space
  • wss://relay1.plor.dev
  • wss://relayrs.notoshi.win
  • wss://fenrir-s.notoshi.win
  • wss://bostr.azzamo.net
  • wss://nos.zct-mrl.com
  • wss://skeme.vanderwarker.family
  • @ YakiHonne
    2023-06-09 08:33:29

    YakiHonne.com is a Nostr-based decentralized content media protocol, which supports free curation, creation, publishing, and reporting by various media.

    Yofu: Hello everyone! Welcome to the YakiHonne Workshop. Hack-Nostr-On is hosted by YakiHonne and sponsored by DoraHacks, with the aim of encouraging more ideas, applications, and problem-solving based on Nostr. YakiHonne.com is a nostr-based media protocol that supports the creation, publishing, and reporting of various topics by medias. We are honored to have developer Roadrunner (aka 42) to give a presentation. Please welcome Roadrunner!

    Roadrunner: Thank you. I appreciate the opportunity. I'm from El Salvador. I'm an amateur programmer who's just learning about Nostr and trying to build their first project. It's a very cool opportunity because I feel Nostr is a very open network for beginner programmers. It's very simple technology, but it can scale very well. Part of the idea is that the code should be kept simple. It is one of the main ideas of the protocol,so it was very simple for someone like me to just start building on it, which is what I find really cool.

    And I basically started building a little project that is attempting, called Roadrunner,that is attempting to create a decentralized marketplace of ride sharing, kind of like an Uber application where riders and drivers and passengers can find each other to finish rides. So, it's just trying to do the same service, but using decentralized technologies like Nostr and Lightning Payments so that you don't have to worry about, well, anyone else,it'll be completely custodian and will be peer-to-peer completely.

    Today I wanted to bring this presentation to you guys to kind of talk about the basics of the technologies we're building.Through Roadrunner and through Nostr and through Lightning. Kind of a bit of the basics about Nostr.How Nostr becomes peer-to-peer,the type of content that can be stored on Nostr, who and how you can access that content,And all the types of services that you can provide using that content.

    So, let's start talking about Nostr as a peer-to-peer network.Everyone's heard this term before a lot,Peer-to-peer. I think it gets thrown around a lot,so I wanted to kind of dig into it and ask the question, is Nostr really peer-to-peer?And what does that mean?

    peer-to-peer technologies mean that they allow users to connect directly to each other, Without any intermediaries. So, peer-to-peer means thatI can talk directly with another peer, that I can interact directly with another peer. For example, Signal, Which is a messaging app. And in there, there is no in-between. You are sending encrypted messages from your peer to another peer, Its Technology that works directly from one person to the other, that allows that communication.

    So, when we ask that question to Nostr, We run into this, into this kind of diagram,Where users are posting things onto a relay and then listening back to those posts,So, you could be posting, for example, a post to your Damus app or to your social media app or whatever, whichever app you're using,And you're also seeing other people's posts from that relay back,But if you notice, at no point is there a connection between you and other peers.

    So, at face value, Nostr is not a peer-to-peer network,Because Users are never interacting with each other directly. Users always interact with the relays,All the users have arrows between the clouds, the relays and the users, but users never have arrows between each other. You are never sending a message directly to another user,And if you also notice, the relays don't talk to each other,Users can post to a lot of different relays and can listen to a lot of different relays,but they are never, but the relays don't talk to each other,Just as the users don't talk to each other.

    Nostr, at a simple level, is an open network where everyone can post things to different relays,And everyone can read from those different relays. So, if I post anything to this relay, to one of these relays, anyone else in the network can access that information by telling the relay, hey, what did this person post, So, at face value,it is not a peer-to-peer network. It is an open network,So, how do we turn Nostr into a peer-to-peer network?How does this architecture allow us to turn Nostr into a peer-to-peer network? Well, this is where encryption comes in, and I've put the SHA-256 logo here onto a sun because it's kind of like the light of encryption is what allows this peer-to-peer technology to happen. So, how does this happen?

    The peer-to-peer functionality comes with encrypting your messages. That means that you can post an encrypted message to a relay,and yes, it is still public, but that means that only the people who you encrypted it towards can see those messages,And that's where the peer-to-peer functionality comes in because, yes, it is an open secret,You are posting that message to a relay, which is completely public, and anyone in the network can see it, but it becomes peer-to-peer because anyone can see it, but they cannot decrypt the message,So, even the relay can't see the message. Other users, which the message is not for, cannot see the message,Only the peers who you encrypted it towards can actually see that message and interact with it. Other users who don't have those encryption keys will not be able to see your messages.They can see them, but they cannot decrypt them, so they are useless. They're just a bunch of encryption text, which they can do nothing with.

    So, that's kind of why Nostr becomes a peer-to-peer network. It is not by itself a peer-to-peer network, but when you start encrypting content on it, you can use it as if it were a peer-to-peer network,You're still dealing with the intermediaries of the relays, but then the relays can't really do anything about it,Because they're just passing on encrypted information along, and they really, there isn't a very easy way of telling apart the difference between encrypted information and non-encrypted information. So, that's where relays kind of have no weapons against this.They're just, their job is only to pass the information along, and if the information is encrypted, you can get this peer-to-peer functionality.

    So, let's talk a little about what type of content you can put on Nostr. At face value, Nostr is a little boring. If you just look at it from, just take one look at it, it is a little boring, because what we have here on the right is all the things that you can store on Nostr. This is the only thing that you can store on Nostr.You can create these objects,Which have an ID, a pub key, a created at, a kind, some tags, a signature, and some content. So, let's run through these.

    Very importantly here, the pub key,Is the identity of who posted this object,This is an object that is getting posted to the relay, and it always needs to have a pub key,That is your, and we'll talk a little more about pub keys in a second, but that's basically just saying who posted this event,We have a created at, which is when this event was posted,We have a kind, which is what type of event this is, We have tags, which is like reference to other events or other pub keys in the relay, and then we have this ID, which is like a unique ID, just to make it easy to reference this event, and the signature, which is a cryptographic function that allows you to make sure that the pub key that is publicly set up in the object is who signed this, is actually who signed this object,So, that's a little cryptographic magic just to make sure that the object was created by who it says it was created by,Kind of a little verification, and then at the end of all that.

    you can store some content,And what can you store into the content? You can store strings, and for those who've not, who aren't familiar with programming, strings is just a fancy word for text,So, strings are just a bunch of text. So, that's why I put this matrix image here, because there's just a lot of like, where you can put in words and numbers and text, but you can't do anything more than that. You can't post a picture, you can't post a video, you can't post a song,You can post text, and that's all that you can store on Nostr. It cannot store, for right now, anything else,And if you think about that, that's kind of boring,Because the internet isn't just text,The internet is videos and images and songs and audio,And so, if you can only store text, this isn't very useful.

    So, how do we adapt to it? Because we already, we do want to use Nostr, because it allows peer-to-peer, how we've talked about,Like peer-to-peer encryption and communication,So, how do we adapt these boring strings to actual internet content that is fun? Well, in some cases, it's very easy, Social media, and you've already, you might have already interacted with some of these clients, like Damus and Amethyst,Which are just basically social media platforms, and these work, if you think about it, mostly off of strings,You see people's names, which are text, and you see people's posts, which are also text, and you might have counters of likes, which are also a bit of text with some static images,You don't really need to store the image of a like on Nostr,You can just keep a counter of it and say how many likes that something had. So, that is like for social media, most of the applications are very easy to handle with only text.

    Then another use case are URLs and external hosts. So, for example, you can just reference your YouTube video,You post a video to YouTube, and you just share the link through Nostr,And there's a bunch of ways that you can do this, but it basically boils down to that,And it doesn't have to be YouTube, you can store this in your personal server, and there's already, for example, servers that are specializing in URLs that are very Nostr friendly, for example, so that like very small URLs that you can easily like copy and paste from a text format,One of these examples is Nostr Media Uploader, which I've seen that I've got a lot of traction lately, and this just basically allows you to upload any photo, any video, any type of audio that you want, get a URL from it, post it on your Nostr text,And then anyone who looks at that event can just go look at that image and that video from the Nostr Media Uploader, At that point, the content is not stored on Nostr, it's stored somewhere else, It's on another server, but you're just linking through it on Nostr. So that's a very easy solution,Because, however, it doesn't solve the problem of where do you store these things.Then at this point, you're still becoming dependent on storing things on YouTube, on storing pictures wherever you store them,On storing things on Nostr Media Uploader, sure, links are very useful and easy, but they're not the full solution.

    Another thing you can do is serviceable data, which is kind of what we're doing with Roadrunner. And to give a small example of this, Serviceable data just means strings or text. That is actually more than just the text it's on, it's data you can use somehow. And Roadrunner uses, for example, coordinates, So we are sending coordinates through where the passenger is, or where the passenger needs to go, And making calculations through this, how the distance you need to, the driver, and giving this information to the drivers, So this is serviceable data, Yes, it is text, it's only text that's there, but it's text that a service can use, get more information, provide a service from it, and then return more information to a customer, So that's kind of what I mean by serviceable data. And coordinates are just one aspect of this, Invoicing, You can have many types of invoices, you can have orders for things, So serviceable data is basically anything that you can get more data out of, There's even, I've seen even ideas of like,for example, distributed computing,Where you put code that you want to run onto Nostr, and then other computers take that code, run it for you, and give a response back.So that's kind of like what I mean by serviceable data, You're not really interested in the text itself, you're interested in doing something with that text and providing that service to a user. And then there's a really big space of opportunity with native data storage, of actually storing data on Nostr.

    Because at the end of the day, if you think about it, computer information is just text.if you go far deep enough down the hardware ladder, You can get down to zeros and ones, and very, very, very simple code to provide almost any type of content,So you could, in theory, encode, for example, a whole video, split it into its zeros and ones, or bytes, or hex bytes, or however you want to encode it, take those texts, paste them onto a Nostr event, put them up on a relay, and then whoever wants to download them, We just have to get all these events back with the data, and they would need a client that would put, parse through this data and encode it back into whatever type it is, be it a video, be it photo, be it whatever else.

    I haven't seen many examples of this being done yet. I've seen some people like talking about it, but I couldn't point you to a clear example. I think it's a huge area of opportunity. You do have to be a bit technical to get into that, Because it means encoding things into text, and then re-encoding from the text, and putting it back together. So it's kind of a big technical mess, but it's there. The opportunity is there if anyone wants to take it.

    Roadrunner: Probably everyone's heard the saying,not your keys, not your crypto. In Nostr, there are also people saying,not your keys, not your content, but I don't completely agree with that. And I want to get into a little bit of why. There is a bit of truth to this, because you do need your private keys to post your messages and only your private keys will reference your public key, So if you hold your private key, only you can post those messages under the public key. No one else will be able to post messages under your name for that, if you want to think about it like that. But it's not completely true. Not your relay, not your content. Now this is true. So who holds the power of the data in Nostr are the relays, because users are always posting to relays and relays decide what to do with that content. Once the user has posted something to a relay, they no longer hold control of that data. The relay holds control of that data. And I want to make this very clear with a few examples, but in very simple terms, if it's not your relay, not your content. And I will be repeating this statement a few times over the next few slides, so I hope you bear with me.

    Let's talk about a bit of key pairs and identities, just to make everything very clear. To post anything on Nostr, you need a key pair. You need a private key, and that gives you a public key. Much like in all crypto systems and Bitcoin systems, you need a private key that allows you to handle your transactions, or in Nostr's case, your posts. The private key is what's used to sign and create the signatures that we saw on the data structure. And it'll also generate a public key for you. And that public key is unique to the private key. The private key can only generate one public key, and only that private key will generate that specific public key. No other private key can create the identical public key, So if you're assigning posts with your private key, you can make sure that that is your identity. And if you see a post signed by a public key, you can know with reasonable certainty that whoever holds that private key signed it.

    So your key pair is your identity.Now, having said that, you can use your identity on Nostr to access any client. And that is something that's very different with the normal internet paradigm that exists right now. Right now, if I try to go to Facebook, I have to create a user on Facebook and a password on Facebook. And then if I go to Twitter, I need to create another user and another password. And then if I go to Gmail, I need to create another user and another password, And it starts becoming a little crazy. In Nostr, you don't have to do that, because your private key can be used to sign posts on Damus. And your same private key can be used to sign posts on Amethyst. And that same private key can be used to request rides on Roadrunner, There is no separation. All you need is a private key to sign and verify messages, So your one identity can be used across platforms. And that has very useful utilities.

    For example, you don't have to have a hundred different users, You can have shared reputations through the platform. You can also do things like this, You can have a very professional key pair where you are offering rides to people on Roadrunner, And you have your social media profile professional on Amethyst, And you're a very professional person on that key pair. But then you have another key pair where you go on Damus and post memes all day, Because that's how you unstress out. But perhaps you don't want to be doing it on the same account. So you have two completely different key pairs, That don't have anything to do with each other. And you have two different, completely separate identities, And there's actually no way of tracking one, linking one way, unless you do it somehow. Like you actually say, like, Hey, these are my two public keys, but you can keep these two identities completely separate if that is what you choose.

    But let's get into the, not your relay, not your content, Like, why do we say this? Because I have my identity,I can post however many identities I want. But if the Damus relay, and I don't, I'm not saying that they do this. I'm just using it as an example, Don't get angry at me, Damus. I'm just using you as an example. Damus, if you don't, if you post something that they don't like to their relay, they can just send it to the trash. They have no obligation to keep your post. because again, not your relay, not your content, A user published something bad about Nostr on Damus. Damus said, Hey, I don't like that. That content doesn't go on my relay. It goes to the trash. And you as a user have no way of stopping this because the relay owns the data. You are free to post however many relays you want. And eventually one of them might say, yeah, I like your data. I'll keep it and share it with other people, But if the Damus relay didn't like what you posted, they are completely free to send that information to the trash. So I want to make that very clear. I will also want to make this very clear, this other point very clear. Let's say you posted something dumb that you shouldn't have posted on Damus, an Embarrassing picture of yourself or whatever. And then you tell Damus,Hey, please, I don't want that there. Damus can very easily just tell you, no, that is now there forever, They have no obligation to delete your data either,because they own the data, not your relay, not your content,You are free to post to all the relays you want and request information from all the relays you want, but the relay owns the data.

    So how do we bring balance to the situation? Because if you just told me like, Hey, relays own all the data, that doesn't sound cool. That sounds like a corporate mess, And we don't want that. So again, the light of encryption, SHA-256, which is one of the greatest technologies known to man right now, is what brings balance to this.because you can post encrypted content to the Damus relay, and then they don't know what they're sharing. So they can't really decide if they like it or not because they can't even tell what it is. And so if they don't know what you're posting, how can they decide if it's good or bad?

    So if they don't know what they're posting, they're just going to say, well, this guy's posting a bunch of encrypted stuff. Let's just send it over to whoever wants to encrypt it, And it's even very hard for Damus to get in trouble for that, let's say, because how can they know that they're redoing something bad, That they're sharing something bad because they can't even decrypt the message. Only the holders of the decrypted keys can see those messages. So if you encrypt your messages, Damus doesn't know what it's sharing. And that's kind of where the balance comes in in Nostr. Sure, the relays own the data, but if that data is encrypted, that data is useless to the relays. So encrypted data is only useful to peers, Encrypted data keeps the balance of the data ownership. Sure, the relays own the data, but it's not useful to them if they cannot decrypt it. I hope that's very clear. This is where the balance of user relay comes in Nostr.

    There is a big monetization aspect of this, And again, I'm not saying Damus does this, just using it as an example, But Damus can keep you out of their relay. They have no obligation to let you in. You can try and post to them, but they don't have the obligation to say,yeah, I'll take your post. It's an open network, but up to however the relays decide.And you are free to post to any other relay you want. But if you want to post to the Damus relay,you might have to accept some rules, And for example, one example that's going around right now are paid relays, So send me some Bitcoin and you can post, And that's a very simple example. I think there's a lot of opportunity here. For example, getting in by reputations on other services, there could be private relays for private groups, Where not just anyone can get in, where you actually have to be a part of an organization or a DAO or whatever. And that relay is private for these users, And no one else gets in,no matter how much money they have, That's another kind of use, But this is a very simple way of monetizing relays that's already happening, So if you go to NostrWatch,for example, which is just a list of all the Nostr relays that's out there, you'll notice that there's a bunch of free relays where anyone can post and read from. And there's a bunch of paid relays where there's some that will just ask you for an entrance fee, And you just pay once and you can post and read however many times you want. Some actually charge you per post, And there's like micro payments going on. So two sats, three sats every time you want to post. There's also a lot of anti-spam campaigns that are happening through monetization, So it costs one seat to post. So yeah, to a real user, Like who might post 500 times in a month, 500 sats doesn't sound like crazy cost to use a service, But to a spam user who is trying to post 100,000 messages per month,Now that becomes cost prohibitive.So there's a bunch of very interesting use cases here with the monetization, But the basic idea comes down to, if you have what I want, you can come in and post to my relay. If you don't,you get shut out, And that's just a very, very simple example.

    Roadrunner: So let's talk about services on Nostr. How do we've been talking a lot about the user side, How a user can post and interact with relays. But let's look a little about the relay side, And what is actually a client like Nostr, like Damus, for example, doing for users. And this is where peer-to-peer, it gets a little more complicated. It's not exactly peer-to-peer, it's peer-to-relay-to-peer, And that's the type of service that Damus and other social media clients are providing. What does that mean? That means that a bunch of users are sending their information to Damus. They're sending their posts, they're sending their likes, they're sending their private messages. Damus is aggregating those, Into a feed, into checking how many likes a specific post has gotten and giving that information back to the users, So this is where peer-to-relay-to-peer comes in, You're sending information to the client and you're getting back information from that client aggregated from all the users that have been sending information, And this only works if you have a network of users, if you only have one user on Damus, well, there's not really anything to show him, You need to show him information from other users, So that's why it's not just peer-to-relay, There needs to be other peers in this for it to work, There needs to be a community of people posting so that you can see a feed, a community feed of posts, So that's why there's the relay in between. And it's the relay in between that is important because that's who aggregates all these posts, Damus is not only something that, and Damus isn't only checking one relay, Damus is actually checking a bunch of different relays. So they're aggregating information from a bunch of different relays and showing you all into one comfortable feed, So you don't have to worry about looking for all these relays. Damus actually does it for you. So there's a bunch, a network of relays that Damus accesses, And provides you all that information aggregated into a very comfortable feed and very like, you just like things and you just comment on things, And it's very easy and approachable, So this is peer-to-relay to peer services.

    On Roadrunner,we're doing things a little bit different,So Roadrunner is actually, we do have that peer-to-peer part, So we have a bunch of passengers and a bunch of drivers that are sending us their information, but actually most of the service that we provide is done by autonomous key pairs. And I like, I'd like to say that I'm kind of on the front end of creating this kind of technology because I haven't seen many people talking about this kind of stuff, but basically what this means is just giving a bot or an autonomous service, You can think of it like a little robot, its own key pair, so it can do things for a user. In the Roadrunner case, I have a couple of different services, for example, creating ride details, Like the ride distance and aggregating the coordinates and creating a feed. All of that is created by an autonomous worker that then posts events back so that drivers can see. So in that case, for example, there isn't the information that a passenger sends, isn't the information that the driver receives, Because the information gets taken in by a robot, an autonomous service, And it posts back information and the driver actually sees the information from the autonomous service. The driver isn't worried about the passenger, they're worried about listening to the autonomous service, for example, another case, when you are actually offering a price on Roadrunner, you have to use a lightning invoice and we create an HTLC contract for you, which is just kind of like a time-locked contract to make it simpler for the payment transaction to go through and to allow passengers to cancel it. Well, that process is also done by another service with another key pair that all it's doing is taking in invoices from drivers, creating a contract from it and posting back the contract. And then passengers aren't actually listening directly for the driver's invoice.

    They are listening to the contract that was posted by this autonomous key pair, So, the driver doesn't have to worry about listening to every single passenger out there. They just have to listen to the one autonomous key pair, And that one key pair will always be publishing these offers. It makes the tracking of services much simpler. I also have another autonomous key pair keeping track of reputations. So, every time a ride is settled, there's a little robot that goes and posts a reputation event, And these three services each have their own key. So, at the time of looking for these events, it's very easy because if I want to look for reputation events, well, I don't have to listen to the other two robots. I can just listen to the robot's reputation. And if I want to listen to the offers that I'm receiving, I just have to listen to the offer robot, And this is a very easy way to start compartmentalizing, compartmentalize, start making smaller services, And keeping things in compartments.

    Let's talk about scaling, which is another word that you've probably heard a lot. Very important. What happens when you have a bunch of users all trying to do things at the same time? And you might have limited resources, I'm not Amazon. I don't have a bunch of huge servers that I'm running to keep things, to keep my services running at full, at hundreds and hundreds of giga RAMs of speed, Like, I'm not Uber. I don't have huge services across the world, I might not have the capacity to do this. So, my services get angry. They can't handle all this data, So, how do we scale this? One answer would be, well, become Uber. Just start hiring servers and just make huge computers and just make more robots, Just more, more, more, and just do it all yourself. I don't like that. And that's not how I've built the system. Roadrunner is being built, again, because it's on Nostr, because it's decentralized. It's attempting to build a decentralized network of rights. This is how Roadrunner and this is how other Nostr systems will scale.

    Not by expansion, but by replication. I don't want there to be one huge Roadrunner service. I want there to be hundreds and hundreds and hundreds of different Roadrunner services, each running to their own specific needs, So, one of these Roadrunner services might be working in China and they might have very specific user verification things because they want to be compliant with laws there. And another one might be in Africa and they're using payments on something that's not lightning. They're using payments on another thing. There's so many examples, And you can tailor each one of these Roadrunner services to fit your needs, And this approach to scaling by replication is so much better than my expansion. Because if one of these, for example, just one example is if one of these goes down, you also have another bunch of options. Right now, if Uber goes down, all of Uber's customers are left without an option. You have to sign up for another service. But hey, if one of these Roadrunner services goes down, you can actually just go find another Roadrunner instance and use your same private key and find your same reputation events, Because it is a distributed system of relays, Your information can live on a bunch of different relays. And these workers, each one of these groups of workers don't have to be listening.To only one set of relays. They can be listening to two relays or three relays or four relays, You can have private relays. You can have your own private little Roadrunner that only runs kind of like a limo service, And it's only really fancy cars and it only works for really fancy people, And this is how I picture scaling on Nostr.

    Not by creating one Roadrunner, but by creating hundreds of them, each tailored to their own specific needs. They will all have the same basic functionality. And in theory, you can use your same identity across all of them because all you need is to sign and verify your own messages.

    I also wanted to talk a little more about the service and what we're doing. How we're integrating all of these tools into the Roadrunner platform, starting with encryption, because I think it's one of the crucial parts of this. So one of the things I've done is I've tried to encrypt as much of the user content that I can. The only part that isn't encrypted right now is the initial user coordinates, because you have to, if you're looking for a ride, you kind of have to tell drivers where you are at least approximately, So that event is, it cannot be encrypted. It does have to be a public event. You are posting like saying, hey, I'm here, Can someone pick me up? So you do kind of have to tell the world that, hey, you are here, But for example, I have created a system where that event is replaceable, So at the end of the ride, you just replace it with an empty event and no one can find those details, Because the original event gets deleted and the only event left is an empty event, So even where events aren't encrypted, I've tried to keep user data storage to a minimum, In almost every other case, for example, communication between passengers and drivers and the sending of invoices, and I'm doing a lot of things like lightning invoices, for example, all of that is encrypted and encrypted between the driver and the passenger, Or in some cases between the driver and the robot, But the same thing applies. So only the driver and only the service can see your information and no one else can see your information. So in theory, this means that you can run Roadrunner robots on any relay. It could be on the Damus relay. It can be on any other relay, This could be like an extension of relays of just having little autonomous keepers providing these services and then the Roadrunner clients don't have to depend on one single relay because the information is private for users, Like we mentioned through encryption, it is truly peer-to-peer and relays just act as the transfer of information and holding certain states which are only useful to peers.Because they are encrypted. I also am very proud of the whole autonomous keeper worker. It solved a lot of issues that I was having while building the system. And I think it needs to be explored a bit further with people that are more experienced coders because I think it has huge areas of opportunities of just having these keepers out there in the world doing things for you, And there's so many services that you can start applying this concept to. Because again, right now, especially with AI and all these technology tools that we have, there are so many crazy services that you can start providing and automating and just creating those, just giving. And all you'd be doing through Nostr is providing that automation of services to be public and transmissible. And I think that's everything I had for today. Thanks for hacking, everyone. Thanks for being here and for the opportunity to give this talk out, So thanks a lot to the group, to YakiHonne. And yeah, that's all for me. I don't know if you have any questions, any comments, anything else you'd like to discuss?

    Yofu: Yeah, thanks to you too. I actually have some questions. I'm wondering first, what is your inspiration for doing this Roadrunner based on Nostr, based on Relay?

    Roadrunner: I can't claim that it's completely original or anything. Like I said, I'm a very beginner programmer. I've had some help from several people in the Nostr community. And the idea was kind of given to me by someone who's more deep into the Nostr stuff. It is one of the original ideas that the Nostr developers, the original developers of Nostr put out there that, hey, a ride sharing service should be created on Nostr. It was one of the predetermined use cases before Nostr was even working.

    So my inspiration is building on the shoulders of giants, And the tools have been given to us to access this open network, And there's also already a bunch of use cases that I don't have to go and imagine, There's a bunch of really, really important and useful things that are needed to create that people are already asking for, So I'm just trying to do that, building something that people are already asking for.

    Yofu: Wow. Actually, it is very interesting because, for example, like I mentioned in the talk that if one platform is gone, for currently that's all, there's no matter drivers, no matter users, reputation, it's all gone. I need to start over from the very start. Everyone is blank. It's not fair. So yeah, based on this, I think it's interesting. The information there does not depend on the platform. So it can be like now on multiple, there's clients that the information is sharing. It's quite cool. Yeah. And by the way, do you have any demo now or it's still under program?

    Roadrunner: The page is in a demo version. I could show you very quickly if you'd like. So let me change screens for one second. So the page is live right now. Anyone can access it, roadrunner.lat, It's only working with testnet payments on Bitcoin. So you need a lightning testnet wallet if you want to demo it, but anyone can access it. Easy wallet that you can access on testnet is htlc.me if you ever want to test the service out. So I'll give you a quick rundown on the page. Basically you log in with a private key. I already have my private key here to save. So I just hit log in and it puts me in. It recognizes my public key, So this is the public key that shows to other people. I've already set up some profiles using an IPO six, I think it is, which just allows a user to set up like a profile event. So you can see like, Hey, this is my name, I have a little thing for images. I have a little information for your car. If you're a driver, A picture for your car isn't hosted on the site. This is just external URLs. Like I was talking about, but again, it's very easy to just find your picture, And from a public hosted site.

    So then we have a little page where you can find rights, And this is predetermined to San Salvador. I am not accessing your device information at all. This is just a static map of the world. And you can just pick two points on the map, That's why it's predetermined to one spot, but you can just go wherever you want on the map, And pick those two points, If you're in Guatemala or if you're in Mexico, Or if you're even farther away,It doesn't matter, Maybe you're a European user who wants to use it, you just move the flags to wherever you want and you can pick those rights, So let's say we want to take a trip from Paris to whatever, Rene, You can offer a price. Right now everything is priced in SATs because I'm using lightning payments and you can send over that payment, So you get sent to the screen where you're just waiting for offers from drivers, So now I'd like to take you to the driver page.

    Give me one second. I need to find another key. I think I have, I should be able to use this one.So let's use this one and we'll go to the driver page, So in the driver page, again, you'll be able to see a feed of all the rides and we can see here the ride that was posted by the other public key, So if we click this little banner, we can see that, Hey, this other public key wants to go from Paris to Rene, that's this much distance, And they're offering this much for the ride, So I want to offer them a ride. I will go to my wallet and I will ask for a little more than what they wanted, Okay.

    Yofu: So there is a bargain negotiation process between drivers and users about the price.

    Roadrunner: The passenger can offer a price, But at the end of the day, it's the driver's call of counter offering, So the passenger wants 245, The driver is offering 400 and 420. If you notice, here I put 400,000, And it added a bit of a fee. That is the relay fee that my service is actually charging you. So I've now added a bit of a fee because I am creating a contract for you, a lightning contract for you. And that's what you were actually paying. You're not paying the driver directly. And I can show you that right now. So for example, let's say this passenger, I want to take that ride, And so you can see that it has an invoice, I'm going to go now pay this invoice as the passenger, So I go to my wallet and I say, Hey, Oh, I don't have enough money. Oh, let me make a smaller payment. Cause I don't have enough money in this wallet. Sorry about that. A bit poor.

    This is all test net Bitcoin. Let me just make another offer with a smaller one. So I should now have a smaller offer. Cool. Let me pay this invoice.So now that invoice will be paid and you'll notice in a second, as soon as it gets recognized, it should change. Give me a second. Don't fail me now. Service. Is it working? There we go. Cool. So what happened is that the contract was now in an accepted status. If you notice the lightning payment hasn't gone through that's because it's a type of contract that requires a two steps, It requires a payment and then it requires a verification, So right now the payment has not been sent, Because I'm just telling the driver, Hey, I've prepaid your contract, You should come pick me up.

    So this is what the passenger sees: Your driver's coming. There's still a bit of details to implement. This is just a demo, I still need to implement, for example, like the location of your, of your driver and things like that. But as a demo, this is just, you're waiting for your driver to come, Let's say he never shows up. It's been 20 minutes, 30 minutes. He doesn't show up. Whatever you're in a hurry. you need to go. You just hit X and, and the ride cancels. The payment never goes through. Right. But let's say the driver did come pick you up. So the driver here now sees your location, And they're like, Hey, go pick you up, your passenger, Like the driver goes, picks you up, You have a nice ride. They take you to where you're going. you get to where you're going. The passenger hits accept and the payment now does get finalized. It says it failed here, but this lightning wallet isn't the best. If you notice the balance, it did get sent and received. It's also kind of weird because you're paying with the same wallet. if I was doing it with another user, it would be a better demo. Right. But yeah, the payment is received on the other end and the ride is finished and you can go request another ride.

    Yofu: just one small question, you said, uh, when he takes the rides and he transports him to the place he went. So after that, what if the passenger doesn't pay, how the driver receives his money?

    Roadrunner: At that point you are in someone's car and you are denying them their payment. I think if you are taking the risk of like, do you know what I think? Well, a lot of drivers already take that risk.like for example, Uber and a lot of these companies already give you the choice to pay in cash and drivers have no way of knowing if you have the cash or not. but as a passenger, would you really get into someone's car and then get to the end and be like, Oh yeah, I didn't pay you. Like you're, It's a problem for the driver, but it's at that point, the driver has you right next to them.

    Yofu: Right. So I know the risk is very low, but how can the platform, I mean, your platform can assure that to solve that.

    Roadrunner: I understand your concern. My response to that is that the platform is a peer-to-peer platform. Disputes as a service are peer-to-peer and disputes are also peer-to-peer. At no point in the service, can this, can the platform keep your money? So, the money goes either to the passenger or to the driver. There is no other outcome.

    So just as the service is peer-to-peer, the dispute process is peer-to-peer.I know this isn't the answer that most people like,we have become very accustomed to platforms being very user coddling. I would say in a way of like babying you around,if anything wrong happens, it's the platform's fault. And I understand that, but I also don't, that's not the philosophy I want. And it's not the philosophy I think that Nostr builders will be building with.I think if you are going to get into the peer-to-peer philosophy, you also have to understand that, if you're using a peer-to-peer service, you are also taking that peer-to-peer risk in a certain way. And I don't think any peer-to-peer platform has solved this.

    Yofu: It is doable to do an intermediate wallet, for example,Your platform wallet, and then the client will transfer the money to the platform wallet temporarily. And then when he finished, like you can, the driver can receive his money from the, I mean, like.

    Roadrunner: The problem you keep running into is who verifies that the ride was successful. That is the ultimate problem. Because right now what I'm doing with the contract is kind of like that, Like you can prepay the contract and then someone has to decide, I could give that choice to the driver as well.But then what happens if you prepay the driver and the driver doesn't show up and just hits accept to the contract, You start running into a lot of issues of who you are going to ask to verify the ride. There isn't a clear answer, the system I designed has been designed after speaking with drivers specifically and raising this issue, Of people who actually like to ride, use these platforms to offer rides like drivers. And what they've told me is that, yes, like users have the financial upper hand,Because they like every platform, both Uber, Indriver,any of these platforms always gives users that ability of canceling the ride. And no right platform will tell you otherwise. Like if a user has the financial domination over the driver, what platforms do to counteract this is give drivers.The rating benefit, So give drivers more information about the reputations of users. And I'm still working on those designs, but what I'm trying to do is, for example, give drivers a very accurate representation of how many times a user has accepted a ride and how many times they've canceled it, Because if a user accepts a bunch of rides and always cancels them, that's not a very good user, And you should be able to, It might be impatient, or it might be someone trying to scam or it might be whatever, whatever option, right. But it's not a good user,But for example, another user who has accepted a bunch of rides, but also settled all of them and paid the driver accordingly, that should be a good user, And that should be reflected and drivers should be able to see what type of passenger you are before deciding to go pick you up or not. So that is still something I'm building, but the tools are there. Like I have all the data, all of this is Nostr events that are getting put to the Roadrunner Relay,So I own that data, just like I was talking on the talk, and I can choose to decide what to do with that data, I can present it to the drivers and say like, hey, this customer has a 90% settlement rate,And they're good customers. This other customer has a 20% settlement rate, And you as a customer have to be mindful of that, that you will be accumulating a rating on this platform. It's not a perfect solution, but it's, I'd rather do that than try to get into a dispute. Did the driver really get there or not? Did you get to your location or not? Like that is a lot harder because then you have to start thinking of like, am I tracking users on their devices, which is something I don't want to do. I don't want to track users. If you notice here, I'm not giving.I'm not asking for your data, right. I'm just, you put the location. So there's a lot of nuances to this.

    Yofu: Thanks for answering my questions. One more question is, what're your upcoming features that you're going to implement to the platform?

    Roadrunner: Yeah. Features, like I said, I still have to do a lot of reputation stuff. I don't know if you noticed, but there was a little reputation. There was already a star thing on each of the profiles. That's just a very basic reputation system that I set up. So I'm still working on more nuanced reputations to give more information to both drivers and passengers. So that's features that are coming up. Also features of seeing where your driver is. I do also want to allow some better location tools, for example, like looking for a specific address and just the banner goes directly to the address, small details like that. It's like UI enhancements. I also, there are a couple of features that I do want to enable that are more Nostr enabled things. This will take a bit, like, I do want to make sure that the platform is working correctly before I start implementing more. And it has to do with accepting and finalizing rights. And one example is I can give you, let's say like you are at a party and you're a bit drunk and you ask, you ask someone to request a ride for you on your key, You request the ride, but perhaps you tell your friends at home or your family at home, like, Hey, I'm taking this ride, follow my key.And then maybe you can do like the settlement ride of the payment isn't done by your key, but for example, by another key. So then the driver knows that he can't get paid unless you get home, for example, things like that, that are, that I'm still working on or designing, but like, there's a really, a bunch of cool stuff that you can do like sharing keys between people, to do different types of, of verifications and love, like requesting rides for your kids.For example, and, and paying or paying rides for other people. For example, like, Hey, I'm stuck here. I need someone to give me a ride.Can someone pay for this lightning? So stuff like that, or more like to give more freedom to users. But yeah, that's a bit more with more time.

    Yofu: Yeah. I appreciate you answering my questions and thank you a lot for the amazing presentation.

    Roadrunner: Just to end on an open invitation for anyone to go into the app and play with it. You're completely welcome to play and try and ride and just all you need is a lightning wallet. Like I said, a test net lightning wallet. This is not real money. This is test net money. Like if you open this page, they'll give you like $80 to play with and go ahead and play, try to be a driver, try to be a passenger, give any feedback that you might have on the platform. I'm happy to get it right.and that comes from people just testing it out. I also want to see if none of my services break. So again, go ahead, play with them, try to break everything. And if it breaks, I'll be happy to fix it. Right. Let's just let me know, open invitation to everyone.

    Yofu: For sure. Yeah. Everyone can see this road runner details on the Hack Nordstrom on page, the BUIDL. And there is a, I think that you, you already put the links there,Everyone can try from there and read more about this. And if there is one more discussion about it, you're welcome to join the Telegram group.

    This is the first workshop for the Hack-Nordstr-On on this hackathon and which is hosted by YakiHonne.com and sponsored by DoraHacks. And Thanks again to the speaker, to all the audience here, to the community, to 42, to Isaac. And this is it. And our next workshop will be tomorrow, which is 19 o'clock or 7 PM GMT,So stay tuned, and subscribe to us.


    YakiHonne.com is a Nostr-based decentralized content media protocol, which supports free curation, creation, publishing, and reporting by various media.

    Follow us for more daily features:

    • Telegram: https://t.me/YakiHonne_Daily_Featured
    • Twitter: @YakiHonne
    • Hack-Nostr-On, Win 35,000,000 SATs NOW: https://dorahacks.io/hackathon/hack-nostr-on/detail
    • Nostr pubkey: npub1yzvxlwp7wawed5vgefwfmugvumtp8c8t0etk3g8sky4n0ndvyxesnxrf8q
    yakihonne.com iris.to jumble.social