Ambrosus - Supply Chain system software prototype development. We have used Tendermint and React together with Raspberry Pi and MQTT networking protocol to build a prototype of the Supply Chain system tightly coupled with various physical IoT (Internet-of-Things) sensors and secured by Tendermint blockchain protocol. Also, an alternative solution with Hyperledger Sawtooth has been proposed.
We have started from a small prototype where we created a browser front end on React and a backend on Go. This backend has been collecting information transmitted via low energy Bluetooth transmitters formed as a meshed network from various sensors located in cargo containers. Every supply chain project should have a chain of transactions and sensor values are exactly this transactions in Ambrosus. At first place, we have tried Hyperledger Fabric as a well-known solution for supply chain projects. We also tried Sawtooth from the same Hyperledger family. The drawback of these technologies is the requirement to use IBM cloud infrastructure. In a standalone version, both work not so well as expected. Also, there is a huge time lag during the node sync process on every block when the number of nodes rises to 10+. To resolve these two issues we decide to get rid of Hyperledger and switched to Tendermint. Tendermint is a Byzantine-Fault Tolerance blockchain and acts as a state machine replication system. It’s a way faster than Hyperledger and finally, Tendermint fitted our expectations. All data transmitted via MQTT transport protocol have successfully reached blockchain backend, low power Bluetooth also works pretty well for Raspberry nodes. When cargo ship reaching a destination point, receiving party can easily connect to the blockchain and receive all collected information from sensors.