2024 Q3 Report

All the projects I worked on in Q3 2024

Applesauce

I’ve been working on cleanup up a lot of the old crufty logic in noStrudel and as part of that process I’ve started breaking out a lot of the “event interpretation” layer into a new library applesauce

The goal with the library isn’t to build another “nostr SDK” but instead to only tackle the problem of how the UI layer of web apps should get data from events and update when new events are detected. Its still a work-in-progress but if your interested check out the docs (hopefully ill write some examples soon)

nsite

After SEC-02 I noticed @elta…cume created a project built on top of blossom called nsite which was a simple static website CDN using nostr to store the object paths and blossom to store the objects themselves

Because I don’t know python I decided to write my own implementation of it in typescript nsite-ts and started hosting it at https://nsite.lol

@florian also created super easy cli tool for uploading static sites to blossom servers called nsite-cli. If your a developer of a nostr web app I would encourage you to give it a try

I also opened my first NIP PR for static websites :D

Blossom

Thanks to @quentin, @80cv…h6w6, @Kieran, and @Anthony Accioly for opening PRs and contributing to the blossom spec. also thanks to everyone else who has shown interest in it. its awesome to watch it slowly grow

There are two more optional BUDs in the spec now

  • BUD-06 Upload requirements
  • BUD-08 Nostr File Metadata Tags

And a two breaking changes

  • X-Reason for all error messages
  • Authorization events may have multiple x tags with hashes PR

noStrudel

I’m continuing to work on noStrudel and add new features and iron out bugs. I can’t list everything here but the next release of the app is shaping up nicely. you can see the changes here

Hyper SOCKS5 proxy

Mostly a weekend project but I created a SOCKS5 proxy for hyperDHT and holesail called hyper-socks5-proxy that uses a bech32 encoded version of the holesail “connection strings” (public keys) to make them compatible with traditional URLs hyper-address

If you want to give it a try you can run it using npx hyper-socks5-proxy start to run it locally and have a SOCKS5 proxy that can connect to any hyperDHT or holesail node

Full post here:

hzrd149
Aug 17, 2024 17:52

Well jokes on me because this code actually works, I just never finished it enough to fully test it

Referenced event not yet available nevent1qvzqq…sy0z7jdy

So without further ado I present to you Hyper SOCKS5 Proxy

This is a SOCKS v5 proxy server that can automatically connect to HyperDHT node and Holesail servers. This is cool because it lets any application that already supports SOCKS5 or HTTP proxies ( mainly web browsers ) to connect to hyper nodes

Let me show you can example

First we have to startup a http server and use holesail to make it available on hyper

Next, on a different machine we can connect to it using hyper-socks5-proxy and configure FireFox to use the proxy https://v.nostr.build/3bcbJMX7XbaWMdfA.mp4

NOTE: besides this example ( tested on my LAN ) I have not tested anything else. but in theory it should be possible to host relays over hyperdht

The reason I had to convert the hex connection string ( hyperdht pubkey ) into a bech32 address was because the maximum length for a domain name is 63 characters. and the connection string is 64… But encoding it to bech32 with a 4 character prefix makes it only 58. Its identical to how nostr npubs are encoded

Anyways here are the links to the code if you want to play around with it

https://github.com/hzrd149/hyper-address ( https://hzrd149.github.io/hyper-address/ ) https://github.com/hzrd149/hyper-socks5-proxy https://github.com/hzrd149/hyper-http-proxy

This is also available on my custom umbrel app store. If for some crazy reason you want to run my untested code on your lightning node ( please don’t ) https://github.com/hzrd149/umbrel-community-app-store

#pear #hyperdht #holesail #proxy #socks5

Other experiments

CherryTree

A small app for uploading and downloading chunked files on blossom servers repo

Blossom HLS uploader

A half working cli tool to upload HSL videos to blossom servers repo

PoW note DVM

A simple content recommendation DVM that recommends notes with the most proof of work repo

Plans for Q4

  • Release a working v1 of applesauce packages with documentation
  • Release v0.42.0 of noStrudel and start next phase of refactoring the networking code
  • Remove “app relays” from noStrudel and make it work entirely on the outbox model
  • Try to make WebRTC relays work one last time (before I give up on it forever)
  • Work with quentin and leo to release multiple types of paid blossom servers. and also build my own
  • More noStrudel features? highlights? NIP-29? cashu wallet?
Write a comment