This project builds a shipping scenario based on Ethereum and IPFS.
Following four parties are involved in the scenario.
- Admin: Owner of the smart contract. The admin can get/set role of an address.
- Forwarder: The forwarder can create shipping orders and attach shipping order documents.
- Carrier: The carrier can view shipping orders and documents created by the forwarder. After reviewing them, the carrier can confirm the shipping order by attaching a confirmation letter.
- Shipper: The shipper can review confirmation letters and submit shipping instructions.
This project can be deployed on both localhost and Microsoft Azure Ethereum Consortium
- Install go-ipfs, Truffle, Ganache and Angular CLI
- Change variables in data.service.ts
- truffle compile
- truffle migrate
- npm install
- npm start
- Create a private Microsoft Azure Ethereum Consortium with one or multiple members (depending on your budget). Ideally four members can be created for admin, forwarder, carrier and shipper. Smart contracts are shared among members.
- Create consortium bridges to connect members
- Create few VMs and install go-ipfs on them
- Use
ipfs bootstrap add XXX
command to connect IPFS nodes - Make the gateway of one IPFS node public.
- Create a Microsoft Azure Web App
- Change variables in data.service.ts
- Change networks in truffle-config.js
- truffle compile
- truffle migrate
- ng build --prod
- Upload files in /dist to Azure Web App