Iota Streams - Tsangares/iotaworkshop GitHub Wiki
IOTA Streams Dependencies
To help with using IOTA Streams this project use the following libararies from iot2tangle. The purpose of IOTA streams in this project is to store the current state of the chassis.
- iot2tangle Streams Http Gateway: A rust lib that offers IOTA streams through an API.
- iot2tangle Keepy: A nodejs api that connects to the streams gateway and stores a copy of the streams in a mysql database.
Installation
In our setup we used a server on the local area network that loaded the keepy server and iota streams gateway. To learn how to install them just view their README's (Streams Gateway and Keepy).
This POC is agnostic about where the keepy server and streams gateway are located, when you run the iotaworkshop.py
command you pass the keepy address and that will tell the program to store the state in IOTA streams.
python iotaworkshop.py --keepy http://192.168.1.6:3002 --collateral 1000000 --fee 5000 --name hammer
#Collateral set to 1MIOTA, fee set to 5KIOTA
#Tool is a hammer
#Keepy node is on the local area network on ip 192.168.1.6 at port 3002
If this option is not passed, the program will still run without saving its state in the ledger.
Benefits of Streams
By using streams we gain the following benefits:
- Transparency: Anyone can audit the immutable transactions to see if the chassis is acting unfairly and taking more fee than they should. This prevents any type of corruption because it is maximizing accountability for the escrow to perform its contract.
- Status: Without being near the chassis, you can view from any location if someone is using the tool and for how long.
- Tool Identity: You can also view what the tool is in the chassis.
In the IOTA Workshops full potential, there would be a room full of tools that are behind chassis. By storing this data in IOTA streams this data is valuable because a data scientist could record which tools are in demand and the average duration of usage for each tool. This would give a better market demand in certain locations and give manufacturers more information on how their tools are being used.
There are many other reasons why this data would be valuable to people and having it in IOTA Streams enables quick and easy access to this data. In contrast, in conventional systems, it would be in a private data silo and difficult to retrieve. IOTA Streams are an amazing way to utilize the IOTA ledger to its full potential and the Streams Gateway and Keepy allow for it to be integrated into any project with incredible ease.
View the Stream Data
You can view this POC's current state at the webpage: https://iotaworkshop.gradstudent.me/states
The channel for this POC is 0538eddf3842a62cc48f58d706245e3b987896de454da36576d81e32af62d90b0000000000000000:da3d2e69622ed8f730f2ddaa
The data we store from the escrow using streams include:
tool
: The name of the toolcollateral
: The refundable collateral costfee
: The non-refundable feeavailable
: Availability of the tool (if the tool is being used)verification
: The verification condition that is required for a refund of collateralesrow_address
: The escrow addressdeposit_address
: The deposit addressstatus
: A string that represents the current status of the chassis