What do you think about this?
git doesn’t have (or for its purposes, need) this, so it doesn’t meet any common definition of blockchain.
Prior question: https://news.ycombinator.com/item?id=9436847
From the same source: "A blockchain – originally block chain – is a continuously growing list of records, called blocks, which are linked and secured using cryptography. Each block typically contains a hash pointer as a link to a previous block, a timestamp and transaction data. By design, blockchains are inherently resistant to modification of the data."
It's not "a way to establish consensus". It's just to slow everybody down to
comparable level, while keeping verification fast. Consensus is a totally
different problem blockchain doesn't even touch.
"I found blockchain resembles Git, the source code management system a lot. Git is decentralized, each programer has a local duplication. What’s saved by Git is a journal of updates to source files (commits). To get the latest file, you apply a series of patches onto the initial commit. You can generate local git commits. These commits will not be written to other people’s Git repository yet, until you perform a “git push”. This is like having a local Bitcoin block, but only when you have won a lottery (mined a lucky number), you have the opportunity to write your local block to the blockchain. You also cannot write random data to the blockchain. Your change has to be verified by others, just like doing code reviews before a “git push”. Or in Bitcoin, a commit (a data write to the blockchain) has several recent transactions. Each of them needs to be cross verified by others."
So, in my opinion, you're wrong; its bytes lives in many locations.
Is it a blockchain? No.
Git doesn't swarm in a way that often gets associated with the idea of "p2p" by the prevalence of more popular p2p protocols used for file-sharing or cryptocurrencies. Nor is it geared towards world-readability. But none of those are intrinsic properties of peer to peer protocols.
I can (and do) use the git software on my computer to pull from co-workers development desktops running the same git software as me. And they pull from me, all with no external servers used coordinate that exchange of trees. That makes git peer to peer. No amount of tools built on top of git that require treating one peer as the a point of centralization can undo that. It just means that those tools aren't p2p.
This distinction is often invisible to users, and I don't blame people for missing it because the business model of GitHub and GitHub-competitors rests on everyone thinking they're necessary.
"Unlike Centralized Version Control Systems (CVCSs), the distributed nature of Git allows you to be far more flexible in how developers collaborate on projects. In centralized systems, every developer is a node working more or less equally on a central hub. In Git, however, every developer is potentially both a node and a hub – that is, every developer can both contribute code to other repositories and maintain a public repository on which others can base their work and which they can contribute to. This opens a vast range of workflow possibilities for your project and/or your team, so we’ll cover a few common paradigms that take advantage of this flexibility. We’ll go over the strengths and possible weaknesses of each design; you can choose a single one to use, or you can mix and match features from each."