GithubHelp home page GithubHelp logo

tsangares / iotaworkshop Goto Github PK

View Code? Open in Web Editor NEW
7.0 5.0 4.0 136 KB

IOTA Workshop is a proof of concept on how to build equipment rental service based on the IOTA Ledger. The implications of this start from simple vending machines and vending equipment to broadening the craft-production market and increasing employment in areas that are currently inaccessible.

Python 100.00%
iota capitalism socialism automation dao

iotaworkshop's Introduction

IOTA Workshop

Video Demonstation

Here is an introduction video:

IOTA Workshop Demo

Please watch the video demonstration here:

IOTA Workshop Demo

Wiki

Please view the wiki to view the verbose instructions on how the project is setup.

https://github.com/Tsangares/iotaworkshop/wiki

The wiki contains a list of all the dependencies, the hardware we used, wiring diagrams on how to hook everything up, details about how we used IOTA Streams, and instructions on how to setup a pi zero the same way we did for this project.

Statement of Purpose

Previous IOTA applications have shown transfer of digital goods, and electricity. This is the first project to have IOTA step into the material world by enabling people to use physical tools using IOTA. The details of this project offer the details on how to safely rent valuable and useful equipment to anyone through the use of a vending equipment chassis.

The demand for rental equipment exists, through an analysis I did on HomeDepot, on a subset of basic handheld rental tools HomeDepot has a lower bound on revenue of 80 million dollars a year. The conclusion from this, is a non-profit, potentially operated by a DAO, can enter the market by offering tools as a service.

In most converations on automation, it brings up hard feelings of lost jobs. In this instance, to operate a business that offers tools and equipment, which are the instuments of labor, at the lowest cost possible by the implementation of automation, would enable new jobs through their own employment as entrepenurs. The cost and availablity of specialized tools of manufacturing is the barrier to entry for new firms in a market. IOTA Workshop is the proof that this technology can offer the neccesities for anyone to start producing goods without having their wage cut by the employer and the owner of the capital.

Peter Kropotin, in The Conquest of Bread, vivdly depicts the destitute lives of workers born into a stratum unable to own their instruments of labour, "The shafts of the mine still bear on their rocky walls the marks made by the pick of workman who toiled to excavate them. The space between each prop in the underground galleries might be marked as a miner's grave; and who can tell what each of these graves has cost, in tears, in privitations, in unspeakable wretchedness to the family who depenen on the scanty wage of the worker cut off in his prime by fire-damp, rock-fall, or flood?"

To learn more about the ideology about behind the IOTA Workshop, I urge you to take a look at the white paper.

Content

Please view the wiki to see a list of the components and how to compile them together to replicate the IOTA Workshop proof of concept. To view the website and see the current go to https://iotaworkshop.gradstudent.me.

The following is a abstract on how this proof of concept operates. This project contains the logic involved with creaing a vending equipment serivce; fully autonomous and operated using the IOTA ledger. An e-paper display interfaces with the user to guiding them through depositing IOTA into an escrow account. This operates a servo that is pick proof to unlock a box that gives access to an tool which is the instrument of producion. When the user retuns the tool, an RFID sensor will detect and confirm the tool has been returned and will finish the escrow by returning the deposit on the tool. The servo then proceeds to lock the box, disabling people from trying to steal the tool inside.

IOTA Streams

View the wiki page for more info on how this project uses streams.

This project uses iota streams to store the state of the chassis in the iota ledger and keep the prices and fees transparent. To view the log of the escrow from this project please visit: https://iotaworkshop.gradstudent.me/states

The current channel for this POC is: 0538eddf3842a62cc48f58d706245e3b987896de454da36576d81e32af62d90b0000000000000000:da3d2e69622ed8f730f2ddaa

Streams are used to make the escrow transparent. You can see if someone is using the tool inside the chassis, the tool used and the escrow address in holding. By using streams everything is immutable and available for anyone to audit if the chassis is acting in a non-corrupt fair manner.

The data we store from the escrow using streams include:

  • tool: The name of the tool
  • collateral: The refundable collateral cost
  • fee: The non-refundable fee
  • available: Availability of the tool (if the tool is being used)
  • verification: The verification condition that is required for a refund of collateral
  • esrow_address: The escrow address
  • deposit_address: The deposit address
  • status: A string that represents the current status of the chassis

For this POC you can view all the streams states at our website:

https://iotaworkshop.gradstudent.me/states

To view more deails about how we use and implement the streams please take a look at the wiki page on IOTA Streams:

https://github.com/Tsangares/iotaworkshop/wiki/Iota-Streams

Installation

First please check with the wiki on the parts you need and the how to wire the device, then you can proceed on installing the software.

To run this program you need to clone the repo or pull the iotaworkshop.py file, then install the dependencies,

pip install iotaescrow servo_lock pibeep piepd rc522

You will also need RPi.GPIO, which because I was running an arch arm operation system I installed it using the arch aur repo using,

yay -S python-raspberry-gpio

If you are using ubuntu orrasbian you can use,

pip install RPi.GPIO

Dependencies

All of the code used in this project is encapulsated into a easy to use pip package. Many of them have command line interfaces to use the tool and they can all be imported as a module to have enable advanced usage. The following project uses these packages that I built, each of which holds a general purpose beyond this project.

  • iotaescrow: A escrow implementation using IOTA.
  • servo_lock: A general purpose, high level servo controller.
  • pibeep: A buzzer utility that offers a variety of sounds and enables tools to make any sound possible using buzzers.
  • piepd: A e-paper controller that displays text or QR codes using any of the waveshare screens.
  • rc522: An RFID sensor utility used to confirm and verify RFID tags for the rc522 sensor.

Optional Dependencies

This project uses IOTA streams to publish the current state of the ledger. We used,

With these two dependencies installed, when using the iotaworkshop.py if you set the --keepy argument, the escrow data will be stored in streams.

CLI Examples

Here are a few examples on how to run the code through cli,

#The following will request 1.01KIOTA as a deposit, take 10 IOTA as a fee for a hammer
python iotaworkshop.py --collateral 1010 --fee 10 --name "hammer"

#The following will implement iotastreams and store the state of the escrow in the ledger
python iotaworkshop.py --collateral 105 --fee 5 --name "lock pick" --keepy http://192.168.1.100:3002

Images of POC

Here is a video demonstation of the IOTA Workshop chasis: https://youtu.be/LRsAu9jn_a0

The Chassis

iotaworkshop's People

Contributors

tsangares avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.