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.
I've been thinking about how to improve #GitViaNostr
* make it more git native experience
* reduce the role of the git server
* integrate releases
Here is a concept ngit quick start guide: https://gitworkshop.dev/concept
I'd love your feedback
I've already started to build out some of the new features
nostr:npub16r0tl8a39hhcrapa03559xahsjqj4s0y6t2n5gpdk64v06jtgekqdkz5pl nostr:npub1m4ny6hjqzepn4rxknuq94c2gpqzr29ufkkw7ttcxyak7v43n6vvsajc2jl nostr:npub1wqfzz2p880wq0tumuae9lfwyhs8uz35xd0kr34zrvrwyh3kvrzuskcqsyn nostr:npub1uplxcy63up7gx7cladkrvfqh834n7ylyp46l3e8t660l7peec8rsd2sfek nostr:npub1elta7cneng3w8p9y4dw633qzdjr4kyvaparuyuttyrx6e8xp7xnq32cume nostr:npub180cvv07tjdrrgpa0j7j7tmnyl2yr6yr7l8j4s3evf6u64th6gkwsyjh6w6
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