Skip to content
The Architect edited this page Mar 4, 2025 · 10 revisions

TechStack

Scenario 1

This setup enables the seamless transfer of IoT Sensors data and funds between two distinct nodes. The depicted steps illustrate the blockchain communication and Fides data transfer workflow. The process begins with the presumption that the Data Consumer installed a Service Contract and uses an IoT Sensor from the Shared Devices List. Following this, the Data Consumer kick-starts the process by depositing a sufficient amount of tokens, thus establishing a dedicated fund for the data transactions.

0) Presumptions: The Data Producer in Node X shares IoT Sensor A. The device ID gets added to the Shared Devices List on the Blockchain, and a Smart Contract is created automatically for the device.

A Data Consumer from Node Y installs a Service and selects IoT Sensor A from the Shared Devices List. The Service Contract is initiated at Node Y.

IoT Sensor A sends data to the MQTT broker in node X. Then it is stored in the data storage.

1. The Data Consumer deposits sufficient funds into the IoT Sensor A Smart Contract. Additionally, it provides a key to the Smart Contract for release fund purposes.

2. The Service Contract requests and retrieves the node and IoT Sensor A ID from the Shared Devices List on the Blockchain.

3. The Service Contract establishes an MQTT connection between the Service Contract on Node Y and the MQTT broker on Node X.

4. The Service Contract receives IoT Sensor Aʼs data from the MQTT broker.

5. If the set condition of the Service Contract is correct, the Service Contract sends a notification to the Data Consumer.

6. The Service Contract on Node Y sends a release funds request to the IoT Sensor A Smart Contract. The Smart Contract utilizes the provided key to release funds.

7. The Data Producer requests a withdrawal from the Smart Contract and will receive the payment in their wallet.

1

Scenario 2

This setup enables the seamless transfer of IoT Sensors data and funds between two distinct nodes. The depicted steps illustrate the blockchain communication and Fides data transfer workflow. The process begins with the presumption that the Data Consumer installed a Service Contract and uses an IoT Sensor from the Shared Devices List. Following this, the Data Consumer kick-starts the process by depositing a sufficient amount of tokens, thus establishing a dedicated fund for the data transactions.

0) Presumptions:

The Data Producer in Node X shares IoT Sensor A. The device ID gets added to the Shared Devices List on the Blockchain, and a Smart Contract is created automatically for the device.

A Data Consumer from Node Y installs a Service and selects IoT Sensor A from the Shared Devices List. The Service Contract is initiated at Node Y.

IoT Sensor A sends data to the MQTT broker in node X. Then it is stored in the data storage.

1. The Data Consumer deposits sufficient funds into the IoT Sensor A Smart Contract. Additionally, it provides a key to the Smart Contract for release fund purposes.

2. The Service Contract requests and retrieves the node and IoT Sensor A ID from the Shared Devices List on the Blockchain.

3. The Service Contract establishes an MQTT connection between the Service Contract on Node Y and the MQTT broker on Node X.

4. The Service Contract receives IoT Sensor Aʼs data from the MQTT broker.

5. If the set condition of the Service Contract is correct, the Service Contract chages the state of IoT Actuator B.

6. The Service Contract on Node Y sends a release funds request to the IoT Sensor A Smart Contract. The Smart Contract utilizes the provided key to release funds.

7. The Data Producer requests a withdrawal from the Smart Contract and will receive the payment in their wallet.

2

ServiceContract

FidesInnova introduces a groundbreaking feature – FidesInnova Service Contracts. Service Contracts are scripts designed to encode business logic between IoT devices, enabling them to communicate and share data without a central authority. These contracts perform the same functions as Smart Contracts, specifically within the decentralized IoT domain. Executed through FidesInnova Blockchain Nodes, Service Contracts leverage a Virtual Machine capable of running JavaScript. This functionality enables the creation and execution of intricate interactions between IoT devices and users, thereby enhancing adaptability and functionality within the blockchain.

HowtouseFidesInnova ServiceContracts?

1.FidesInnova Mobile App: FidesInnova Service Market is a hub of diverse services accessible through the FidesInnova Mobile App. It provides users with a variety of prewritten services to explore and implement based on their needs. These contracts enhance IoT device capabilities by automating data exchanges. More advanced users who want to create their own services can use the FidesInnova Web App to write a new service and share it with others in the FidesInnova Service Market.

3

2.FidesInnova Web App: FidesInnova Web App offers a versatile platform for a dynamic programming environment for creating Service Contracts. The FidesInnova Web App empowers users to develop automated solutions for data exchange between devices and users.

4

– Visual and Text-Based Development: The FidesInnova Web App accommodates novice and experienced developers at the same time, allowing code creation through Blockly or JavaScript. The Visual Console, utilizing Blockly, offers a graphical development console, while the Coding Console, based on JavaScript syntax, caters to traditional coding methods.

– Community Collaboration: The FidesInnova Web App promotes the sharing and collaboration of Service Contracts within the FidesInnova community, fostering an environment of innovation and collective growth. Moreover, the Service Creator feature enables the monetization of various data types, promoting income generation by sharing data.

ExampleofFidesInnova ServiceContractsinAction:

– Temperature Sensors: Utilizing the Service Creator within the FidesInnova Web App, users can create a weather map based on living environment data. By selling this data to customers, weather data and Service Contracts can be monetized, showcasing the practical and commercial potential of the FidesInnova ecosystem in leveraging IoT data.

5

Technicaldetails:

Isolated-vm Integration: FidesInnova employs isolated-vm to execute Service Contracts, isolating them from the FidesFidesInnova Blockchain Node. It prevents errors or resource leaks in service contracts from affecting the overall system, ensuring optimal performance.

