In the following report, we have analyzed the Fantom project’s development efforts using different metrics.
Table of Contents
Table of content
- Introduction to Fantom project
- Code contribution
- Development engagement
- Code Quality
- Compliance score
The purpose of this report is to understand the Fantom’s development efforts. For this, we have analyzed 63 original repositories of the project.
- 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.
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.
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:
- Code contribution
- Development engagement
- Code quality
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.
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.
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.
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
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.
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.
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.
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,
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.
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.
We also didn’t find any potential vulnerabilities in the codebase. A vulnerability is a piece of code that can be exploited by hackers.
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
Technical debt is the estimated time required to fix all Maintainability Issues/code smells.
We found 1.2% code duplication. In our analysis, we didn’t find any problematic duplicate code.
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 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.
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:
Here is the complete data for missing files.
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.
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.
We also help in development audit reports for Cryptocurrencies. If you are a crypto project or a crypto exchange, you can reach us at [email protected].