The blockchain technology has become a promising decentralized data management framework. To that effect, its adoption in fog and edge environments has been increasing. The primary focus on such environments are decentralized storage, management and security. However, deploying and testing blockchain networks on such environments can be a cumbersome and time-consuming procedure.
To that effect, AUTH has developed a framework for the automated deployment and testing of custom blockchains to fog and edge environments. This framework was utilized during the internal benchmarking of the RAINBOW distributed data storage service in simulated fog environments, performed by the AUTH team. This framework consists of a platform-independent toolbox of technologies, where one can simply specify the desired blockchain and network parameters and automatically select the required tools for the deployment.
The rationale behind the development of this project consists of three main pillars. First of all, all the required tools for creating a network’s node are grouped together in a “black box” that is independent of the otherwise everchanging nature of the network and its nodes. That is, it is not dependent neither on the structure of the desired network nor on the architecture of its individual node. Secondly, there is almost zero-configuration needed in order to perform the most common actions, like connecting a new node to the network or manipulating some parameters before redeploying a new network of nodes. And lastly, there is an abstraction layer between the chain’s source code configuration format, so as there is not a need for the user to be familiar with more than one language or dialect.
It is possible to launch multiple nodes on a single host, or even multiple nodes on multiple hosts, for network simulation purposes. This way, deployment of blockchain nodes on fog and edge environments can be tested before it actually takes place. The framework also allows to apply network topology settings, specifying bandwidth and latency limitations between virtual nodes. The only prerequisites are that the node hosts are capable of running Linux, they are accessible through SSH. Additionally, in case of fog hosts that deploy multiple nodes per host, the docker containerization software needs to be installed. In any case, configuration with respect to both node and network settings is performed through JSON files.
In order to ensure the effectiveness of the developed software, a set of experiments were run to measure and calculate statistics about the time that is required for the network to be at an equilibrium. That is, every single node has the same information and considers the exact same chain as the longest valid chain. The benefits from these experiments were three-fold. First, they provided a use case to test whether the software that was created can in fact be used in a real-world setting. Secondly, to demonstrate the incorporation of BTC-network in an experimentation flow. And lastly, to test whether a network with multiple peers, all running in the same host, can provide similar results to a real-world one. This could be proven valuable information for rapid testing and experimentation. An example of the results we obtained can be seen in the following figures.
Fig. 1: Block arrival time per block (no throttling)
Fig. 2: Block arrival time per block (network throttling to 65 kB/s)
The deployment software has been written in JavaScript and is available here.