Fantom Development Report

Development analysis of the Fantom Project

Sharing is Caring

In the following report, we have analyzed the Fantom project’s development efforts using different metrics.

Table of content

  • Purpose
  • Summary
  • Introduction to Fantom project
  • Limitations
  • Terminology
  • Code contribution
  • Collaborators/Contributors
  • Development engagement
  • Code Quality
  • Compliance score
  • Conclusion
  • Visualizations

Purpose

The purpose of this report is to understand the Fantom’s development efforts. For this, we have analyzed 63 original repositories of the project.

Summary

  • We find that Fantom’s development efforts are laudable.
  • The team follows open-source development practices and delivers excellent code quality.
  • Most of the development efforts are going towards Fantom’s consensus protocol.
  • Development efforts have been consistent and increased in the last two quarters of 2019.
  • To boost up the developer adoption, we recommend better documentation of the Fantom’s consensus protocol and other tools.

Introduction to Fantom project

Building DLTs/Blockchains is tough because of their traditional monolithic architecture. That’s why projects like Cosmos, Polkadot, and Fantom are trying to provide a modular approch for building DLTs.

Fantom provides a set of core DLT tools (ex- Consensus mechanism, P2P networking protocol) using that anyone can build their DLT solutions.

As Fantom’s website explains:

In a nutshell, Fantom is a set of open-source tools to build all kinds of distributed ledger related products.

To understand the potential of Fantom’s tech, check out the Xar network, a Defi toolkit built using Fantom and Cosmos modules. 

Terminology

We will use the following keywords throughout our analysis.

Github Repository: A folder hosted on Github containing a software code/documentation.

Commit: A commit is saving some file changes into the Github repository.

Merge: Combining two different versions of one or multiple files.

Pull request: Notifying others about changes you have pushed on the codebase.

Contributors/Collaborators: Persons who work jointly on a project.

Fork: A fork is a copy of a repository. Forking a repository allows you to experiment with changes without affecting the original project freely.

Release: Releases are GitHub’s way of packaging and providing software to your users. You can think of it as a replacement for using downloads to provide the software.

Hotspot: Hotspot is a complicated code that you have to work with often.

Technical debt: Technical debt is the estimated time required to fix all Maintainability Issues/code smells.

Limitations

Our analysis focused on development progress based on GitHub data, not on the technology.

Overall Project overview

The Fantom project has 87 repositories in total.

  • 63 Original
  • 23 Forked
  • 1 Archived

In our analysis, we have analyzed all 63 original repositories, found 109 collaborators and 39 different languages.

Note: Fantom is also working on the forked repositories, but we didn’t analyze that for data-accuracy reasons.

We measured the overall project health and focused on a few key points:

  1. Code contribution
  2. Collaborators/Contributors
  3. Development engagement
  4. Code quality

Code Contribution

In this section, we will try to understand the development pace of the Fantom project. Commits and releases are basic metrics to understand the project’s delivery.

Commits

The images below show that Fantom started pushing more commits from July 2018, and since then, the development pace is consistent and got better in the last two quarters of 2019.

Releases

We also looked in to release data, Fantom is doing releases, but it’s not consistent. There are only four releases in 2019 across 63 repositories.

The team at Fantom is working on multiple repositories simultaneously, which shows that the team has sufficient resources.

Here every color represents a different repository

To understand where the Fantom team is putting its efforts, we looked into the most active repositories. Fantom’s go-lachesis, which contains its consensus protocol code and takes most of the Fantom resources.

Delivering a high-quality consensus protocol is very important for the Fantom project, and the commit data indicates that the team is serious about it.

Most of the commits come on weekdays

Collaborators/Contributors

The Fantom project has 109 contributors across 63 repositories. The image below shows the top 10 repositories based on the number of contributors. As we can see, go-lachesis has the highest number of contributors, that reaffirm with the above commit data.

Here is the complete list of repositories based on the number of contributors. 

We also analyzed the Fantom’s go-lachesis for understanding the code ownership of different contributors. That is how many lines of code alive at the moment for each identified developer.

Development engagement

In open-source development, whenever you want to contribute to any repository, you can create a pull request. Then the owner of the project reviews the pull request and either accepts it or rejects it.