Multiple Isolated Contexts: FidesInnova will create multiple isolated contexts within a single Node.js process to mitigate the risk of runaway code consuming excessive resources. This approach allows for the independent execution from multiple instances of a Service Contract to enhance system stability.

6

ZKP-enabledJavaScriptExecution

The Fides Blockchain Node acts as the backbone of this operation, providing a robust platform for executing JavaScript programs with ZKP functionality. Through specialized mechanisms and protocols, the node facilitates the seamless generation and verification of ZKPs, enabling users to transact with confidence and privacy in their IoT endeavors.

This integration of JavaScript execution and ZKP generation within the Fides Blockchain Node not only enhances the security and efficiency of IoT transactions but also underscores FidesInnova's commitment to innovation and trust within its ecosystem. By equipping users with the tools to execute intricate business logic while preserving data privacy, Fides ensures that its platform remains at the forefront of decentralized IoT solutions.

In summary, the Fides Blockchain Node's support for JavaScript programs specially equipped for generating and verifying ZKPs represents a significant advancement in the realm of decentralized IoT technology. This feature empowers users to unlock new levels of functionality, security, and privacy within their IoT deployments, further solidifying FidesInnova's position as a trailblazer in the field.

7

ServiceMarket

The Service Market within the FidesInnova ecosystem represents a dynamic marketplace where users can discover, access, and deploy a wide array of pre-written Service Contracts tailored to their IoT needs. Designed to streamline the process of expanding device functionality, the Service Market serves as a one-stop destination for users seeking to enhance their IoT experience.

At the heart of the Service Market lies its diverse collection of pre-written Service Contracts, each crafted to address specific use cases and functionalities. These contracts encapsulate business logic and enable seamless communication and data sharing between IoT devices, all without the need for a central authority. Leveraging the power of Fides Blockchain Nodes, these contracts are executed securely and transparently, ensuring the integrity and reliability of interactions within the decentralized IoT domain.

The Service Market's intuitive interface empowers users to browse through a curated selection of contracts, categorizing them based on functionality, industry, or popularity. Whether users seek to monitor environmental conditions, automate home appliances, or optimize industrial processes, the Service Market offers a comprehensive range of solutions to suit diverse needs.

Installation and deployment of Service Contracts are straightforward, with users able to seamlessly integrate selected contracts into their Fides accounts with just a few clicks. Once deployed, these contracts unlock new functionalities and capabilities for users' IoT devices, expanding their utility and adaptability within the Fides ecosystem.

Moreover, the Service Market fosters a collaborative environment where users can share feedback, suggestions, and even contribute their own custom contracts to the marketplace. This community-driven approach not only enriches the diversity of available contracts but also promotes innovation and knowledge sharing among Fides users.

In summary, the Service Market represents a pivotal component of the FidesInnova ecosystem, offering users a convenient and efficient way to access and deploy pre-written Service Contracts for their IoT devices. By democratizing access to advanced functionalities and fostering a culture of collaboration, the Service Market paves the way for a smarter, more connected future powered by decentralized IoT solutions.

8

MessageQueuingTelemetry Transport(MQTT)protocol

MQTT (Message Queuing Telemetry Transport) and its secure variant, MQTTS, are lightweight messaging protocols designed for efficient communication between devices in the Internet of Things (IoT) ecosystem. Developed by IBM in the late 1990s, MQTT has gained widespread adoption due to its simplicity, low bandwidth usage, and suitability for constrained environments. MQTT operates on a publish-subscribe model, enabling communication between publishers (devices that send messages) and subscribers (devices that receive messages). This model fosters asynchronous communication, allowing devices to publish messages to a central broker without needing to know the identity or location of the subscribers interested in those messages. The protocol operates over TCP/IP, making it highly versatile and compatible with various network infrastructures. Its lightweight nature is attributed to its minimal header overhead, making it ideal for scenarios where bandwidth and power resources are limited, such as in sensor networks or remote devices. MQTTʼs messaging hierarchy consists of topics, which act as channels for message transmission. Devices can subscribe to specific topics or publish messages to them, enabling selective communication and reducing unnecessary data transmission. MQTTS (MQTT Secure) is an extension of MQTT that incorporates Transport Layer Security (TLS) or Secure Sockets Layer (SSL) encryption to ensure secure communication between MQTT clients and the broker. This encryption provides authentication, confidentiality, and integrity, protecting sensitive data from eavesdropping or tampering. The security features of MQTTS mitigate risks associated with transmitting data over unsecured networks, crucial in IoT environments where data privacy and security are paramount. By encrypting the communication channel, MQTTS safeguards against unauthorized access and ensures that only authorized devices can interact with the broker. MQTT and MQTTS find extensive applications across various industries. They are employed in smart home automation, industrial IoT, healthcare monitoring systems, telemetry, and more. For instance, in smart homes, MQTT facilitates communication between sensors, smart appliances, and control systems, allowing seamless interaction and automation. However, while MQTT and MQTTS offer numerous advantages, including scalability and efficiency, they also pose certain challenges. Scalability concerns arise when handling a massive number of devices, potentially overwhelming the broker and affecting performance. Additionally, the reliance on a central broker introduces a single point of failure, necessitating robust strategies for fault tolerance and high availability in critical deployments. Continuous developments in the IoT landscape drive the evolution of MQTT and MQTTS, with efforts directed towards enhancing security, scalability, and interoperability. The ongoing refinement of these protocols aims to address existing limitations and adapt to the changing demands of the IoT ecosystem. In conclusion, MQTT and its secure counterpart, MQTTS, stand as efficient, lightweight protocols pivotal in enabling seamless communication and data exchange in IoT environments. Their simplicity, low overhead, and support for secure communication make them integral components in the proliferation of interconnected devices, shaping the future of IoT applications across diverse industries.

9

Clone this wiki locally