Our client, a hedge fund specializing in energy and commodity trading, needed our help with a demanding migration project. They wanted to expand their trading operations to cryptocurrencies. Our task was to design and implement a solution that would improve their analysis processes.
In order to monitor and query data from the blockchain with the highest possible performance, a tailor-made Blockexplorer was required, as most functionalities are not covered by public Block Explorers.
Our client wanted to focus on six coins and consequently, six blockchains. Due to the rapidly evolving nature of cryptocurrency markets we were facing a tight timeline.
The six blockchains and the corresponding algorithms were:
- Bitcoin (SHA256)
- Bitcoin Cash (SHA256)
- Litecoin (Scrypt)
- Ethereum (Ethereum)
- Monero (Cryptonight)
- Zcash (Equihash)
- Dash (X11)
Another requirement was to implement calculations and estimations based on blockchain parameters such as the difficulty, the hashrate and having an address watching feature.
A Block Explorer is not an entirely new tool, and there are already multiple Block Explorers on the market.
- Blockexplorer.com (Bitcoin)
- Etherscan (Ethereum)
- CryptoID (DASH)
These Block Explorers could have delivered the needed base data sets, but a deep analysis revealed the following downsides:
- Heterogeneous programming interfaces of each Block Explorer.
- Rate limits for requesting data
- No proof that the retrieved data is correct due to lack of access to the Blockchain Nodes
If our client had decided to use existing Block Explorers and their data, we would have had to program our own software which provides a homogeneous interface to all blockchains.
After comparing both possibilities, the client decided to request a customized, trusted Block Explorer.
Development process of the Block Explorer
Fig. 1: Development phases of the Block Explorer
Following this, we split the project into three phases (ct. Fig. “Development Phases”):
- Construction of a prototype
- Addition of advanced features to the existing prototype
- Transition of the prototype to a system ready for production
During the prototype phase our focus lay on the infrastructure and building the architecture. We needed to consider the fact that Blockchain clients are frequently updated by their respective developers.
These Blockchain clients, which represent the basic backbone of the application, must be updated as soon as a new release is available. This is challenging because new versions are released frequently, and often at short notice. To minimize potential sources of error, we designed the Block Explorer in such a way that it does not rely on additional external sources. It relies directly on blockchain nodes to provide blockchain data. The correct operation was ensured by monitoring all nodes permanently. For this first phase, we involved software developers and a senior technical architect. After we considered different possible base architectures, we decided to go with a microservice architecture based on the containerization of each microservice.
In the next step we focused on stable and correct data acquisition and transfer from the different blockchains. We also implemented features to process data, meaning analytical visualizations such as charts or graphs can be shown to the stakeholders.
After it was ensured that the data was coming in and processed correctly, our designers and UI experts came on board.
Another task was to develop a User Interface based on the stakeholders’ analysis that was specifically customized to our client’s needs.
In addition, we also made sure the product has flexible interfaces that make it possible to link it to other systems. This was accomplished, as we managed a seamless integration into the customer’s existing ERP system.
Fig. 2: User Interface of the Block Explorer
The last phase of the project involved bringing the Block Explorer to a production-ready state. This included the ability of the services running to be replicated for gaining high availability, and ensuring the IT security of the product by executing an external audit by a third party company.
During all phases the team worked very closely with the client’s IT team to ensure their ability to maintain the Block Explorer after we delivered it.
The result of the architecture is shown in the following figure:
Fig. 3: Architecture of the Block Explorer
Customized features of the Block Explorer
The client wanted to be able to implement a new blockchain anytime. We were able to fulfill this request in a very short time, due to the architecture design we chose initially. In addition, the interfaces were able to show the results of the newly added blockchain directly and thus provide integration into the existing systems. This was all made possible without further effort due to the self-developed, uniform data structure and an excellent understanding of our client’s requirements and the technology.
Another special extension that was requested much later in the development process was the address-watching-feature. The purpose of this extension was to allow the user to monitor certain wallets or transactions, and the blockchain.
A special feature that wasn’t even requested at the time, but was realized later due to the chosen architecture was the fact that any situation from the past can be used and simulated again in models. The data is on the blockchain and the Block Explorer provides the exact data in the specific interval desired by the client. This feature then became very useful for the client’s projecting models.
In the end, the Block Explorer became a general source of data, used for purposes beyond what our client had initially requested.
Further fields of application
The initial purpose of developing the Block Explorer was analytical research, but we were able to utilize it for further projects too. For instance, the Block Explorer could also be used for quality control purposes, because it allows for comparison between results and data from other external sources (such as in the case of profitability calculators).
We can proudly say that mining farms are using the Block Explorer to monitor mining pools, too. Many more use cases are likely possible, we just haven’t thought of them – yet!
Authors: Raoul Andersson, Christopher Becker
Editorial: Mia Molnar, Thomas Liebberger, Anna Lauterjung