September 26, 2019

How to use GitHub and other tools to analyze Blockchain projects and what they say about Cardano (ADA)

EMURGO, as the official and commercial venture arm of Cardano — the first third generation blockchain to evolve out of a research-driven approach — manages the Yoroi repositories, the private Seiza blockchain explorer repository, and a number of educational, marketing, and outreach efforts; part of our job is to give readers informative insight into the Cardano project.

To say that information asymmetry is extreme in the traditional equity, OTC, and commodity markets is quite an understatement; it is nearly absolute. Large institutions have billions of dollars, teams of genius quants, access to dark pools, machine learning algorithms that can analyze retail order flow (pioneered by Bernie Madoff), and decisions in-between decisions, as well as high frequency trading systems with near perfect track records. Criminal behavior has become institutionally normalized across a variety of gradients, and in many contexts, in the traditional world of finance.

Information asymmetry exists in the cryptocurrency space as well and the opportunity for collusion is ripe; however, calls for regulation should be met with a skeptical, yet balanced, eye — primarily with the OTC market in mind, as a general historical reference gauge, as it represents a space where rampant corruption has been allowed to exist for a very long time under the auspices of the SEC. While transparency is an issue that merits its own lengthy article, it will suffice to say here that many crypto projects have raised funds with no working products and many founders, and developers, have abandoned projects prematurely. So speculators, and investors, need to do significant due diligence.

As the space matures, a number of tools, products, and services have arisen to help investors identify worthy projects. Luckily, the open source push that started in the late 1990’s allows users to have a greater level of transparency in terms of understanding product development. However, before we look at GitHub specifically, let’s take a brief cursory examination of the broader context of noteworthy tools that attempt to satisfy the due diligence needs of users.

For example the Network Value to Transactions (NVT) ratio, popularized by Coinmetrics, “measures the dollar value of cryptoasset transaction activity relative to network value. This is a simple way to compare how the market prices one unit of on-chain transactions across different networks.” In other words, the NVT ratio is essentially calculated from the daily market cap divided by the 28 day moving average of on-chain transaction volume in USD; exchange volume is not present in the formula. New indicators need to be understood carefully, as Dmitry Kalichkin says in this interesting article, which explains that the NVT would benefit more from using a 90 day moving average instead of a 28 day moving average.

However, the problem with this metric is that it fails to capture large OTC, and dark pool, volume from trades that happen off-chain. In short, investors need to have a clear understanding of the evaluative tools they use to measure the significance of projects.

Certain evaluative tools, such as RedditMetrics, sentiment analysis, and popularity analysis are interesting, but should be used as data points within a larger picture; emotions can change on a dime and the “wisdom” of a crowd can often be capped by a very myopic vision. Even sentiment analysis products that have teams of people annotating data and assisting machine learning classifiers can still create products that have a difficult time with context. Furthermore, immature sentiment products can introduce significant noise as seen by the items highlighted in red below, from a mere random visit to the Santiment trends page on 7/20/2019:

image2
Source: Santiment Trends. 7/20/2019.‌‌

More advanced sentiment analysis involves advertising analytics run by trading platform companies, which are directly plugged into thousands of customer ad campaigns that run on everything from financial websites to adult websites; the information about end users is then correlated across in-house apps, alternative datasets, and retail order flow (colloquially referred to, in this example, as “trading signals”); machine learning algorithms can then identify all manner of trends in real time. Unfortunately, this level of information is not available to the public.

A number of rating agencies and research platforms, such as Messari, have popped up in an attempt to satisfy the due diligence needs of users. Messari is a token registry, which allows researchers to see a comprehensive list of investors for each project in addition to information about a project’s token design, supply details, and technology audits. Their goal is to bring more transparency to the cryptocurrency space and projects who provide information are more likely to be rewarded by investors, due to their honesty.

Messari, along with OpenMarketCap, are driving the push to publish real volume numbers, absent wash trading, which means they are a step ahead of information platforms driven by blatantly false data, and outright greed, such as CoinMarketCap.

