I'm personally interested if we can replace git servers by blossom servers. Each blob is identified by its sha1 in git but each file is identified by sha256 in blossom so that might be challenging.

Reply to this note

Please Login to reply.

Discussion

nostr:npub1elta7cneng3w8p9y4dw633qzdjr4kyvaparuyuttyrx6e8xp7xnq32cume has been working on a blossom-based remote helper.

right now the repository needs to be entirely sha256 based rather than sha1. https://github.com/lez/git-remote-nostr

I've been thinking about a parallel to blossom with git servers.

refs are stored in an event per https://github.com/nostr-protocol/nips/pulls/1249.

the data related to each branch tip can be fetched from `git:///`

the blossom git servers will accept any pushes match the tip of ref listed in a state event published by whitelisted npubs. They could even maintain branches `///`

Why replace git servers? Git servers are tried-and-true to the point that trying to re-implement them on a new tech stack would almost certainly be a step back. Any computer that has git installed can act as a simple git server; we should capitalize on that.

just need a protocol adapter in my opinion, no need to change the git shell

nothing about nostr is especially prohibitive when used with ephemeral event kinds to carry protocol messages

the most tricky part is there is currently only REQ and COUNT so you would need to add a PROTO envelope or something, and also, you can make them more secure because you can require a time window tied to the push/pull inside the content field

Any computer can also act as a blossom server. After reevaluating, I realized what we need is not git server alternatives, but allow more stuff to act as a git server by making git itself understand and support new transport protocols (nostr:// or blossom://)

Yeah we really just need git object discovery via Nostr/Blossom. That's fairly simple, since all git objects are uniquely identified by a hash. So, on some level, all we need is a table of git object IDs and where to find them.

That was what I was trying to express initially: using blossom servers to fetch blobs by their hash. Issue is the incompatible hash...

I went down this whole rabbit hole when I rage coded snub. https://github.com/nostrocket/snub