Docker-based Blockchain Emulation Framework

There has been an increasing interest in Blockchain systems since Bitcoin was launched in 2009. Many different platforms have been proposed, each with its own assumptions and goals (examples include Ethererum and Hyperledger). There are still several open challenges for blockchain platforms, especially in topics related to scalability, performance, and sustainability. However, frameworks for evaluating new proposals are rare and too specific: most researchers develop ad hoc tools for evaluating their proposals.

In this project, we will develop a general framework for evaluating blockchain systems (or any other decentralized P2P system) in an emulated environment. The goal is to deploy nodes as Docker containers on an emulated network with specified conditions, such as bandwidth, latency, jitter, and loss rate between different pairs of peers. The main advantage is being able to evaluate a new blockchain system with hundreds of nodes in a local cluster, as if it was running in real-world conditions, such as the Internet. The framework may include, for example, automation scripts, APIs, compilers, Docker or Kubernetes plugins. Identifying the necessary elements is part of the project.

The project will start by studying already existing open source projects [1-6] and other technologies that might be employed [7-9]. Then a minimum set of features will be defined and implemented into a prototype. The prototype will then be employed to evaluate a few selected blockchain systems (examples: Ethereum, IOTA, Algorand, Hyperledger Fabric).

If you are interested, please send an e-mail to thiagoga@ifi.uio.no in order to schedule a meeting.

[1] https://github.com/containernet/containernet  
[2] https://github.com/BeyondTheClouds/enoslib 
[3] https://github.com/worstcase/blockade 
[4] https://github.com/tylertreat/comcast 
[5] https://github.com/alexei-led/pumba 
[6] https://github.com/KatharaFramework/Kathara 
[7] http://mininet.org/
[8] https://kubernetes.io/ 
[9] https://wiki.linuxfoundation.org/networking/netem

 

Emneord: blockchain, distributed ledger, network emulation, chaos engineering, distributed systems, docker, kubernetes, measurement, Experiments, Software Architecture, API, open source, computer networks, Networking, SDN, software engineering, containers orchestration, Linux
Publisert 11. juli 2022 16:01 - Sist endret 11. juli 2022 16:30

Veileder(e)

Omfang (studiepoeng)

60