logisticsbeta is a blockchain built using Cosmos SDK and Tendermint and created with Ignite CLI.
The idea solves the problem of food aggregators charging exorbitant prices from the restaurant (vendor) and customer (purchaser) while taking a cut from the delivery riders (transporter), by providing an architecture, enabled by IBC, that introduces effective dispute resolution and incentivizes cooperation.
This is a B2C product aimed at reducing overall costs for customers in the food delivery industry by minimizing the role of intermediaries (food aggregators). It utilizes escrow-based mechanisms that release funds when predefined conditions are met, ensuring fair payments for all stakeholders.
A dispute management platform is also introduced to resolve conflicts among customers, restaurants, and delivery agents. Additionally, location-sharing mechanisms ensure a similar level of service as traditional Web2 competitors.
The current landscape of the food delivery industry includes initiatives like ONDC (Open Network for Digital Commerce), which decentralizes transactions among multiple sellers, buyers, logistics providers, and payment gateways. While ONDC has its own challenges, logisticsbeta aims to standardize its philosophy via IBC (Inter-Blockchain Communication).
The system consists of four main blockchain networks built on the Cosmos SDK:
- Purchaser Chain (Customer)
- Vendor Chain (Restaurant)
- Transporter Chain (Delivery Rider)
- Trade Chain (Transaction Processing & State Management)
Each chain maintains its own data, including customer profiles, vendor listings, and delivery rider details. NFTs for menus, food ordering achievements, and other features can be transferred among chains via IBC.
- Customers interact with the Purchaser Chain to create profiles, mint NFTs, and transfer coins.
- Restaurants and delivery riders interact with Vendor and Transporter Chains, each having unique data structures.
-
Restaurant Menu Creation:
- A restaurant creates an on-chain menu.
- Customers can query this data and initiate an order (trade) by sending a message to the Trade Chain, including the required payment tokens.
-
Order Processing:
- The Trade Chain escrows the tokens, generates an OTP, and sends the details to the Vendor Chain.
- The restaurant accepts the order, triggering a state transition that connects delivery riders on the Transporter Chain.
-
Delivery Rider Pickup:
- The rider reaches the restaurant and provides an OTP.
- The Vendor Chain sends this OTP to the Trade Chain, releasing payment to the restaurant.
-
Final Delivery:
- Upon food delivery, the customer provides another OTP to the delivery rider.
- The Transporter Chain submits this OTP to the Trade Chain, releasing the payment to the rider.
-
Dispute Management:
- An off-chain customer support system handles disputes and ensures fairness in case of order issues.
“Innovation distinguishes between a leader and a follower.” - Steve Jobs
ignite chain serveThe serve command installs dependencies, builds, initializes, and starts your blockchain in development.
Your blockchain in development can be configured with config.yml. To learn more, see the Ignite CLI docs.
Additionally, Ignite CLI offers both Vue and React options for frontend scaffolding:
- For a Vue frontend, use:
ignite scaffold vue - For a React frontend, use:
ignite scaffold react
These commands can be run within your scaffolded blockchain project.
For more information, see the monorepo for Ignite front-end development.
To release a new version of your blockchain, create and push a new tag with the v prefix. A new draft release with the configured targets will be created.
git tag v0.1
git push origin v0.1After a draft release is created, make your final changes from the release page and publish it.
To install the latest version of your blockchain node's binary, execute the following command on your machine:
curl https://get.ignite.com/XxSNiPxX/logisticsBeta@latest! | sudo bashXxSNiPxX/logisticsBeta should match the username and repo_name of the Github repository to which the source code was pushed. Learn more about the install process.
