Introduction
I'm currently working on a project that aims to decentralize OTA updates to IoT Devices. However, since OTA updates is a relatively new field for me, I plan to devote some time to research the topic. 🔬
At the time of writing this article, OTA updates are absolutely necessary for IoT devices in terms of security 🔒 and stability. It is essential for the companies to provide after-sales support in terms of updates to their devices for a minimum period of approximately 5 years.
The same statement can be made for any device, but the focus is on IoT devices, which will soon become staple in everyone's homes.
Why are OTA updates necessary?
- Security patches for known vulnerabilities help mitigate attack vectors
- Improves reliability and performance in some cases
- Ensures bug fixes reach all devices that are connected to the internet
- Reduces the need to have technical knowledge to apply the update
Methods of delivering the update
There have been multiple methods to deliver updates to devices, but it seems that it all boils down to three. Organizations will tend to use the method that fits their business needs best.
-
Edge To Cloud (E2C)
The connected device receives the update from a remote server. The received package can either be a hardware or software update. This is an apt solution for organizations which expect only a few devices(which are decoupled in use) per household/network. However this increases network overhead and each device should be able to handle an update on their own.Example - Smartphones📲.
-
Gateway To Cloud (G2C)
Devices that are controlled/operated by a central system (gateway) benefit from this type of delivery. The updates for all devices are received by the gateway from a remote server. The gateway then delivers the updates to the devices. This is a good solution for locations that have multiple devices of the same kind. Network overhead is reduced on the devices as well, since the gateway manages the updates for them. This also provides a single point of failure for the entire ecosystem of devices that it manages. Example - A home security system
-
Edge To Gateway To Cloud (E2G2C)
This architecture consists of a mesh of devices, which can either be edge devices or internet-connected gateways. When an update is received on one of the gateways, it broadcasts it to connected edge devices and other gateways as well. This facilitates easy distribution of updates. It also introduces additional complexity for gateways, and requires them to have a resilient connection to other gateways. Example - Field sensors or Buoys
Existing services that perform OTA updates
Advantages of Decentralizing the Distribution
One of the major architectural concerns is the single point of failure that distribution systems suffer from. Sure, you can have a complex internal system that manages it at a high cost, but this doesn't work out too well for startups/smaller organizations that don't nearly have the same financial/engineering capability.
The project I'm working on aims to solve this problem, by leveraging the use of Smart Contracts on Ethereum and decentralized storage on IPFS. Track my progress here.
I am also looking for people that can contribute to the project, You can contact me via LinkedIn
IoT using blockchain is picking up pace, don't stay in the past!
Thanks for reading!