The Internet of Things and blockchain are considered to be the two main technologies of today. Reducing delays and system connectivity has led to greater flexibility in using applications located on remote devices. The biggest problem with the Internet of Things is that they do not have enough computing resources, insufficient memory, and weak processors that are optimized to consume little energy prevent the use of robust encryption algorithms. The Internet of Things faces many challenges, such as poor interoperability, security vulnerabilities, privacy, and a lack of standards. This paper proposes the use of a software interface as a security gateway architecture for smart devices. The security interface allows the use of stronger cryptographic algorithms to remotely service smart devices. This approach enhances the security of data sent by smart devices by using compatible data encryption algorithms before being forwarded to remote services. In addition to the interface, blockchain technology is used in this paper. The reason for using blockchain technology is to include decentralization and authentication in the network of connected smart devices. The integration of the blockchain itself gives the much-needed anonymity and flexibility that the current Internet of Things does not have. Blockchain protects the interface with its single point control technologies, records all transactions, validates them, and thus provides trust between devices on a single network. The result of this work is the development of an interface that supports smart devices to use any cryptographic algorithm, provides the ability to map IP addresses (Internet Protocol addresses), and thus prevents unauthorized access to the network. In addition to the development of the interface, blockchain technology will be included in the compatible mode so that it is efficient to work on smart devices, taking into account resource limitations.
- Clone repo
npm install
node npm run node1
node npm run node2
node npm run node3
node npm run node4
node npm run node5
Here we start 5 nodes in network
"node1": "http://localhost:3001"
"node2": "http://localhost:3002"
"node3": "http://localhost:3003"
"node4": "http://localhost:3004"
"node5": "http://localhost:3005"
To make sure this nodes can talk to each other we have to register them in network:
- Run post request like this:
POST http://localhost:3001/register-and-broadcast-node
BODY { "nodeUrl": "http://localhost:3001" }
POST http://localhost:3001/register-and-broadcast-node
BODY { "nodeUrl": "http://localhost:3002" }
POST http://localhost:3001/register-and-broadcast-node
BODY { "nodeUrl": "http://localhost:3003" }
POST http://localhost:3001/register-and-broadcast-node
BODY { "nodeUrl": "http://localhost:3004" }
POST http://localhost:3001/register-and-broadcast-node
BODY { "nodeUrl": "http://localhost:3005" }
And then transactions can be done:
POST http://localhost:3001/transaction
BODY {
"nodeUrl": "http://localhost:3005",
"amount": 10,
"sender": "http://localhost:3001",
"recipient": "http://localhost:3005"
}