- This project focuses on implementing a robust and secure supply chain management system using blockchain technology.
- Smart contracts are employed to track the lifecycle of a product from manufacturing to customer delivery.
- The core security is established through the use of the keccak256() function, generating secure 256-bit hashes at each stage of the supply chain.
- The product lifecycle begins with the manufactureProduct() function, initializing the product and storing manufacturer details in the blockchain.
- productHistory[] is initialized, and the current product data is linked to the manufacturer as the owner.
- Upon purchase by a third-party seller, the purchasedByThirdParty() function is triggered.
- Owner is set to the third party, and the current product data is added to the productHistory[].
- Simultaneously, the product is shipped by the manufacturer (shipToThirdParty()), and details of the third-party seller are recorded (receivedByThirdParty()).
- Online customer purchase involves a series of checkpoints:
- Third Party ships the product (shipByThirdParty()).
- Product is received by the delivery hub (receivedByDeliveryHub()).
- Owner is set to the delivery hub, customer details are stored, and the current state is added to productHistory[].
- Delivery hub ships the product (shipByDeliveryHub()).
- Product is received by the customer (receivedByCustomer()), and the final state is recorded in productHistory[].
- All juncture functions are executed only after complete verification of the product and productHistory[].
- Customer confirmation and acceptance are crucial before updating the state by clicking the receive button.
- Various functions (fetchProductPart1(), fetchProductPart2(), etc.) are provided to retrieve specific data about a product based on its UID and data type (current state or history).
- The use of Solidity cryptographic function keccak256() ensures the integrity and security of certificates generated at each shipping stage.
- Smart contracts in the mainnet are immutable, contributing to the overall security of the supply chain setup.
- productHistory[] serves as a comprehensive record, allowing stakeholders to track the origin and handling of the product at every stage.
- The mainnet security relies on the immutability of smart contracts and the secure 256-bit hashes generated by keccak256().
- Certificates generated at each shipping stage provide an additional layer of security in the supply chain.
- This blockchain supply chain management project ensures transparency, security, and traceability throughout the product lifecycle, offering a reliable solution for businesses and consumers alike