So am I the only one who didn't know Marcus' real name?
Honestly it's the other way around for me. It's refreshing to be building for so many smart people, and to be surrounded by smart devs.
I think he means relays who don't play by the rules.
A malicious relay coud:
- send the same message(s) multiple times
- send extra messages that don't match the filters
- do this both for stored events (pre EOSE) and for streamed events (post EOSE)
IMO its a viable attack vector, because clients have less resources so by doing the above, a relay could DoS a client.
Even if unexpected events are "filtered out" by the client before showing them to the user, the client still presumably verifies they're valid events, and signature verification is quite intense. So unexpected large events are also an attack vector, they can hit the client CPU hard.
Nostr SDKs used in clients could defend against most of this by
- only returning events that match the subscription filters
- only validating if an event is valid (signature) if the above is true
- not processing and returning events that have already been seen before (much harder to do)
cc nostr:npub1drvpzev3syqt0kjrls50050uzf25gehpz9vgdw08hvex7e0vgfeq0eseet
Probably not a concern now, because Nostr is small.
(Another defence for clients is to use a semi-trusted relay aggregator like Wine or caching service like Primal)
Clients can also simply disconnect from.misbehaving relays
Ironically, I bet bitcoiners are less likely to pay down debt than other financially conservative people, since you can always buy bitcoin instead
That's a good way to do it if you have the resources. I try to keep my stores under 10k records which gets filled up surprisingly fast. The complexity in my stack also comes from me doing all kinds of weird experimental things
You will see many people building various things here, never forget that there are some developers who have built the core technology, making it much easier for all of us to start building on top of that.
Before I do anything with the calendar, I really want to appreciate & thank nostr:npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn for his work with calendars and various other facets of nostr. 🫡
🙏
nostr:npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn
The early years are rough, hang in there!
nostr:npub108pv4cg5ag52nq082kd5leu9ffrn2gdg6g4xdwatn73y36uzplmq9uyev6
Often rough, always good
Probably not a problem for clients, since they only get what they ask for. Relays can use auth, PoW, rate limiting, payments, etc. Users need clients to build better tools
THE NOSTR REPORT
THE SOCIAL INTERNET
Sep 16, 2023
Block Height: 807,980
Moscow Time: 37:66 ⚡/ $
V4V: 12 zaps ⚡7,573
Top Zappers: 3-way tie nostr:npub1ezw0xm0w52rd4yfdg9zlw9qvwdy46alzelklkefptrd203m37tuq4djmeg nostr:npub1cmmswlckn82se7f2jeftl6ll4szlc6zzh8hrjyyfm9vm3t2afr7svqlr6f nostr:npub19jk45jz45gczwfm22y9z69xhaex3nwg47dz84zw096xl6z62amkqj99rv7 (⚡2,100 each)
Nostr Report is committed to V4V, thank you to our supporters.
—--------------------------
🎙️Quote of the Day🎙️
—--------------------------
“It's not a social app, it's the social internet.“ #Nostr
nostr:npub1kmsnnxw6p8vlk2l2dh0443jkj0txl7jrww8qpx4vd428he0a8jqqy6tjep
nostr:note1d4jccz058f8dn9vr9x9ftpel5sf7kt0vhejyya9dp7540le53lls8asle3
—--------------------------
🚨Headline Nostr News🚨
—--------------------------
nostr:npub1tvqc82mv8cezhax5r34n4muc2c4pgjz8kaye2smj032nngg52clq0rkrq4 Unfortunately there were issues with the recording of last night’s #Plebchain Radio with nostr:npub1fnn2h0tgm2mwnl0kar5ez25wztum2w0q0rrrf326n0ljn999znwsqf4xnx and the episode was lost. Take a moment to read QW’s apology and call to action to support Nostr Nests development.
nostr:note1vvlvnsceg360ncdk8gyzqkvyk4kgpm5zukau3u2uv8fxx8kdg3vq922vat
nostr:npub1xtscya34g58tk0z605fvr788k263gsu6cy9x0mhnm87echrgufzsevkk5s announces nostr:npub13v47pg9dxjq96an8jfev9znhm0k7ntwtlh9y335paj9kyjsjpznqzzl3l8 as the Damus team’s first official employee, and credits OpenSats for making it possible. 💜
nostr:note1z7mnv3nqtdnwtjguvjzgmd303qkry6dyfjujwm3awq6edekuuens3e94vs
nostr:npub1h50pnxqw9jg7dhr906fvy4mze2yzawf895jhnc3p7qmljdugm6gsrurqev says thank you for the overwhelming level of interest and talent they saw in the applicants. “It only means good things for this community and the future.”
nostr:note1x3qc2frpxdhlcle947v9u5cekjw2p24lplulc8gmnuu5xf36hr5sh39m36
nostr:npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn shares a video of the new Coracle UI with an embedded music player! 🎧
nostr:note135ek0etrjlah0nvtwal6wmrnql4j7dzzfj8nk9aa3yhy0c4ry9fs03yh20
Ars Technica: “X revokes paid blue check from United Auto Workers after strike called.” According to the article, “The move seemingly makes it harder for UAW to maximize reach for its posts on X, just as workers have begun striking, demanding better wages and other benefits.” Although the verification check was later restored, this serves as a clear reminder of the power and potential dangers of centralized algorithms to manipulate free speech.
—--------------------------
💻nostr Tech💻
—--------------------------
nostr:npub1r0rs5q2gk0e3dk3nlc7gnu378ec6cnlenqp8a3cjhyzu6f8k5sgs4sq9ac announces a ⚡️2M bounty to create shareable mute lists that incorporate specific words
nostr:note1lz39ueh4tyerw5s0jx5x334x2j3sr7cssnvvtnrdepnaz7k3ky2ssl6ss5
nostr:npub1alpha9l6f7kk08jxfdaxrpqqnd7vwcz6e6cvtattgexjhxr2vrcqk86dsn “It's already done bro.” Jingles posts reminder that Nostr.kiwi already has a muted words feature. 🏆
nostr:note1jk2jnc4z7rqkhhvhx6kfedtt9mfn8ysfqj5vqe477hpyy4jr3szs9cf2zw
nostr:npub1alpha9l6f7kk08jxfdaxrpqqnd7vwcz6e6cvtattgexjhxr2vrcqk86dsn w3.do minor update with a new logo and UI tweaks.
nostr:note10xnfyhpvpx782f8dv3m3z826wkqlxzhen0q7ftr5nk04hcm8km5qzyz66n
nostr:npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn shows a video of Coracle UI, looking good!
nostr:note135ek0etrjlah0nvtwal6wmrnql4j7dzzfj8nk9aa3yhy0c4ry9fs03yh20
nostr:npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z Zap Splits implemented in new Amethyst update v0.76.1.
nostr:note1st47tnrry9ysmjuedrshut8hn406npaaa3mdft0pzzvtl4sd470q4dmujr
nostr:npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z calls on the Lightning Dev community to help solve a problem encounter with ⚡️ Zap splits - the ability to pay multiple invoices in a single call
nostr:note1d2wqanqgeqcfpt2krqjn58mlany5x0qp90dd2qu9l5gws0xcrv9swll8xz
nostr:npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z shares that a ⚡️1M bounty was put up by nostr:npub16jdfqgazrkapk0yrqm9rdxlnys7ck39c7zmdzxtxqlmmpxg04r0sd733sv to port #Amethyst to iOS 👀
nostr:note1lggpsqvnncglc4ca3yx7xm9920nfu9sqjgpzzln0gh0qfctgj5zss0kw3r
nostr:npub1cmmswlckn82se7f2jeftl6ll4szlc6zzh8hrjyyfm9vm3t2afr7svqlr6f Updates coming to Zapit will allow you to manage your wallet with Zeus or BlueWallet, create reusable LNURL pay invoices, create LNURL withdraw vouchers, and more.
nostr:note1mkty3pn2q6d9fugd5v7p6zcj8mxfsw6rmjn4a8rw84ptcnmly6vq4wc6yj
nostr:npub1xnf02f60r9v0e5kty33a404dm79zr7z2eepyrk5gsq3m7pwvsz2sazlpr5 6M⚡️ bounty for CLN commando in Zeus
nostr:note1prr437wwlffnaqajwspdglyf6cyucy6pncq8hk4dyqp8wh5qyxtskq0p5l
nostr:npub1xnf02f60r9v0e5kty33a404dm79zr7z2eepyrk5gsq3m7pwvsz2sazlpr5 Drops v0.8.0 for testers and releases some new documentation on connecting your routing node at home to
your embedded node in your Zeus wallet.⚡️🏡
nostr:note1ynxacqnaqt6peejhnazg4r7zj38hh9nc7dknje55z4sx43q0ez6qr8x6rz
And a contact book for lightning addresses and Nostr contacts coming soon to Zeus. 👀
nostr:note10pvdxj5vp6lrnwpwlra9xncurdvnvj0r67qr2nap35vdex73al7s9ym3w7
—--------------------------
⚡nostr Business⚡
—--------------------------
nostr:npub1l2vyh47mk2p0qlsku7hg0vn29faehy9hy34ygaclpn66ukqp3afqutajft says organic distribution is one of Nostr’s killer apps, enabling and empowering a renaissance of small makers and entrepreneurs who will no longer need intermediaries to reach their audiences/customers.
nostr:note16d7uhalyxu5mx5ze0jm2r4ywuprpnsfp5ns8ryxaffhzn7ce6rwqdpm8fu
nostr:npub1cmmswlckn82se7f2jeftl6ll4szlc6zzh8hrjyyfm9vm3t2afr7svqlr6f shares a new Zapvertising model using invoices ⚡️
nostr:note1lcy3p0tmxg0yghlvk57pr2lnga4apmw56zp8kmkt23k954t5fy6s3cg0e2
—--------------------------
🔥🔥Meme of the Day🔥🔥
—--------------------------
nostr:npub1cj8znuztfqkvq89pl8hceph0svvvqk0qay6nydgk9uyq7fhpfsgsqwrz4u Inflation is defeated…
nostr:note1zsqzp4032wujp77m0axzaamhsfuj3t4syksev46pp77aelqqxjgs6vphve
—--------------------------
Stay Classy, Nostr.
So good I got mentioned twice 😉
I wrote a prototype at calendar.coracle.social, nostr:nprofile1qqsvdac80utfn4gvly4fv54la0l6cp0udpptnm3ezzyajkdc44w53lgpzdmhxue69uhhyetvv9ukzcnvv5hx7un8qy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqhfknsg is building it into nostrnet.work now
I just pushed a whole load of changes to https://www.inmytown.social/ (my Meetups on NOSTR app)
It now uses NIP-52 time based calendar and RSVP events, alongside some unofficial kinds for creating and following meetup communities.
If you were one of the small number of people that had created a community already then you'll need to update the community for it to display correctly, and existing meetup events will no longer show (AFAIK they had all passed the event date anyway)
I've added a breakdown of the event kinds to github here: https://github.com/BrightonBTC/inmytown.social/blob/main/README.md and suppose I'll formalise this in to a NIP proposal at some point soon too.
I'd love your feedback 🙏🏻
but for now it's time to get way from the screen for a while!
Pura Vida!
Cool! I had not heard about this one
Querying stuff from relays is not trivial. I am currently using 8 separate layers of abstraction to build feeds:
1. A websocket wrapper
2. A message buffer to avoid locking up the ui, sending too many concurrent reqs, and handle pausing messages while negotiating auth
3. A target interface which allows for different relay implementations like multiplextr or a local relay
4. An executor that works with a target to actually do stuff
5. A subscription object which queries multiple relays, aggregates results, and tracks which relay an event was seen on
6. A cursor object to perform windowing for a given relay
7. A load function which throttles and merges concurrent filters with a timeout
8. Feed/context loaders that take a filter, listen with a subscription, load using cursors, and fetch context with loaders
If relays always returned results in order it would simplify and optimize some of this away. But it really is irreducably complex.
Currently coding at 5 am with a baby hanging on my neck
Stemstr publishes a streaming url, I just create a html Audio object and go
All note sharing links outside of Nostr should look like this link... 🤙
#my2sats
cc nostr:npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z nostr:npub1xtscya34g58tk0z605fvr788k263gsu6cy9x0mhnm87echrgufzsevkk5s nostr:npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn nostr:npub1v0lxxxxutpvrelsksy8cdhgfux9l6a42hsj2qzquu2zk7vc9qnkszrqj49 nostr:npub16c0nh3dnadzqpm76uctf5hqhe2lny344zsmpm6feee9p5rdxaa9q586nvr
Agreed, it's been on my list for a while, but there are some minor technical hurdles
Actually it plays new 1808 tracks from stemstr, which include a link for streaming
