DEV Community

Deepak Kumar Gouda
Deepak Kumar Gouda

Posted on • Updated on

Creating a Blockchain simulator, from scratch

Idea

It was my Bachelor's thesis and I was working with Shashwat and analyzing existing Blockchain based database systems to deploy one at my University. As we delved further into such systems, we realised the painstaking process one has to go through before deploying a blockchain service in production. Starting from identifying a blockchain framework to fixing the configurations to even out the cost of the architecture, you cannot escape the costs i.e. a lot of time and money. Having worked with network simulators like NS3 before, we started pondering, Blockchains are also P2P networks, so why can't we simulate them(sounds easy? We thought the same).

How we built it?

Once we fixed our objective, we searched for existing architectures and although we were not disappointed to find existing simulator frameworks, we were disappointed with their implementations, results and validation. They were simply beautiful on paper, but not validated enough to be relied upon.

So, we began building our simulator using Python, built upon SimPy framework which is an awesome library to build any simulation.
We had to read numerous articles and whitepapers to understand the nuts and bolts of Blockchains and implement the same. And after months of coding sessions, we were finally able to build the core simulator engine with some secondary functions still to be implemented.

With additional functions still under development, we began focusing on the validation criteria. Having worked on Deep Learning projects before, I leveraged the power of neural networks to validate the output of our simulator. Although I would have loved to provide more details, due to academic restrictions I cannot divulge more. Such approach has been one of a kind and we are hopeful that our work can benefit the community.

Link to Code

Due to academic policies, I am bound to keep my work in Private repositories until the thesis is completed. We will make our work public soon, to benefit the community with our work.

Additional Feelings

Cliché alert : it was a rollercoaster ride. Starting a big project, planning the architecture, using open source solutions, getting stuck at a crucial point with deadlines approaching like a speeding truck and some open source developer saving you like Hancock(shoutout to SimPy developers). Love you Open Source community <3 (and stackoverflow ;) You will always be remembered).

Top comments (0)