If you came here for our Ethereum wallet, please check out the temporary branch ethereum_wallet.
Weeve platform clients for weeveOS
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.
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).
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 run
command. 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.
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.
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 run
command. 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
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.
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.
- 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.
In case of any questions or problems a good way to get in touch is our gitter channel.