Front-end react developer building my own nostr client. https://nostrudel.ninja/
hzrd149 @hzrd149 - 23h
The WoT is a misnomer, its actually just a "web-of-intrests". which means it isn't that good at filtering out spam because some of your friends might be interested in "spam" Its still useful for discovering content or discovering popular users in your circle though nostr:nevent1qvzqqqqqqypzpde8f55w86vrhaeqmd955y4rraw8aunzxgxstsj7eyzgntyev2xtqythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0qy88wumn8ghj7mn0wvhxcmmv9uqzqrl7gluldh4k0xwscr2awkwmfxgcp7ncvplv7fxekssuqnd2yjygvn5d6g
Yes, yet another missing feature in the app. It will eventually back off trying failed relays but I haven't built the "offline" state yet My idea is after trying to connect x times the app puts the relay on a local blacklist and stops talking to it. then if the user likes they can clear that list to retry offline relays
hzrd149 @hzrd149 - 1d
welcome to the dark side :)
nostr:npub1g53mukxnjkcmr94fhryzkqutdz2ukq4ks0gvy5af25rgmwsl4ngq43drvk double ratchet encrypted messages. I'd like to build a simple client for it to see I can understand it. https://github.com/nostr-protocol/nips/pull/1813
I build a simple bot that can be used to bridge ephemeral chat messages in nostr relays https://www.coolr.chat/ to IRC channels Its probably not very useful but its a fun experiment
Still not a fan of NIP-59 gift wraps but I need them in order to work on NIP-117 an NIP-118 Next release of applesauce will make it very easy to gift wrap any event
hzrd149 @hzrd149 - 2d
Wait C++. I thought all nostr development was supposed to be in JavaScript 😁 Building an app first is the best way to build an SDK, thats what I've done with noStrudel and applesauce. it lets you get a really good understanding of what is needed and what actually works so you don't build the wrong things for the SDK
I hope it helps and I would encourage you to give it a try for web apps instead of NDK. although you will have to be a little more patient since my docs are lacking
Looks like its working again. but noticed another small issue If I reload the stream page and try to send a message the console shows an error along the lines of "no signer found" even though I'm logged in
With that video thumbnail I was expecting a 30 minute documentary 😞
also app does not load for me anymore in a fresh incognito tab so I think something is broken
Tried to zap a stream and got this error Tried to zap the stream and got this error https://cdn.hzrd149.com/d1e8f51e379b31eba17998214f9d383e6b41b7581dd6e2a126265159700d4620.webp Also I somehow managed to get the app into a state where it wont load anything and when I try to login it says "Nostr extension not found" even though window.nostr exists 😞
hzrd149 @hzrd149 - 3d
That is what it's doing, but It keeps the connection open for two minutes just in case more requests need to be made. otherwise it would keep spamming the server with a new connection for every request
The app follows all relay hints and I haven't thought to add an option to turn it off since my focus has been to see all events It wouldn't be too difficult to add an option, however the code is somewhat a mess so finding all the places where relay hints are used would be difficult :(
Great to see you again nostr:npub1zach44xjpc4yyhx6pgse2cj2pf98838kja03dv2e8ly8lfr094vqvm5dy5
hzrd149 @hzrd149 - 4d
I don't know, I tend to think the main reason nostr took off so quickly was because it had extremely simple cryptography compared to other systems and that it worked in a web browser But that is probably just my bias since I wouldn't have started working on nostr if it weren't for that :)
Once I finish NIP-17 support I think I'm going to start looking into nostr:npub1g53mukxnjkcmr94fhryzkqutdz2ukq4ks0gvy5af25rgmwsl4ngq43drvk double ratchet NIP. It requires the client to keep state, but If I remember correctly it requires a lot less decryption requests from the users pubkey since it uses rotating random keys https://github.com/nostr-protocol/nips/pull/1813 nostr:nevent1qvzqqqqqqypzqfngzhsvjggdlgeycm96x4emzjlwf8dyyzdfg4hefp89zpkdgz99qyf8wumn8ghj7mn0wd68yat99e3k7mf0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qpqh76z8vrufl3f2x6r3w2tgzm53uvmguugg8s03v8e2d26z7f7ta7sfvcnpm
In my experience remote signing with nostr keys works well enough and doesn't seem to be the bottle neck since a signature is only needed when the user is taking an action so any delay can be handled with a loading screen. Remote decryption is more of the issue since its slower than signing and usually requires more than a single call (user opens DM conversation). NIP-59 just makes this worse though by 2x the number of calls I don't know what a good solution is but I don't think its key delegation or derivation since that requires either a messy permission language (NIP-26) or a extra metadata layer or changes to the relays 😞
Trying to add NIP-17 and NIP-59 gift wrap support to applesauce and I'm being constantly reminded of why its a bad NIP. only clients that have full access to the users nsec can realistically implement NIP-17 DMs in a performant way. Its not a good user experience when each message requires two decryption requests and all of it has to be cached to avoid unnecessary future decryption requests
This should be an interesting episode. nostr:nevent1qvzqqqqqqypzqk8eqh76q32nxr27nz3afhc7zlz9926vrmty3um37yqz23rme8q3qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qpqz9heh254lucc6zjmr3gqllca6dyp5ha2ashrj8tzr8udgj3egncsh3q3ch