# Practical Implementation of a Blockchain-Enabled SDN for Large-Scale Infrastructure Networks
## 4 Implementation and Validation Steps  
In the previous chapter, the conceptual architecture solution for the system was described. Since the presented architecture requires a blockchain network with multiple nodes available and running, and also several entities/organizations that will run at least a blockchain node, the actual practical implementation is not straightforward, but rather difficult to achieve. To show the validity of the solution, the chosen approach involves implementing a Proof of Concept through the simulation of participants responsible for operating the blockchain nodes. The initial phase of the experiment involves the validation of the operability of blockchain nodes within a computing system. To demonstrate this step, a virtual machine running a Linux distro OS was used. On the virtual machine, a blockchain solution was configured and set up. Ethereum was selected as the blockchain solution owing to its versatility, incorporation of smart contract capabilities, and widespread popularity. In order to integrate Ethereum as the blockchain solution, Geth [26]--which is an implementation of Ethereum and has been a core part of Ethereum since its beginnings--was installed. After the environment set-up phase, a private blockchain network was configured consisting of several nodes that run on the Virtual Machine (VM) and that can interact with each other within the private blockchain network. Having accomplished the initial phase, the subsequent task involves establishing an additional system dedicated to running blockchain nodes. The objective is to confirm the seamless integration of nodes from both systems into a private network, enabling effective interaction between them. Hence, in order to validate the approach, a new virtual machine was employed having identical configuration parameters as the one previously presented. Upon confirming the operational status of both virtual machines (VMs) within a shared network, it was verified that the private blockchain network could successfully expand across the secondary system. The blockchain nodes residing on the two VMs were observed to be integrated within the same private network, demonstrating their capability to engage in seamless interaction. With this step, it was validated that the private blockchain network can be extended over multiple systems. Given that the proposed solution comprises a federation of multiple organizations/ISPs functioning as autonomous systems with individual networks, additional validation was requisite to illustrate the efficacy of the private blockchain network across multiple interconnected networks or the Internet. In order to validate this requirement, an additional VM located in a remote location was employed. Upon configuring the requisite parameters pertaining to the connectivity of virtual machines (VMs) with their respective networks and establishing the necessary port settings for Internet accessibility, the validation phase for the remote communication among blockchain nodes was prepared for execution in the experiment. The blockchain nodes hosted on the remote VMs demonstrated the capability to establish connectivity and interact. This step validated that remotely located blockchain nodes, from different systems, can successfully form and join the same network and conduct the necessary interactions. The ability of multiple systems (autonomous systems) to extend and to form, or to be part of, the same blockchain network validates the first phase of the proposed solution. Validating that blockchain can be integrated over the SDN networks of participating service providers within the federation is the next required phase. The next step aims to demonstrate that SDN devices are able to implement a blockchain node and integrate the blockchain over the SDN network. To achieve this objective, Mininet was configured on the VM. Mininet was selected for its capability as a network emulator,providing the option to create a network of virtual hosts and network devices such as controllers and switches.