Skip to content

Latest commit

 

History

History
61 lines (44 loc) · 4.54 KB

README.md

File metadata and controls

61 lines (44 loc) · 4.54 KB

IoT marketplace

Data feed market on the Ethereum blockchain.

master Extends the simplest implementation with more featueres on-chain

Use case diagram

simple

  1. The Provider of the data / the sensor owner registers the sensor on the blockchain
  2. The Buyer finds the sensor through some kind of discovery app and gets it's record from the blockchain
  3. The Buyer reviews records and sends the given amount of ether
  4. The Buyer follows the contract help string on how to get the data
  5. The sensor checks if the Buyer has access

Only getting sensor data off-chain.

TODO

  • Frontend. Header (menu, select account), material design, react? Price in ether, time in minutes. Display contract being stored.
  • One sensor can have many different contracts
  • Tests for all use cases
  • Discovery of available data sources How to aggregate active sensor contracts over time? Oracle outside of the blockchain? Gossiping mellom alle klienter? Eller gi oppgaven til gateways?
  • Rewrite using newly proposed Condition-oriented programming
  • Security audit
  • The contract needs funds to send ether in the withdraw function. Take a 0.1% premium? Has to 1. always be enough to widthdraw. 2. Needs a contract widthdraw so that the contract doesn't hold a lot of unusable ether

Roadmap

  • Reputation - or ratings at least. Is this feed delivering what's promised?
  • Payment Channel using e.g. obscurien's implementation or void4's implementation paymentchannel
  • Evaluate permissioned blockchain where Providers are kinds for optimalization e.g. HydraChain, HyperLedger, MultiChain
  • Test in real environment with real data from a sensor is being purchased
  • Display prices in USD (and other currencies?) Not completely sold on this one. If the price is actually in ether, but shown in dollars can you end up paying a different amount than expected. In the payment channel scenario at least. Without the payment channel the purchase is completed at the same time that the price is displayed. With an accepted price in USD, but actually done in Ether, is it possible to envision a solution where both parties keep the deal running as long as the ratio between eth/usd is within a given threshold.
  • Support USD or other ways of payment e.g. Stipe

Open Questions

  • Who deactivates offline sensors? There's a function for the owner doing it, but we can't rely on the owner to clean up the registry.
  • How to aggregate, find and filter available data feeds?
  • With most features moved on-chain with Payment Channels, how to move the actual data on-chain?

Dependencies

Commands

Run locally

  • npm install
  • testrpc
  • webpack-dev-server

Solution is hosted on http://localhost:8080