Merging Pull requests usually requires engagement as you need to understand the changes someone is trying to add in the codebase. That’s why pull requests are a great way to understand the development engagement of the project.

The number of the pull requests have been consistent this year, and the average time to merge these pull requests is less than two days.

Analyzing Issues

Another useful measurement of development engagement is issues. In open-source development, when a person using the software faces any problem, finds a bug, or asks for a feature, they can create an Issue.

We have analyzed Fantom’s go-lachesis issues as you can see, there are fewer issues in 2019 when compared to 2018. Though issues continuously had an excellent engagement, that is a good sign.

The chart is divided into two parts, the upper part shows open issues at a particular time and the bottom part shows when issues open and closed. Ex- a half-circle on bottom part shows that issue open at the start of the circle and closed at the end of the circle

Code Quality

When it comes to cryptocurrency, code quality is one of the most critical metrics. To understand the Fantom’s code quality, we choose one of its most active repositories, go-lachesis.

Analyzing Fantom Core code quality

A hotspot is a complicated code that you have to work with often. Higher the red hotspot percentage, the more problematic code you have in your project.

We also measured Fantom’s go-lachesis repository on different code quality metrics.

In our analysis, we found out that only 1% of the codebase has high complexity.

Reliability

Softwares reliability is based on the number of bugs and their severity. We found no critical bugs. That’s why the reliability rating is A.

Note: We did a static analysis of the project, which can’t identify logical bugs.

Security

We also didn’t find any potential vulnerabilities in the codebase. A vulnerability is a piece of code that can be exploited by hackers. 

Maintainability

As codebase grows over time, software maintainability becomes a major problem. The Fantom project has three days of technical debt. Mostly because of long functions and unresolved to-dos . 

Technical debt is the estimated time required to fix all Maintainability Issues/code smells.

Duplications

We found 1.2% code duplication. In our analysis, we didn’t find any problematic duplicate code.

Code Coverage

Testing is an integral part of the software lifecycle and quality. We can measure it using the metrics called Code coverage.

Code coverage is a measurement of how many lines/blocks of your code are executed while the automated tests are running.

We found that the Fantom’ go-lachesis has ~45% of the test coverage, but the team is aware of this. We recommend that Fantom should increase the test coverage to deliver a high-quality product.

Brooks’ Law

Brooks’ Law states that adding more people to a late software project makes it later. The reason for this is communication and coordination overhead.

While we add more people to a project, the total number of available hours increases linearly, but the coordination paths increase exponentially. Hence, there’s a point beyond which each additional person’s hours get consumed by the increased coordination efforts.

The below graph shows the Development Output; this is measured by taking all commits during a week and dividing them by the number of contributing authors. The resulting normalized output metric gives you an estimate of the organizations’ output.

As you can see, in the last six months, the development output on the Fantom’s go-lachesis repository went up. Still, the number of active developers on the repository came down. The image below also shows that when there are more developers, development output has been low compared to when fewer developers are working on the repository.

Compliance Score

Our compliance score is based on the percentage of repositories that respect a given guideline. We looked into five crucial factors while calculating the compliance score, which adheres to standard open-source development. If any information below is missing, it impacts the score:

  • Readme
  • Changelog
  • Notice
  • License
  • Contributing

Here is the complete data for missing files.

Conclusion

Fantom project is committed to building better technology. The Team follows standard open-source practices, delivering excellent code quality, and has sufficient resources. 

Development efforts are consistent and increased in the last two quarters of 2019. We recommend that the team should increase test coverage across its important repositories and add better documentation for developer adoption.

Visualizations

We have created a visualization of changes made by Fantom contributors in the past years.

Here different colors show their contribution in the respective languages (See there is a language classification at top left)

  • Each particle is a file. It moves from developer to developer.
  • The size of the particle depends on the degree of changes.
  • Each user gathers files that he used over time.

Fantom’s Consensus protocol development since 2017

It shows file changes in every commit by different Fantom contributors on the go-lachesis repository since 2017.

About CoinCodeCap

CoinCodeCap analyzes the codebase of various cryptocurrencies. Anyone can showcase development activity on their platform using our APIs.

We also help in development audit reports for Cryptocurrencies. If you are a crypto project or a crypto exchange, you can reach us at gaurav@coincodecap.com.

Sharing is Caring

Leave a Reply