Table of Contents
DEEP LEARNING + IPFS + ETHEREUM BLOCKCHAIN IN PRACTICE
IPFS or Interplanetary file system
Deep Learning + IPFS + Ethereum Blockchain in Practice
Author: Jack Lodge
IPFS or InterPlanetary File System
Protocol and peer-to-peer network hypermedia protocol for storing and sharing data in a distributed file system. It uses content-addressing to uniquely identify each file in a global namespace connecting all computing devices.
IPFS is the distributed web, and it aims to replace HTTP.
Cryptographic hashes are generated for each file and block within it. Version histories are tracked, and duplications are removed. The network nodes only store relevant content and some indexing information. The searching file asks the network to find nodes containing content corresponding to a unique hash. Then every file is given a readable name using a decentralized naming system called IPNS.
Ethereum is probably familiar to most of us, but in addition to what you know, it is a blockchain-distributed computing platform and operating system. It is for smart contract scripting and DApp development, and a decentralized Turing-complete virtual machine executes scripts using a network of public nodes.
It supports a modified version of the Nakamoto consensus. It is a proof of work consensus on a Byzantine Fault Tolerance peer-to-peer network. In addition, the gas transaction pricing system is used to mitigate spam and allocate network resources. And lastly, Ether cryptocurrency is used to incentivize mining.
These are the benefits.
Immutability means that data cannot be changed by third parties.
Consensus removes the possibility of corruption, tampering, and censorship.
Decentralized security, cryptography, and lack of single failure point.
It has access to Ethereum APIs and IPFS gateways. cam X uses swift-ipfs-api library to access IPFS via Infura remote node, Web3swift library to access Ethereum via Infura remote note, and Ethereum Rinkeby Test Network — proof of authority test network.
An open network video interface forum. It is an Industry forum for facilitating the development and use of a global open standard for the interface of physical IP-based security protocols.
camX is the proof of iOS concept project is written in Swift to demonstrate how Deep Learning, IPFS, and Ethereum technologies can be applied together to enhance normal IP cameras.
The current issues in the security market are video analytics is complex and resource-consuming — single-tasking, video management data storage is finite and expensive, single point of failure, and valuable data is mostly centralized without encryption.
The serverless solution has two object detection engines, Tiny Yolo and Yolo 2, fast and accurate (broad), respectively.
IPFS and Ethereum are used to store encrypted data in immutable blockchain transaction fingerprints.
cam X or Camera management — ONVIF, the demo cameras using the latest Profile T protocol, IP (HTTP or RTSP protocol), Mobile or Device camera. The Object detection — YOLO — you only look once. It is a single neural network rather than an R-CNN (region-based convolutional neural network) — faster. It divides images into regions, predicts the probability of objects, and weights bounding boxes for objects with this data. It has live streaming object detection or FFmpeg video player to decode video streams from network cameras and runs an object detection model on the device.
As well as an alarm viewer. The object classes can be set to trigger “alarms,” which grab a snapshot for storage in IPFS and Ethereum. The timestamp, camera name, engine name, and object name triggered the alarm and snapshot. Snapshots and metadata are saved separately in IPFS, and hashes are returned for each. Hashes are stored in a simple lookup table smart contract.
IPFS can be used to store data in an encrypted and decentralized way.
Ethereum smart contracts can be used to store indices and access this data via Infura (swift-ipfs-api and Web3swift).
Deeplink may wish to follow a similar methodology for phase 1 of its implementation.
However, the use of IPFS does mean that the model is not entirely on-chain.