Overview
While there are many use cases for a Distributed App (DApp) solution, one important one that stands out today is Supply Chain Management.
There are three key aspects of a supply chain that are important for businesses:
1. Tracking: Moving goods is a complex process involving different parties with different priorities. Several parameters are important for all parties involved to ensure that the goods are transported efficiently, safely and with no deterioration in quality.
2. Traceability: The ability to track the source or provenance of raw materials or components that go into manufacturing all types of goods from food to apparel to automobiles and aircraft is critical for both safety and regulatory compliance and very often by customer demand.
3. Transparency: As goods move through the chain and change hands between intermediaries, it is important that all parties in the chain are aware of the status at every point during the movement to prevent any collusion between any intermediaries in the chain without the knowledge of the others.
A DApp solution provides all these features and more.
Business Considerations
This is a simplified version of how a real business operates in order to keep the design, development, and implementation easy to understand yet include all the components that go into a larger more complex solution.
There are three participants in the transaction, the Buyer, the Seller, and the Transporter. The Dapp shows how a delivery can be executed autonomously (without any human intervention) using data captured by sensors, decisions and detection using AI/ML, data stored on a Blockchain network, and payments calculated and transferred using Smart Contracts, all using infrastructure and services on the cloud.
A Blockchain network is set up with all participants and the Smart Contract is programmed with the business rules including payment amounts and deployed to the Blockchain.
Order Processing
The Buyer starts the process by creating an order with the required details. The Seller and Transporter update the order with their details. The order is stored in the Smart Contract.
The order details include the amounts to be paid by the Buyer to the Seller and by the Seller to the Transporter. The order details also include various conditions (such as quantity, delivery schedule, vehicle used, transport conditions) and penalties on the Seller and Transporter for violation of these conditions.
Since the system is expected to function autonomously, once the order has been created all the values expected by the order conditions are sent by sensors directly to the Smart Contract without any human intervention.
The Smart Contract tracks the actual received values against the expected values and calculates penalties for violations. When the last piece of data is received, it calculates the total penalities to be imposed on the participants and makes payments to participant accounts accordingly.
Note that the participant paying for the order (in this case the Buyer) must transfer the total order amount to the Smart Contract when creating the order. The Smart Contract holds the amount "in escrow" and makes payments on completion of the contract terms.
The flow diagram below illustrates the user steps to create an order using the web app:
The flow diagram below illustrates the sensor and the parameter values they capture and send to the Smart Contract:
Blockchain networks work on the concept of consensus, which by definition means all participants have to agree to a transaction before it is entered into the Blockchain. For the simplified solution described here, Consensus is implied to mean that all participants agree they have received the same and all the data and not whether the data is accurate or not. Since decision-support data is going to be received from sensors directly with no human input or other processing the data is assumed to be valid and accurate as far as the sensors and microcontrollers are reliable with no human intervention.