Inspiration
After some exposure to how blockchains worked, I wondered if there was some protocol that could work without consensus. Consensus is generally a very costly mechanism in terms of resources (proof of work) or is incredibly complex (getting a network to agree on a pool of validators in proof of stake). Furthermore, one of its main features, which is to order all transactions, is not always necessary. As I looked deeper in this topic, I found a paper with what I think is a neat solution to all this.
What it does
The application I built is a GUI to demonstrate the key points of the protocol outlined in a paper (reference my Github).
How we built it
It was a lot of searching up stuff at first. After the middle phase of the project, it just was a lot of debugging since I had lots of data structures and I sometimes forgot to translate changes in one to changes in another.
Challenges we ran into
Because I wanted to simulate the asynchronous nature of the system, I had to randomize the order in which every validator in the network received transaction nodes. This meant I had to manage several copies of information of the network. This made updating the network with acks really complex.
Accomplishments that we're proud of
I think this application demonstrates the main idea of the paper well. I also think providing a pseudo-implementation of the protocol helped me understand it better.
What we learned
I learned organizing my code is important (although it is still not the most organized in its current form). Having reorganized some code halfway through the project made the latter parts easier since I didn't have to think as much about the previous parts.
What's next for Asynchronous blockchain demo
I'm hoping that there are other people interested in the paper's idea. Over summer, I plan to do a more complete implementation of the protocol itself with more features that I've thought of.
Built With
- python
- tkinter
Log in or sign up for Devpost to join the conversation.