Live data from Hacker News

Is Git a Block Chain?

domustower.com

11–20 of 55 posts

Re: Is Git a Block Chain?

#11
post #9
post #3

No, its not. Its just a chain. There's no block. The block in a blockchain is everything to do with distributed / trustless conscensus.

Imagine how cool it would be if I could share a guid for my repo - and then your bit client (let's call it gitcoin, or maybe just bit) can fetch new commits from a distributed block chain (essentially the git log). Github is no longer an intermediary or a single point of failure. Private repo? Don't share the guid.

That's a great idea, and some bright folks are working on it! http://ipfs.io/

Re: Is Git a Block Chain?

#12
The strength of bitcoin is the blockchain. It prevents you from going back and rewriting history--you can only append to the current block.

In Git you can change history. So I don't think Git can be called a blockchain, although it shares the sames concepts, like the merkle tree.

Re: Is Git a Block Chain?

#13
post #7

Both git repositories and bitcoin are specialized Merkle trees. Merkle trees are incredibly useful and general; they are used in many kinds of verification, especially of large chunks of data. http://en.wikipedia.org/wiki/Merkle_tree

I thought it was a directed acyclic graph. Care to share the distinction?

Re: Is Git a Block Chain?

#14
post #7

Both git repositories and bitcoin are specialized Merkle trees. Merkle trees are incredibly useful and general; they are used in many kinds of verification, especially of large chunks of data. http://en.wikipedia.org/wiki/Merkle_tree

I thought it was a directed acyclic graph. Care to share the distinction?

You can see git's DAG as a dedup'd Merkle tree: in other words, if two child pointers in two places in the tree point to nodes (blobs) with the same hash, make them share a single node instead.

This works because the hash "is" the content/entire subtree (modulo hash collisions), so the resulting data structure has the same meaning as before.

Content/hash-addressed stores are related to referential transparency and immutability (and deep equality) in languages like Haskell, FWIW. I've always thought it's sort of beautiful how cleanly the ideas come together like that.

Re: Is Git a Block Chain?

#15
post #11
post #9

Earlier quoted context omitted.

Imagine how cool it would be if I could share a guid for my repo - and then your bit client (let's call it gitcoin, or maybe just bit) can fetch new commits from a distributed block chain (essentially the git log). Github is no longer an intermediary or a single point of failure. Private repo? Don't share the guid.

That's a great idea, and some bright folks are working on it! http://ipfs.io/

I want to make sure people don't overlook this IPFS link as just a decentralized GitHub. IPFS is building a content-addressable web. Think about how BitTorrent magnet links work—it's a hash of the actual movie (or Linux distribution) you're trying to download, and using that hash, you can connect with all the people who've already downloaded it to get it from them. On a content-addressable web, pulling up the New York Times would be looking up a certain hash, which would pull the content from your neighbor three doors down who read it earlier this morning. The web won't be servers that you hit with your browser anymore. It'll be content that lives forever, always reachable by its hash.

As long as people want to read what you're publishing, publishing is free. And fast. Around the planet. The web is about to get way better, and IPFS and its competitors are going to be what pushes it forward.

Re: Is Git a Block Chain?

#16
post #7

Both git repositories and bitcoin are specialized Merkle trees. Merkle trees are incredibly useful and general; they are used in many kinds of verification, especially of large chunks of data. http://en.wikipedia.org/wiki/Merkle_tree

I thought it was a directed acyclic graph. Care to share the distinction?

[deleted]

Re: Is Git a Block Chain?

#17

The strength of bitcoin is the blockchain. It prevents you from going back and rewriting history--you can only append to the current block. In Git you can change history. So I don't think Git can be called a blockchain, although it shares the sames concepts, like the merkle tree.

I feel like that's not really a fair statement. With git, if you change the history, it effectively tosses out the old tree and creates a new one with new hashes. You're really not modifying the old history, you're saying "Get rid of the current history tree and create a new one with this change in it". You can do the same with Bitcoin, you could modify your copy of the blockchain to insert some new transaction, and then replay all the subsequent transactions that happened on the blockchain (All of these transactions get different hashes).

The result for both is the same, both of them will throw errors if you attempt to pull data from a git repo or blockchain which has invalid hashes that don't match the ones you already have - This is why it's a problem if someone decides to use rebase on a public branch that people are pulling from, the hashes will change and people will get errors when they try to pull because the histories don't match.

Post reply on HN