Hyperledger Umbra: Simulating Hyperledger Blockchains using Mininet
Description
The simulation research internship during the summer of 2018 led to the creation of the Hyperledger Umbra Lab. Due to the overall difficulty of getting Hyperledger blockchain frameworks running under the Shadow simulation tool, work on the Umbra lab has slowed to a crawl. A different network simulation tool called Mininet has been proposed as an alternative to using Shadow and it has the potential to drastically reduce the startup cost of getting a network simulation tool running Hyperledger blockchains. This proposal is for a research project to test the feasibility of running Hyperledger blockchains under Mininet for the purposes of running scalability and consensus mechanism experiments.
Additional Information
Running Hyperledger blockchain networks under simulation rather than on real hardware or cloud platforms creates the opportunity for Hyperledger blockchain frameworks into computer science research labs as test beds for new consensus mechanisms, new smart contract tools, and new network scaling techniques. This is a critical roadblock that reduces the appeal of our software to university and corporate research and development efforts.
Learning Objectives
The intern will learn the following:
- Participating and contributing to an open source project.
- Collaborating with other developers over common open source communication and collaboration tools.
- Network topologies of Hyperledger blockchain networks.
- Setting up and running networks under simulation using the Mininet tool.
- Proposing, executing, and analyzing the results of an empirical computer science experiment using simulation tools.
Expected Outcome
- The intern will participate in the Hyperledger Umbra labs community meetings, mailing list, and chat room in developing the following:
- Proof of concept configurations, scripts, and documentation for setting up a Mininet network that runs one of the Hyperledger blockchain frameworks under simulation.
- A proposal for a blockchain experiment that can be executed on the Mininet simulation setup.
- Stretch goals:
- Coordinate with the maintainers for a Hyperledger framework project to execute a useful experiment (e.g. running at different scales 10, 100, 1000 nodes) and providing an analysis report and/or blog post describing the findings.
Relation to Hyperledger
We have been seeking a simulation tool that will allow our blockchain platform projects to execute experiments to test consensus algorithms and scaling strategies for years now. Last year we came close to achieving that goal. This year it looks like Mininet is a much better solution to creating that capability.
Education Level
This internship project doesn't have an expected education level but rather a required set of skills. The only requirement is that the intern able to legally work for compensation.
Skills
- Familiarity with the Mininet network simulator.
- Experience using docker images and docker runtimes.
- Experience as an admin of Linux workstations and networks.
- Understanding of IP networking including firewall configuration, network topology and routing, and network addressing.
- Knowledge of a programming/scripting language such as bash, Python, Perl, or Rust.
- Be a self-starter that is comfortable communicating and collaborating asynchronously over chat and email.
Future plans
The Hyperledger Umbra Lab already exists. Once we achieve the ability to run Hyperledger blockchains under simulation, future work will be around designing and conducting empirical computer science research experiments to help direct improvements in design and architecture of future versions of the Hyperledger blockchain platforms.
Preferred Hours and Length of Internship
Part-time, 20 hours per week for 24 weeks starting in the summer and concluding in the fall of 2019.
Mentor(s) Names and Contact Info
David Huseby, dhuseby@linuxfoundation.org.