Unfortunately, a Reddit poll, found that nearly 30% of speculators simply do not care about real volume. Famous trader, and money manager, James Dalton says that, “Price is simply the auction’s means of advertising opportunity. Time regulates all opportunity. Volume measures the degree of success of each auction.” Having accurate volume information is incredibly important. However, often we are too overly focused on trading charts and this becomes tangential to the deeper necessity of evaluating the core value propositions that projects define, strive for, and act upon.

In other words: what are the core problems that the projects you are examining are trying to solve? Cardano is attempting to solve problems of major historical significance including: provably secure, decentralized, and delegated Nash equilibria based Proof of Stake, permissionless clock synchronization, secure Liquid Democracy based treasury voting, regulatory compliant STOs and User Issued Assets, side chain integration, Non-Interactive Proofs of Proof-of-Work, and smart contracts. The underlying research, and problems involved, represent a tremendous academic, technical, and historical effort.

In order to dive deeper into the fundamentals of a project an important evaluative tool that can be used are GitHub commits; these represent the code changes that are pushed to master repositories. They are an important metric that allow a researcher to track an asset’s actual development progress. Additionally, it is a useful tool for identifying red flags and filtering out non-performing, and dishonest, projects.

If you are new to GitHub, you will benefit from watching this introductory tutorial and follow up video in order to understand how exactly the commit, fork, and pull request, process works. Basically, the process allows developers to make a copy of a project’s code, make their changes, and merge it back into the master branch of the repository in a continuously integrative manner.

Below is a chart of the most active GitHub projects based on the commit histories of 727 different cryptocurrencies over the last 12 months.

image1 1
Source: Crypto Miso. 7/24/2019

This chart from Crypto Miso provides a very raw, contextless, perspective, however. These commits represent data points that need additional context in order to make smart decisions. One argument is that large projects with solidified, time tested, mature code, such as Bitcoin, need to be updated significantly less often. So in a sense, one could see a higher number of commits in the above chart as the sign of a less mature project. On the other hand, those projects are more active and there is, arguably, more developer interest. And projects without developers are, very likely, doomed to failure in the long run. Developers are largely uninterested in Bitcoin’s forks, according to Electric Capital’s March 2019 Dev Report, for example.

However, ranking projects purely by the number of total commits within a specific time period can be misleading as this recent post on the Cardano sub Reddit illustrates. There is a significant distinction between quality and quantity when it comes to commits. If a developer is updating a readme file 20 times a day and similar irrelevant commits constitute the majority of their activity then that is a major red flag. If commits, pull requests, and issue comments, are concise, clear, and represent an informative body of work, on their own, then that is a positive sign. By understanding the nature of the commits one can gain a clearer understanding of a project and whether its activity is illegitimate.

Chainternals provides a rating system for cryptocurrencies based on a number of factors, ranked by all time commits. That ranking provides a very different picture from the one above. The site also lists “actual” commits vs. “total” commits. In other words, subtracting the actual from the total gives you the number of commits a project merely copied from another open source project. That ratio shows red flags with a variety of projects; additionally, seeing the number of commits is also useful in the context of time. How long has a project been around? Was it funded 2 years ago and has less than 2,000 commits?

So, tracking what developers are doing, and where they are congregating, will give you a headstart on what is actually happening in the industry. Additionally, there is a conversation to be had in this vein around the accessibility of the underlying languages of a protocol, or project, and how it drives adoption. Javascript is significantly more accessible than Haskell, or Rust, for example. However, there is a reason so many projects are pushing out Rust implementations — for added security. Cardano’s underlying system will be significantly more secure than other platforms; additionally, the domain expertise necessary to understand the Cardano code makes it likely that IOHK and EMURGO developers will be the ones working on the project in the future.

You can also use GitHub to rank projects by the number of repositories per language.

image6
Source: GitHub Search. 7/26/2019

Bitcoin’s language distribution across repositories is fairly thick. Once Shelley is finalized, Cardano’s numbers should rise significantly; developers will need to be able to integrate transaction ready code into their own projects from the IOHK js-chain-libs repository.

