Please describe your proposed solution.
To resolve the issue of the acute shortage of Cardano Open Source Community explorers, as well as to make AdaStat.net useful and available in the long run, including on public Preview and Pre-prod testnets, the chosen solution is to prepare the transition of AdaStat.net to a community project by rewriting it as an improved Open Source project based on past experience and users feedback, as well as adding support for both Cardano Preview and Pre-prod public testnets.
The main goals for the project are:
- transition adastat.net service to an Open Source project
- make adastat.net available on Preview & Pre-prod networks
- improve user experience
- increase usability
- solve performance, scalability & robustness shortcomings
- achieve zero downtime deployment
- make it possible for everyone to relaunch the project even if current funding or development comes to the end
- make it easier to identify problems and add new features, which should help keep the service accurate, reliable and up to date with new standards
- implement staking from any CIP30 wallet to any stake pool
- add support for CIP-18 Wallets (Multi-staking)
- allow other internal parts to be reused in other projects
In order to improve the usability and the user experience, we are developing a new user interface. Some examples are provided below (final release may vary slightly since it's still under active development). Click on the images to display them in full size:
To overcome performance, scalability and robustness shortcomings code/database refactoring is needed. It is also needed because at the moment the code does not have a clear structure, since it was not written to be understandable for other people unfamiliar with it. So, we need to add the descriptions for some methods, rewrite code to enhance the readability, etc. We also have to move a lot of variables from the code to the settings, because at the moment they are just hardcoded.
Also we are going to check all dependencies on AdaStat side. That's a very important because at the moment there are many outdated extensions that AdaStat uses, which (possibly) have vulnerabilities. Disclosure of information about them increase the risk of an external attack, therefore, before uploading the AdaStat code to the public repository, we 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 latest versions most likely have new code requirements. Therefore, after updating the dependencies we need to check and rewrite the code if necessary, as well as check our code again for vulnerabilities.
The new AdaStat version will also make a lot of other new features, even if they are not part of this proposal (like CIP-1694 DReps / Voting support, tokens price / trading value support, etc)