Asset Tracker module prototype
Vehicle realtime location
Blockchain transaction list
Blockchain alert details
Milling the prototype
Milling the prototype
Finale version of the prototype
Final version of the prototype
API Gateway Dashboard
Dynamo Transaction records
Dynamo Transaction Details
IoT Test Console
Since tha asset tracking systems are nowadays a trend because of security, resources optimisation, etc, through the time, we can notice that decentralising the asset tracking with a blockchain we can validate each action of the assets as a transaction, and that validation will done by participants of the chain, making public (in some way) those actions and transactions in a secure space.
This approach allows the organization to reach the CAP theorem, which affirms that there is no system that can cover that, but even is violated by the blockchain. The blockchain can have:
- Partition Tolerance.
Having these 3 main features in an operation, the organizations can ensure that any action, event or transaction over its assets can be stored, validated and propagated avoiding the missing information.
What it does
The system notifies each action or state (geolocation, temperature, speed and so on according the information that the vehicle can provide) and each notification or action has to be recorded as a transaction within the blockchain, so that, it can be tracked and validated (mined) by the blockchain's participants.
Also, any action performed on the assets (like founds transfer to fill the fuel tank) will be done without the participation and validation of a third "transaction broker".
The asset has to have installed a device that obtain the OBDII information, and will be sent via GPRS to the system.
How I built it
We take advantage of the OBDII reader and the GPS sensor to provide details about the route and the current asset operation. Those sensors report data to Amazon IoT platform and each data posted is processed by Amazon Kinesis to evaluate whether the information is relevan or not; if it is elevant, has to notify to a backend service (a set of nodejs miroservices) to handle the alert and notify to the interested persons; at the same time, all the data will be recorded as a transaction in the Multichain network.
Challenges I ran into
The hardware selection wat a challenge in terms of integration with the Amazon ecosystem due the connection I choose.
I ran with various prototypes to ensure that the components will work in a proper fashion, reducing the power consumption, the size and the way we can monitor and update each component.
In terms of IoT always is a challenge the communication between each element of the prototype and also, between the service, because that communcation resides in the carrier network and the volume of information we have to process is not small.
Also, the integration of the blockchain was a challenge because it operates in a whole different way compared with a well known and classic architecture; the implication of have a blockchain running and processing the information in real time was huge, but I got it doing its job.
Accomplishments that I'm proud of
There is a small list of things I got done and I pretty happy to done by myself with no support of any team and with all my knowledge:
- The change of paradigm using (decentralizing) the data/transactions in a blockchain.
- There is no implementations of an asset tracker solution using blockchain.
- I used multichain, that perse is a different approacho of a blockchain compared with ethereum.
- There was a lof of unexpected things in terms of software and electronics that I had to solve in a smart manner to keep the integration seamesly.
- I can (even) design a more formal PCB to present the device in a more stable and semi-final way.
What I learned
How to interact with the Amazon ecosystem (even when I use to use EC2) and how to integrate it with the blockchain. Also I learned how to keep running locally and eventually deploy the architecture in the Amazon Cloud with no big implications.
How to implement a multichain blockchain and integrate it with the "real life", becouse I was developing the solution initially with Ethereum, but due a big implications using the test networks I get involved in multichain, and I noticed that is pretty much a great alternative for a private blockchain implementation.
What's next for Decentralized asset tracker with blockchain
I'll be working on :
- Prototyping more using other microcontrolles, GPS, GPRS and bluetooth modules.
- Creating a platform to handle more information, alerts and connecting it with other existing solutions.