EMURGO drives the adoption of Cardano and brings value to ADA holders. Developer education, outreach, and onboarding are serious considerations for any product or project. Imagine the scope of outreach and education truly necessary for a successful, decentralized, electronic currency.

Conferences, university inclusion, social events, guidebooks, howtos, and other educational materials are necessary to help transition a nascent space into something understood by a larger cohort of potential investors, developers, and actual real-world adopters. That also includes industry specific marketing and technical integration guides for order management and execution management systems. If the existing world of finance is going to interact with an extensive variety of blockchains, and cryptoassets, it will involve a significant educational effort.

Transparency matters and it is necessary to understand your own due diligence process, especially when steps, and questions, in that process seem to come to an end. It is important to ask yourself, “what is this answer founded upon?” A public statement? A third party code review? Your own personal communication with developers? Your emotions? Other people’s emotions? Concepts of older asset classes that may not truly apply to blockchain technology?

So, how can you use GitHub as part of your own due diligence process when evaluating Cardano (ADA)?

IOHK and EMURGO have a number of core GitHub repositories. Below, we will examine some of these along with a variety of ways that GitHub allows you to view development progress. Hopefully, this will help you to understand Cardano, as well as other projects, better. You can explore the repositories by browsing normally or with a visualization overview as seen below.

image4
Source: ArtZub. 8/9/19.

One important aspect to examine when looking at GitHub repositories is the CONTRIBUTING document. Many repositories will have them. This document allows you to understand the rules and guidelines for contributing to the project. How ready is a repository to accept help from outside developers? This will give you an idea of its maturity.

If the above overview is too confusing, you can simply examine the development progress of a project by clicking on the Pull requests tab and then select the Closed option as seen below:

image5

This will show you all of the pull requests that have been pushed through, i.e., merged, and allow you to see the specific code changes involved. You can also filter the requests by a number of “tags,” i.e., labels, including: bug, breaking-change, help wanted, epic, and many others.

EMURGO’s lead research and development engineer, Sebastien Guillemot, provides monthly video progress updates on Cardano; he highlights the important pull requests and explains their significance. He says it is important to remember that in Cardano, “the way we do everything is always in multiple steps: first we do the research, then the formal specification, then the executable specification, and then the implementation. So for Plutus, at the same time [IOHK is] working on the implementation, they are also refining the formal verification that proves that the Plutus language is constructed correctly. This is different from other programming languages for other blockchains where there is no proof of correctness.”

The Cardano developers are building an Ouroboros specific networking layer from the ground up rather than “tacking on” a foreign solution; this also means they are developing a bridge to transfer from the old model (Byron) to the new one (Shelley). The Haskell implementation for Shelley is called Cardano Ledger and the old Byron implementation is called Cardano-SL.

Jormungandr is the full rust node implementation of Cardano’s Shelley phase. Below you can see an image of the “network graph,” i.e., the timeline and pathway of commits to the repository. Tom Preston-Werner clarifies, “When you look at the graph you are seeing every commit on every branch of every repository that belongs to a network. But you are seeing each commit only once…the Graph Visualizer is actually showing and connecting disparate repositories.”

Each color represents the changes of a different individual. You can view this graph for any GitHub repository. We can also see that AtixLabs is one of the owners of the repository:

image7

Source: IOHK Jormungandr GitHub Network Graph. 8/18/19.

This graph also shows us that between the 16th and 19th of August, 2019, Code Sandwich (an EMURGO developer), Nicolas Di Prima (IOHK), and Enzo Cioppettini contributed to the master branch. One disadvantage of the network graph is that it only shows a very small slice of the merges at one time; you can scroll back to see previous changes, however.

The team working on Jormungandr has released a roadmap as well. They are working on transitioning the existing code, which has to be compatible with the networking layer. This means overhauling certificate signing, integrating multisig to work with staking, and handling the actual storage of blocks. Currently, work has been completed on the handshake protocol and the ability to pull missing blocks from a different node as well as the ability to pull entire chains across the network.

JS chain libs is the WebAssembly library with Javascript bindings to the new chain libraries; this will allow you to create wallets and transactions in the browser via Javascript. It will also allow you to develop engaging distributed applications. Below we can see the frequency of additions and deletions to the code:

