Please describe your proposed solution.
Explorers are an important part of every blockchain ecosystem. Cardano is no exception. At the moment there are no open source explorers that support all the Cardano features. Moreover, there is only one open source Cardano explorer - very old explorer developed by IOG, which has not been updated for a long time and does not have support for a newest Cardano features at all. Our team has already developed the AdaStat.net Cardano Explorer that supports all the Cardano features like blocks, transactions, epochs, accounts, byron and shelley addresses, pools, tokens, and many other. But at the moment AdaStat doesn't have an open source code. And now we want to make AdaStat fully open source. Unfortunately, there is no easy and fast way to do this. The following will explain why.
So, what do we have at the moment:
AdaStat has 3 modules written in JavaScript - backend module, frontend module, and its own blockchain parser. In total, more than 150K lines of code. The backend and frontend modules are executed on the server and client (browser) sides respectively. The purpose of these modules is clear from their name. As for the blockchain parser - AdaStat uses DB-Sync as a blockchain data provider, but since DB-Sync does not have all the data AdaStat needs, the blockchain parser module is required to parse needed data and store it to PostgreSQL database.
And now what we are planning to do:
- First of all, we have to check all dependencies that AdaStat uses. This is a very important step, because at the moment there are many outdated extensions that AdaStat uses, which (possibly) have vulnerabilities. Disclosure of information about this will increase the risk of an external attack, therefore, before uploading the AdaStat code to the public repository, we will need to thoroughly check everything and update all dependencies to the latest versions. Updating dependencies will almost certainly entail a change in the AdaStat code, since new extensions most likely have new code requirements, therefore, after updating the dependencies we will need to check and rewrite the code if necessary, as well as check our code again for vulnerabilities.
- Secondly, we will need to do a complete code refactoring, to enhance the readability, maintainability, and scalability. Code refactoring is needed because at the moment the code does not have a clear structure, since it was not written to be read and understood by other people unfamiliar with this code. So, we will need to add the descriptions for some methods, rewrite code to enhance the readability, etc. We will also have to move a lot of variables from the code to the settings, because at the moment they are just hardcoded.
How does your proposed solution address the challenge and what benefits will this bring to the Cardano ecosystem?
The Cardano Ecosystem will have an open source blockchain explorer which supports all Cardano features. This will increase the number of Cardano developers and their activity in ecosystem and let other developers run their own copies of Cardano blockchain explorer. This in turn will increase utility, transparency and friendliness when users interact with the Cardano ecosystem. Hence the number of users and the adoption will increase. Moreover the number of explorers in the terms of decentralization is crucial, since the explorer is a point of failure and can potentially cheat with data, it's important to have as many explorers as possible.
How do you intend to measure the success of your project?
The key metrics will be the number of issues raised on GitHub, commits, stars, forks, etc. An indicator of success will be represented by the growth of these metrics.
Please describe your plans to share the outputs and results of your project?
We plan to share the outputs and results of this project through AdaStat Twitter account as well as Cardano TG Groups like Cardano Developers, Cardano StakePool Operators, Cardano Stake Pool Best Practice, etc