Makona – decentralised platform for tracking donations to NGOS: their tech stack

The main goal of Makona is to make the flow of assets, more specifically money, transparent. The current state of technology enables us to use existing and newly emerging technologies and by combining them create a powerful platform that gives insight in the flow of money. This article discusses the choices made for the Makona tech stack.

Platform schematic

Makona believes that in the foreseeable future most transactions involving assets will be done on a mobile device. Therefore the platform is built mobile first and the choice of technology should reflect that. Obviously there’s a flow of data between the mobile device and a secure storage that contains (a digital representation of) our users assets.

This schematic shows a very basic overview of the Makona structure

Let’s first zoom in on the Secure Asset Storage because it forms the basis of our technological choices.

Secure Asset Storage

As a platform storing user’s assets, Makona wants to make sure that this is done in a secure way. But besides security we also have some additional demands:

  • Secure
  • Fast
  • Transparant
  • Scalable

Fast is important because when a user wants to access his assets we can’t expect him to be willing to wait very long for access. Also in regards to the last point, scalability, speed of operation is important.

Transparency is one of our core values and is firmly embedded in the Makona DNA. By making transactions transparent the flow of assets becomes clear to users. For example they will be able to see what happens with the money they spend at a certain company.

Assets are transferred all over the world in a variety of kinds. Therefore scalability is important to us as well.

A lot has been written about the rapid rise of blockchain technology. The technology behind this phenomenon seemed to tick a few boxes in our requirements. As can be read here, blockchain enables applications to be:

  • Secure
  • Transparant
  • Immutable
  • Not necessarily fast

I won’t go into details about blockchain security and immutability here, as stated a lot has been written about it and it is a subject that defeats the purpose of this blog. Transparency is a different beast altogether however. Transparancy in terms of blockchain means

all transactions that have ever happened on the network are publicly available for anyone to download and verify using message signature.

A. Kudeish, 20. Jan. 2018 — Medium.com

Transparency how we at Makona see it means something similar but also something different. In our view, transparency is not only all transactions being available but also the flow of transactions (who transfers what to whom) being available. In our specific use case, the flow will not be publicly available but only privately to the person starting the transaction flow. Our choice of technologies should reflect this vision.

Makona found an Secure Asset Store in Hyperledger Fabric. Being a blockchain techology Fabric is secure, transparant and immutable. Addtionally it offers some a host of technologies that enables us to identify the participants in the network thereby forming a permissioned blockchain, or distributed ledger as they like to call it.

Hyperledger Fabric also offers the use of couchdb on the peer nodes speeding up query times and making the blockchain more scalable.

These factors combined pushed us towards choosing Hyperledger Fabric as our Secure Assets Store thereby forming the foundation of our platform.

Schematically speaking our platform now looked like this:

At this stage Makona was able to store assets, query assets and display them to the user. However making the flow of transactions transparant was not one the options. Also the solution was still not very fast. Bring in another emerging technology: Neo4J.

Adding a Graph Database

Neo4J is a so called graph database. Other than a regular database, graph databases store their data in graph structures: a way of representing data using nodes (the actual data) and edges (describing the relations between nodes).

Image rights: Wikipedia

Makona will use this technology to store the relations between users, accounts and the money they contain. Eventually using the power of the edges in the graph to describe the transactions and facilitate our users in looking into the history of their transactions.

By adding Neo4J our stack the global Makona architecture looks as follows:

Conclusion

To sum it all up, Makona harnesses the power of two emerging technologies: Hyperledger Fabric and Neo4J to built an asset tracker that is secure, scalable, transparent and fast. In a future installment of this blog I will dig deeper into the way our tech stack is setup.

Regards, Niels Visser

Check out more Related Articles around Cool Life Hacks