6 votes

Feedback on a federated decentralized git hosting solution

I have an idea, it's not particularly new. I think git code sharing could integrate very nicely with blockchains.

I think it could be done elegantly without modifying the git protocol at all, just as an optional superset (like Github) to provide forks, PR and discussion.

Something like:

  • smart contract based system
  • something like lightening network for off master chain pushes
  • local node hosting all obtained versions of code, something like PNPM meets zeronet
  • cloning/pushing over DHT with web torrent.
  • client key pairs for collaboration and authentication

Do you guys think it could be done? Thoughts? Ideas? Criticisms?

Would anyone be interested in working on something like this? I'd like all the help I can get and any input people have.

16 comments

  1. [2]
    Crespyl
    Link
    You might be interested in Scuttlebut/Patchwork, which actually seems pretty close to what you describe, minus the contracts/proof-of-stake. It's a decentralized log-store/messaging platform...

    You might be interested in Scuttlebut/Patchwork, which actually seems pretty close to what you describe, minus the contracts/proof-of-stake. It's a decentralized log-store/messaging platform designed to work in the absence of a global network via an offline peer-to-peer "gossip" protocol.

    Each user is internally identified by their public keys, and posts messages by appending to a signed "block chain" style log, which gets replicated/forwarded by any interested peers.

    3 votes
    1. deleted
      Link Parent
      Thank you! This was actually one of the first things I came upon today. Scuttlebut looks really cool and applicable.

      Thank you! This was actually one of the first things I came upon today. Scuttlebut looks really cool and applicable.

  2. [14]
    Fires
    Link
    How do you expect you'll be able to decentralize a centralized system like Git?

    How do you expect you'll be able to decentralize a centralized system like Git?

    1 vote
    1. tyil
      Link Parent
      A what now? Git is built as a completely decentralized versioning system. People opting to centralize it in a single place such as Github or GitLab has nothing to do with git not being a...

      a centralized system like Git?

      A what now? Git is built as a completely decentralized versioning system. People opting to centralize it in a single place such as Github or GitLab has nothing to do with git not being a decentralized system. You can keep repos synced with ease with Github, GitLab, your other machines and whatnot, because that's how git was designed.

      8 votes
    2. [12]
      deleted
      Link Parent
      Git is not centralized at all. It's completely distributed. Each user already has a full copy of code and it's version history in each local repository that can be shared and merged. Each commit...

      Git is not centralized at all. It's completely distributed. Each user already has a full copy of code and it's version history in each local repository that can be shared and merged.

      Each commit is already hashed. Torrent clients create hashes to create torrents and share them to peers. We would need a layer for authentication and tracking commit hashes to allow users to then share the code with each other with a permissions structure which is where the blockchain would come in. So each project could have an owner and collaborators.

      Basically GitHub, but on a blockchain.

      6 votes
      1. [4]
        tyil
        Link Parent
        I don't think the blockchain is a magical solution for problems in the tech world. Especially due to the gigantic amount of power wasted on them, and them becoming incredibly more expensive with...

        I don't think the blockchain is a magical solution for problems in the tech world. Especially due to the gigantic amount of power wasted on them, and them becoming incredibly more expensive with time. We spent decades to make our tech "greener", and now one silly idea comes around and more than undoes all of it.

        If you want something that scales for the future, I would suggest you don't slap a blockchain on it.

        Also, how's the blockchain going to play around rebases?

        5 votes
        1. [3]
          deleted
          Link Parent
          I don't think it's a good solution for most things TBH. I'm not interested in the buzzword aspect of that at all. Also a proof of stake chain is different than a proof of work chain. I don't think...

          I don't think it's a good solution for most things TBH. I'm not interested in the buzzword aspect of that at all.

          Also a proof of stake chain is different than a proof of work chain. I don't think 700 Thps git mining operations would be cool at all lol.

          The reason I feel this works pretty well is that git repos are already a big ledger. It's just a list of commits with hashes already.

          Also, how's the blockchain going to play around rebases?

          It would already break everyone else repo if you force pushed a rebase to GitHub. That's just bad practice.

          1. [2]
            tyil
            Link Parent
            Bad practice or not, sometimes you have to do it. To remove an accidental commit containing a password, to name the most obvious one. And it wouldn't "break" the repo, it's still usable, you don't...

            Bad practice or not, sometimes you have to do it. To remove an accidental commit containing a password, to name the most obvious one. And it wouldn't "break" the repo, it's still usable, you don't have to go around git or re-clone the repository after a forced push to a remote.

            1 vote
            1. deleted
              Link Parent
              And for your collaborators who have already added modifications to their local copies? It's broken. Like you said they would have to re-clone. If a user with the correct permissions did this, a...

              And for your collaborators who have already added modifications to their local copies? It's broken. Like you said they would have to re-clone.

              If a user with the correct permissions did this, a new hash would be calculated anyway, so I'm not sure that the outcome would be any different. However that old code would still be out there somewhere if people had already cloned it.

      2. [7]
        Fires
        Link Parent
        @tyil @deleted Okay, it's possible I'm wrong. I'd be interested in seeing you guys create this to prove that it'd work :)

        @tyil @deleted

        Okay, it's possible I'm wrong. I'd be interested in seeing you guys create this to prove that it'd work :)

        1. [6]
          deleted
          Link Parent
          Me too :) TBH, I really don't know if it's possible or viable. That's why I need ya'll brighter and more experienced minds for feedback and help.

          Me too :)

          TBH, I really don't know if it's possible or viable. That's why I need ya'll brighter and more experienced minds for feedback and help.

          1 vote
          1. [5]
            Fires
            Link Parent
            Personally I dislike blockchain and the current mindset that's infected people around it, only reason I'm skeptical

            Personally I dislike blockchain and the current mindset that's infected people around it, only reason I'm skeptical

            1. [4]
              deleted
              Link Parent
              I hear that. People are applying it to every stupid thing these days. I suspect because VC firms are very excited about it cause it's trendy. However, I do think blockchain has legitimate...

              I hear that. People are applying it to every stupid thing these days. I suspect because VC firms are very excited about it cause it's trendy.

              However, I do think blockchain has legitimate applications and that it's a beautiful concept.

              2 votes
              1. [2]
                Fires
                Link Parent
                It's very trendy. And that is it's downfall. What legitimate applications would you use it for?

                It's very trendy. And that is it's downfall.

                What legitimate applications would you use it for?

                1. deleted
                  Link Parent
                  Decentralized ledgers that require a trust system. Currencies are a clear candidate, decentralized market places, certain types of chats or communications, maybe git? I haven't spent a lot of time...

                  Decentralized ledgers that require a trust system.

                  Currencies are a clear candidate, decentralized market places, certain types of chats or communications, maybe git? I haven't spent a lot of time trying to think of applications for it.

                  2 votes
              2. sqew
                Link Parent
                I feel like this tweet from iamdevloper on Twitter is relevant here... I do agree with you though, blockchain has some awesome applications that will hopefully be realized once the hype dies down...

                I feel like this tweet from iamdevloper on Twitter is relevant here...

                I do agree with you though, blockchain has some awesome applications that will hopefully be realized once the hype dies down a bit and people can be more reasonable about deciding what blockchain should and should not be used for.