nostr:npub1elta7cneng3w8p9y4dw633qzdjr4kyvaparuyuttyrx6e8xp7xnq32cume, your git blossom remote helper POC looks super interesting. I appreciate you building it.

In the context of nip34 its welcome alternative to using a git server with a different trade-off balance:

1. blossom - nostr native, quick to get started, easy to grok and understand decentralisation benefits

2. git server - robust, efficient, battle tested and highly scalable

I'm excited to see how the blossom landscape evolves. I wonder whether free-to-host blossom providers will block this use-case either proactively or inadvertently through rate limiting.

I like the idea of paying for a reliable blossom service but it add getting started friction.

The design.rst was really helpful. I wonder how relying on transporting loose objects impacts real-world performance. I suspect for many repositories it won't be too much of an issue. using a DVM to package objects is a great idea.

I wasn't able to take it for a spin as it failed to execute (see github issue).

I wonder whether renaming it as git-remote-blossom might be more accurate? I foresee a git-remote-nostr proxying requests to remotes listed in the repo announcement `clone` tag which could include blossom://npub/identifer. This would provide the flexibility for maintainers to switch from using a git server to blossom and vice versa. from a UX point of view the user will still run `git clone nostr://npub/identifier`

I look forward to seeing where this goes!

Reply to this note

Please Login to reply.

Discussion

Hi, thanks for the feedback!

I don't get the usecase with the git-remote-nostr proxying requests. Do you mean blossom scheme should be used in `clone` tags instead of nostr://, and nostr:// would be some kind of multiplexer for the remotes that show up among the `clone` tags?

I released a remote helper as part of ngit v1.4. I'd be interested to here your thoughts.

nostr:nevent1qvzqqqqqqypzpgqgmmc409hm4xsdd74sf68a2uyf9pwel4g9mfdg8l5244t6x4jdqythwumn8ghj7un9d3shjtnwdaehgu3wvfskuep0qy88wumn8ghj7mn0wvhxcmmv9uqzpup60a5qd308waeu590ycv5n0dp5pgsrjcq6uey2sjk0kx2nmdnhexr5rv

1. it proxies to all urls listed in `git clone` so maintainers can switch between git servers (and potentially to other protocols like blossom) without creating friction for users who have already cloned.

2. it store the refs in a nostr event so the clone url doesn't need to be trusted to deliver the correct state.

3. it add open proposals to a `pr/*` branch namespace so they can easily be pushed and pulled without having to learn new commands and understand how patches work.