No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Latest commit 358b68a Aug 6, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
README.md Update README.md Aug 6, 2018

README.md

Join the chat at https://gitter.im/weeveiot/weeveOS

If you came here for our Ethereum wallet, please check out the temporary branch ethereum_wallet.

weeve_clients

Weeve platform clients for weeveOS

How to run

Contents

  1. Introduction
  2. Join Marketplace
  3. Pull Docker Image
  4. Run weeveOS
  5. Exploring the weeve platform
  1. Hardware Recommendations

Introduction

Weeve’s vision is to empower the Economy of Things where IoT machines (or “weeves” thereof) index, process and trade harvested data against digital assets, most notably crypto coins. We envision public or private marketplaces for any form of digital asset ranging from geo-data to electricity or delivery status, where data producers and consumers (resp., buyers and sellers) come together, escrow their supply and demand, and fairly exchange their digital assets for agreed upon prices.

We have designed and developed two foundational technologies - the weeve OS and weeve Platform - to implement the vision of IoT data commercialization. weeveOS is the first lightweight IoT-Blockchain Operating System. It runs on commodity IoT hardware supporting the ARM Trustzone extension and aims at bridging the gap between IoT and Blockchains. It uses cutting-edge security technologies inspired by recent advances in cryptographic research to ensure

  • trustworthy sensing and processing,
  • authentic and confidential transportation, and
  • non-falsifiable value assessment of IoT data.

A bit more concrete, a Trusted Execution Environment (TEE) provides the isolation of security-critical programs from non-security-critical ones. The weeveOS leverages this strong isolation mechanism to shield cryptographic operations and key material storage against corruption of the device. The weeveOS comprises the following technical features in a nutshell:

  • Secure Boot verifying the integrity of the OS at startup
  • Trusted Storage separated from the main system to protect cryptographic key material (e.g., wallet keys to sign Ethereum smart contracts) against extraction
  • Program Isolation to prevent malicious processes from harming crucial processes (e.g., disrupting the execution of cryptographic algorithms)
  • Run-Time testification of processes, e.g., to monitor the generation and processing of IoT data and safeguarding their truthfulness and integrity
  • 3-round communication and battery efficient communication protocol to securely transport digital assets to marketplaces (dubbed MQTTS)
  • Blockchain Wallet isolating the signing keys and signing algorithm
  • Cryptographically secure fair exchange protocol to escrow supply and demand between IoT device through the Blockchain

We refer the reader to the tech white paper for details weeve Whitepaper.

The weeve Platform is the core backend software. It empowers individuals, enterprises or governmental bodies to set up, curate or join existing marketplaces. An example of an energy trading marketplace can be found here weeve marketplace. Once you installed the weeveOS docker, you can register a device on the marketplace and participate in a fair exchange.

Join our Marketplace

Go to dev.weeve.network and register yourself. Now log into the marketplace and go the the MY ACCOUNT -> Device Curator and start the device registration by clicking on the ADD DEVICE button in the bottom-left corner. Choose a name and other preferred options for your new device. At the end of the registration process you will receive a Device ID, which needs to be used in the registration process of the client (see: Run weeve client). You can also copy the Device ID after finishing the registration process by clicking on the devices' name in the device curator. Each device can act as a producer (offering the asset of tokenized energy) or as consumer (demanding tokenized energy for the exchange for ether).

Pull the Docker Image

MacOS, Windows

In case you want to try out our demonstrator on a non-linux-based machine you need to use a linux-based virtual machine. We recommend using our weeve VM to make sure you can use all of our core features. If you using our weeve VM please continue reading section weeve VM.

Before running in the terminal the following case-sensitive instructions, it can be helpful to activate the copy&paste function of the VM via a shared clipboard.

Start the terminal (Shortcut: Ctrl + Alt + T)

Download the latest version of our weeveOS docker image (approx. 1 GB)

sudo docker pull weeveiot/weeveos

Now the container can be run with the docker runcommand. The parameter -p redirects the port to your host machine. You can see the running containers with sudo docker ps -a.

sudo docker run -d -p 1883:1883 -p 1337:22 weeveiot/weeveos

Use ssh to establish a connection into the newly created container:

ssh -Y root@localhost -p 1337

The password is weeve

Please go on with the Run weeveOS section.

Note: Each VM simulates an IoT device. If you intend to connect multiple devices to the marketplace demonstrator, you have to clone the VM.

Weeve VM

The weeve VM comes with all dependecies and simple commands, to make sure that you can get started immediately (the root password is weeve).

Start the terminal (Shortcut: Ctrl + Alt + T)

Download the latest version of our weeveOS docker image (approx. 1 GB)

pull_weeveos

Now the weeveOS needs to be started

run_weeveos

To connect to the weeveOS just use the command

start_weeveos

The password is weeve Please go on with the Run weeveOS section.

Linux

Make sure docker.io and ssh is installed on your (virtual) machine. Download the neccessary dependencies:

sudo apt install docker.io ssh

Download the latest version of our weeveOS docker image (approx. 1 GB)

sudo docker pull weeveiot/weeveos

Now the container can be run with the docker runcommand. The parameter -p redirects the port to your host machine. You can see the running containers with sudo docker ps -a.

sudo docker run -d -p 1883:1883 -p 1337:22 weeveiot/weeveos:latest

Use ssh to establish a connection into the newly created container:

ssh -Y root@localhost -p 1337

The password is weeve

Run weeveOS

You are now connected to the docker container via ssh and you are already in the right folder to get started.

Press c to boot weeveOS with in the qemu prompt. Press Enter to start the terminal.

To start the registration process execute the program register (Type in register in the "normal world" terminal). When prompt enter your Device ID generated from the weeve marketplace (you can paste from clipboard via Ctrl+Shift+V).

Now you are connected to the marketplace and your device is sucessfully registered. If you want to produce or consume digital assets start the program consumer or producer and follow the instructions.

Exploring the weeve platform

How to see your successful trades?

When two offers (a supply and a demand) are being matched by the weeve Gateway, they turn into a Trade. A trade that has been fulfilled properly (i.e. has been payed for) will be displayed as a Closed Trade in your account page.

What happens underneath the weeveOS?

  • register: generates cryotographic key material in the Trusted Storage for the secure communication with the marketplace, the testification of data, and the Ethereum wallet. Through a challenge-response protocol the marketplace makes sure, that the device is the owner of the keys. For demonstration purposes the marketplace/gateway will transfer 10 ETH on our testchain to every device after its successful registration.
  • consumer and producer: start an energy-trading program on your IoT device. It emulates a process of consuming or producing energy. During each iteration the secure world will inspect the normal world program flow and testify the data. The last step is sending the testified IoT data to our marketplace, where the data will be processed further as tradable digital assets
  • unregister: clears the credential store with all cryotographic keys and trusted storages.

Contact

In case of any questions or problems a good way to get in touch is our gitter channel.