image3

Source: IOHK js-chain-libs GitHub Code Frequency. 6/23/19 to 8/18/19.

The Plutus repository holds the libraries that allow developers to write smart contracts on Cardano. You can compile your own copy of The Plutus eBook: Writing Reliable Smart Contracts in Plutus. Below is a chart of the commits for the Plutus project. Interested contributors can learn more here.

image8

Source: IOHK Plutus GitHub Contributor Stats. 11/13-/6 to 8/18/19.

The Yoroi repository is managed mostly by Sebastien Guillemot. Yoroi will, eventually, be able to store multisig wallets and support staking. Currently, the team is working on support for multiple currencies, improved storage for greater wallet support, and a message signing specification. Below you can see the commit history for the open source, browser extension based, Cardano wallet:

image10

Source: EMURGO Yoroi-frontend GitHub Contributors. 3/11/18 to 8/18/19

Another important issue when looking at GitHub repositories is to identify whether those repositories are actually useful or just filler repositories designed to give the appearance of substance where none exists. Projects may have repositories which are very active and important as well as repositories which are used for reference, but not necessarily updated. Additionally, some empty repositories may represent scaffolding for future work.

Lastly, it is important to see: how much of the code compiles and passes its unit tests? Having a bunch of code and seeing it updated often is of no relevance if that code doesn’t actually compile. This is an aspect of research that needs to be taken, in context, with a long term perspective, however. With a more nuanced approach one would like to answer the question: how is the code progressing over time?

For example, independent researcher, and developer, Bill Petridis analyzed a number of cryptocurrency projects, compiled code, raised tickets on projects with issues, and received feedback from core project developers/managers. From that feedback one is able to tell whether a project’s developers are using continuous integration, or stuck in decades old processes that no longer work efficiently. So this is yet another way that one can detect red flags.

Hiring a research developer may be in your best interest as a speculator, or investor, however, not everyone can afford that cost. Hopefully, now you have a basic idea of some of the GitHub related tools that you can use when examining a project or potential investment.

Cardano is provably secure, smart money, based on the scientific process. It represents tremendous growth potential for investors beyond Bitcoin and other legacy technologies; it encompasses emerging markets, illiquid assets, user issued assets (tokens), and interoperability with other blockchains. As IOHK and EMURGO look ahead to the future, they imagine new features, proofs, and requirements for Cardano. Researchers are examining the egalitarianism of the Ouroboros stake based protocol, the potential for Lighting Network integration, and the executable specification for decentralizing the greater ecosystem through a decentralized treasury as well as through decentralized software updates. You can stay updated by visiting the EMURGO and IOHK GitHub repositories or by watching EMURGO’s monthly video progress updates on the Cardano project.

loading image
|| Click here to subscribe to the EMURGO Newsletter ||

‌EMURGO drives the adoption of Cardano and adds value to ADA holders by building, investing in, and advising projects or organizations that adopt Cardano’s decentralized blockchain ecosystem. EMURGO leverages its expertise in blockchain R&D as well as its global network of related blockchain and industry partners to support ventures globally.

EMURGO is the official commercial and venture arm of the Cardano project, headquartered in Singapore, with a presence in Japan, the USA, India, and Indonesia. EMURGO works closely with IOHK and The Cardano Foundation to grow Cardano’s ecosystem globally, and promote its adoption. Learn more about the project at https://dev.emurgo.io

Follow EMURGO on Social Media
・Official Homepage: dev.emurgo.io
・Twitter (English): @emurgo_io
・Twitter (Japanese): @Emurgo_Japan
・Youtube: EMURGO
・LINE: @emurgo
・Telegram: EMURGO Announcements
・Facebook: @dev.emurgo.io
・Instagram: @emurgo_io
・LinkedIn: @emurgo_io

About Yoroi Wallet & Seiza Explorer
・Yoroi Twitter: @YoroiWallet
・Yoroi Homepage: https://yoroi-wallet.com/
・Seiza Twitter: @Seiza_explorer
・Seiza Homepage: https://www.seiza.com/

Related Articles

wpChatIcon