November 7, 2019
“Bitcoin is a superior currency because it’s open-source.”
“What do you mean the Ethereum code is public on GitHub?”
Blockchain/cryptocurrency projects & the ever-mysterious open-source. If you come from a nontechnical background, you’ve probably wondered just exactly what open-source means; if you’ve hung around developers, in particular, you might’ve even heard about the powerful GitHub & the world of repositories.
Understanding how open-source repositories work, as well as exploring the very basics of the GitHub platform, is probably one of the most effective ways to understand cryptocurrencies & their respective communities at a deeper level.
Code talks. And learning how to view the source code for cryptocurrencies projects by yourself, regardless of your programming proficiency (or lack of), is an indispensable tool.
In this article, we break down exactly what open-source means & explore how blockchain & cryptocurrency teams leverage GitHub. Throughout, we’ll break down some associated jargon, so that the next time your developer friend says “the shitcoin you told me about has literally zero commits to its repository, it’s clearly a scam”’ you’ll know exactly what it is she’s talking about.
***author disclaimer here — Many developers consider GitHub metrics as vanity metrics at best in terms of a project’s progress. While I think this is a debate that merits it’s own article, I maintain that educating & encouraging nontechnical users to explore source code themselves (as opposed to relying on sketchy 3rd-party sources & journalists) is an endeavor that’ll only improve the community & industry in the long-run.
An open-source software(blockchain) project is a software project with source code that anyone can inspect, modify, & enhance. The world of open-source software projects expand far past the world of blockchains(Hi Linux!), however, the majority of all blockchains are open-source by design.
In contrast, the majority of software projects have source code that only the person, team, or organization who created it maintains exclusive control over it. Think Facebook, Adobe & other private company behemoths. This is called proprietary software or closed-source software because only the original authors of proprietary software can legally access, copy & alter said software.
Open-source software makes its source available to the public domain — for all to view, copy, alter, learn from & share. By design, open source software promotes collaboration, merit, & sharing because it permits other people to make modifications to the source code, & if enough people agree, incorporate said changes to the public source code. No single person, entity or organization has exclusive or proprietary rights over an open-source project; the public domain, through a set of rules governing the project (usually called a protocol), comes to a consensus in a more decentralized manner.
By building software used globally with an open-source framework, the foundation is set for a leap forward in how large scale systems are maintained: decentralized. To qualify my statement, I’ll go ahead & preface that centralization vs. decentralization is not a binary comparison by any measure — but rather a sliding scale. You likely have a correct association with these terms already: an authoritarian government reflects a centralization of power, while a direct democracy portrays a decentralization of power.
Building blockchain projects that are primarily open-source has yielded a fascinating result: powerful decentralized software that is *not* built by a centralized system such as a government or corporation.
We could go about decentralization vs. centralization; however, for now, it’s enough to know that open-source software is one of the key drivers in this rapid expansion of decentralized everything.
Thinking from a logistics standpoint, a decentralized software project, however decentralized, still requires a single place for all project contributors (developers) to view, alter, compare & ultimately update code. This is where GitHub comes in:
GitHub is a real-time collaboration platform for developers to simultaneously work on the same source code without overriding each other’s work.
GitHub tracks the history of changes to a project’s source code, including what specifically has been changed, who has changed what & when. A software project on GitHub is referred to as a repository. Any update to a software project is called a commit. Note, any change to a project is considered a commit, not strictly programming changes. Writing updates to the project documentation, like Vitalik does here on the Ethereum organization repository, is also considered a commit.
Before we wrap up here, I admit I’m very quickly defining GitHub, skipping over many core features as I highlight only for the pure purpose of exploring blockchain projects. GitHub offers much more functionally & it’s often a common misconception that GitHub is a tool strictly for developers. The further you delve into the platform, the more you’ll recognize social dynamics & resource-sharing capabilities that closely resemble that of a social network. In fact, at this very moment, GitHub’s thriving community lays claim to a whopping 12 million+ members that ”favorite” repositories they like, comment, monitor & subscribe to different authors & project repositories for updates.
Below is a screenshot of what the “home page” for each of these repositories look like.
For this first screenshot with the red rectangle, the navigation options within a GitHub repository. As you can see, one could explore this repository further by clicking the Issues, Pull Requests, Projects or Insights tab.
The Issues section in particular is a fascinating subsection of a repository that display the most accurate, pressing issues for the repository community. Reading through these open issues is a phenomenal way to understand the immediate roadmap for open-source projects without any journalistic bias — code talks.
Source Code Metrics
Screenshot numero dos above highlights key metrics for the overall Bitcoin repository. Every repository on GitHub tracks & displays the following four figures: commits, branches, releases & contributors.
We discussed commits above — any change, documentation or code, that’s been accepted into the main repository. As you can see, at a whopping 17K commits, the Bitcoin repository is quite active. Additionally, one can review the actual people working on this repository by clicking on the “contributors” section.
A contributor to a repository is an individual who has successfully committed changes that have been accepted by the repository community & merged into the source code.
These are the individuals that one should turn to for project updates; contributors are the real deal, those working towards building these colossal projects.
Navigating through GitHub repositories is the best way to see first-hand the latest progress & source code for blockchain projects. Ultimately, these crypto & blockchain projects were built specifically with a distributed/decentralized infrastructure for a reason: to push forward an open-source community mindset. So now you know. The next time you’re exploring the latest coin of the week, come read the summary here first, but then head right to the GitHub repository to comb through the source yourself.