BLOCKCHAIN MARKETPLACE

At the height of the blockchain frenzy, I was assigned to work on a research project to see just how useful blockchain technology could be. The team I was working with settled on an e-commerce marketplace. At the time it seemed like the perfect application for this sort of technology. That is at the time. After all things were said and done, we found out that the technology proved to introduce way to many problems that traditional technologies already solved.

Despite that, it was still a valuable learning endeavor that helped me learn a lot about python, computer networking, digital security, and much more. This was mainly worked on between 2019 - 2020.

Major Technologies And Languages Used

That I can talk about of course…

Python
Flask
Asynchronous Computation

A Mostly Native Python Solution

We Tried To Build Everything Ourselves

One of the things that we wanted to make sure was keeping all parts of the application built natively with python. We didn’t want to use any third party packages if we didn’t need to. That proved to be a developmental mistake in my opinion. It did help me learn some pretty cool tricks with python though.

All of the major parts of the application were built with this in mind for to main reasons. To make sure that everyone in the team knew how it was working, and to allow for key optimizations whenever we reached bottlenecks.

A major perk of building everything natively was the final size of the application. All in all, the final download size came out to be only a couple of megabytes. An impressive achievement for what was a completely functional decentralized e-commerce backend solution.

Boatloads Of Security

Making Sure Impersonation Was Minimal

Security proved to be a massive problem with blockchain. Since everything needs to be shared across the network for valid checks to be preformed, creating a system that allowed for owner validation and changes while blocking unauthorized access proved to be a technical challenge.

I was tasked to work on a system that allowed for both. While I can’t talk a lot about how I managed to create a solution for this problem, I can say that is used lots of encryption algorithms.

That tied with a completely custom cross network validation solution, led to a performant output both validated when an owner made a change, and accurately reflected those changes across the network. It also prevented attempts for third parties to tamper with those changes.

Geo-based Network Segmentation

Geocaching

Research into creating a solution that met the needs of upper management had us running into a problem. We wanted updates pushed globally without having every single node in the network constantly running. Upper management wanted that as a feature so they could combat overall network power usage, a major talking point at the time. A solution that I came up ended up being used.

Essentially, having parts of the network update in accordance with the user location, proved to significantly achieve performance goals. Updates were then slowly rolled out to ‘non-optimal’ location zones whenever available.

This paired with a unique system that validated ‘blocks’ added to the network, allowed for everyone in the network to receive the most up-to-date data without always needing to be online.

The Marketplace Aspect

Keep Track Of Bought And Sold Goods

A heavy contribution I also made to this project was developing and managing the ‘storefront’ aspect. I helped create a system that allowed for accurate tracking of goods that were bought and sold throughout the platform.

This was a system that applied to the entire application and every node received up to date information whenever applicable. There were significant challenges however that proved to be factors that couldn’t be overcome due to the nature of how blockchain technology worked.

This aspect alone was one of the main reasons we as a team decided not to pursue this technology further for an e-commerce application. Still, it was a very fun project to be apart of and contribute meaningfully to.