Identity of Things (IDoT), the identity management for things, is, considering the fast-growing number of connected devices, an important research topic. An enabling technology for IDoT are Distributed Ledgers: Using Distributed Ledgers should foster the independence of a subject (Self Sovereign Identity – SSI) and thus address data security, data privacy and manipulation possibilities.
In the supply chain identifying and tracking subjects helps to make processes more traceable and effective. This application illustrates the concept of a IOTA-based tracking system. Visit my other repository IOTA-Raspberry-API to see the second part of the implementation.
Architecture
The following functions could be part of the tracking system:
- Authenticate a tracking device ✔️
- Register a packaging unit in order to track it ✔️
- Register a freight containing multiple packaging units
- Fetch the tracking data from the tangle and display it ✔️
npm install
npm run serve
npm run build
npm run lint
Prerequisites
- NodeJS installed
- Developer account on remote.it to connect this app to your Raspberry Pi
- Firebase hosting to host your app
- TomTom API key
Installation
You can download this repo and run npm install to install all dependencies automatically.
All dependencies are visible in the package.json file.
Add a .env file with the following content:
VUE_APP_REMOTEIT_DEVELOPER_KEY=[your remoteit developer key]
VUE_APP_REMOTEIT_USERNAME=[your remoteit username]
VUE_APP_REMOTEIT_PASSWORD=[your remoteit password]
VUE_APP_REMOTEIT_DEVICE_ADDRESS=[your remoteit device address]
VUE_APP_PUBLIC_KEY_DEVICE=[a public key to check the JSON Web token of your iot device]
VUE_APP_SEED=[IOTA seed to register a packaging unit]
VUE_APP_SIDE_KEY=[IOTA side key to register a packaging unit]
VUE_APP_GNSS_SEED=[IOTA seed to fetch the tracking data]
VUE_APP_TOM_TOM_KEY=[your tomtom API key]
The remote.it device address is the service ID of your device visible in your remote.it account.
To generate a seed, run cat /dev/urandom |tr -dc A-Z9|head -c${1:-81}
Please open an issue for support.
If you are interested in pushing this idea further, go for it! 😊
Please contribute using Github Flow. Create a branch, add commits, and open a pull request.
Credits to the IOTA foundation whose tutorials helped me to realize this project.