The current codebase lacks a plugin system for easily integrating new blockchain networks, creating scalability and maintenance challenges. For each new network that needs to be supported, a dedicated scraper for its block scanner must be developed and integrated into the core codebase. This approach not only places the responsibility of adding support for new networks on the core codebase maintainer, but also becomes increasingly unmanageable as the number of blockchain networks continues to grow.
With thousands of blockchain networks and projects in existence ¹ and their constant evolution, including new features, upgrades, and forks, it becomes extremely challenging to keep up with the changes. A plugin system that separates the blockchain network scraping from the core codebase would improve scalability, make it easier to add support for new networks, and distribute the workload among contributors. This would ultimately reduce the burden on the core codebase maintainer and foster collaboration within the community.
Proposed Solution
I propose developing a plugin system that would allow for the use of definition files for each blockchain network. These definition files could be similar in concept to Dockerfiles, which are used to define the configuration and dependencies for a Docker container. In our case, the definition files could specify the configuration and dependencies for each blockchain network, making it easy to add support for new networks by simply creating a new definition file.
This approach would improve the flexibility and extensibility of the codebase by allowing developers to easily add support for new blockchain networks without having to modify the core codebase. It would also make it easier for others to contribute to the project by providing a clear and standardized way to add support for new networks.
Alternatives Considered
Manually adding support for each new blockchain network
Developing a separate tool for each blockchain network
BAU
Develop a tool that uses blockchain transactions to map oout network nodes
Hi, this sounds like an interesting solution to the problem, definitely worth exploring, I will embark on work towards it this weekend and keep you posted on my progress!
Problem Statement
The current codebase lacks a plugin system for easily integrating new blockchain networks, creating scalability and maintenance challenges. For each new network that needs to be supported, a dedicated scraper for its block scanner must be developed and integrated into the core codebase. This approach not only places the responsibility of adding support for new networks on the core codebase maintainer, but also becomes increasingly unmanageable as the number of blockchain networks continues to grow.
With thousands of blockchain networks and projects in existence ¹ and their constant evolution, including new features, upgrades, and forks, it becomes extremely challenging to keep up with the changes. A plugin system that separates the blockchain network scraping from the core codebase would improve scalability, make it easier to add support for new networks, and distribute the workload among contributors. This would ultimately reduce the burden on the core codebase maintainer and foster collaboration within the community.
Proposed Solution
I propose developing a plugin system that would allow for the use of definition files for each blockchain network. These definition files could be similar in concept to Dockerfiles, which are used to define the configuration and dependencies for a Docker container. In our case, the definition files could specify the configuration and dependencies for each blockchain network, making it easy to add support for new networks by simply creating a new definition file.
This approach would improve the flexibility and extensibility of the codebase by allowing developers to easily add support for new blockchain networks without having to modify the core codebase. It would also make it easier for others to contribute to the project by providing a clear and standardized way to add support for new networks.
Alternatives Considered