This project makes use of the Ethereum platform and smart contracts to provide IoT devices with a way of easily allocating resources in Edge blockchain servers as well as prevents malicious behavior by implementing a credit system based on a Virtual Token.
This code is part of the experiments made during my Bachelor Thesis inspired by previous work of Pan et al. [1]
- Blockchain Client: IoT devices are given an easy proxy interface in Python to communicate with the server and ask for resources
- Blockchain Server: Hosts the smart contract and keeps track of clients and allows them to perform allocations of resources like CPU, memory, storage and bandwidth
- Packet Sniffer: Monitors the behavior of the IoT devices and augments/decreases their credit based on the observed behavior. Once the credit of a device reaches zero, it can no longer communicate with any other devices nor with the outside world
- Python 3
- Web3.py
- Scapy
- Py-Solc
- Ethereum
[1] Pan, J., Wang, J., Hester, A., AlQerm, I., Liu, Y., & Zhao, Y. (2018). EdgeChain: An edge-IoT framework and prototype based on blockchain and smart contracts. IEEE Internet of Things Journal, 6(3), 4719-4732., available here