As Blockchain technologies continue to develop and morph, industries and individuals from across various technological spaces strongly agree with the value and use cases that they propose. From their original applications in the FinTech space (powering cryptocurrencies such as Bitcoin) to their newer, more extensive designs such as Ripple, Ethereum, and Jasper, Blockchains continue to grow in their potential applications. Our team is deeply interested on the value proposition of Blockchain technology in the IoT space, specifically in connected sensors/data-centric devices.
Currently, IoT systems work in flavors of the following:
- A single node pushing/fetching data to an application specific server, for a specific user; Think smart fridge.
- A group of nodes participating in a small eco-system, for a predefined group of users; Think smart home.
What turns our gears, however, was the fast-approaching massive IoT device eco-systems; sharing data, resources, and actionable intelligence, much like the websites and web-services the Internet hosts today. What we (and many others) believe is that the Blockchain will be a powerful and essential platform to leverage when creating these solutions. Herein lies the inspiration for our project.
What it does
Our hack connects nodes (Raspberry Pi’s) to a forked Ethereum Blockchain and allows them to participate as miners and clients for data transactions (uploading and polling). Keeping with the consensus-centric design of the Blockchain, sensor data is validated and only then updated and shared with the rest of the nodes.
How we built it
We created our own fork of the Ethereum Blockchain to optimize it for low-power nodes. We also wrote contracts to store (securely, of course) the data collected by said nodes. Our Pi’s then ran some python to upload their data to the Blockchain and as all the miners on the network came to consensus on the data that had been pushed, their outputs were updated to reflect the changes.
Challenges we ran into
Documentation. Seeing as the Blockchain is a rather new technology with loads of parallel development, it was an understood challenge to find detailed documentation on the lower level changes we implemented in our hack. Cloud hosting seemed to pose another challenge for us since we could not get some ports forwarded successfully. However, running the chain locally was more real-world implementation. Further, we can into some thread blocking issues in python, but with some help from the mentors we got that sorted out.
Accomplishments that we're proud of
It works! We got the Blockchain spun up on a local network, python interfacing with it, and nodes automatically registering, mining, and interacting with the data using Ethereum’s Web3 API.
What we learned
A few of us learned Python along the way too, which was a really good experience; then again, that’s what hackathons are about! We also got some in depth knowledge sharing about what the Blockchain is, how it works, and where there is still room to grow.
What's next for Fideli
We see ourselves taking the things we learned and the code we’ve written to a much more practical and complex use case: Autonomous Vehicles. Stay tuned!