Robonomics project implements a software platform for human-to-machine / machine-to-machine technical && economic communication. Robonomics platform includes a set of open-source packages and infrastructure for Robotics, Smart Cities and Industry 4.0 developers.
Structure of Robonomics Framework followed.
-
Robonomics Node - substrate-based blockchain node with Robonomics Network extensions.
-
Robonomics CLI - console line primitives that make framework functions runnable.
-
Robonomics IO - stream-oriented library with support general set of sensors and actuators (including virtual devices like PubSub or stdin/stdout) that makes hardware interaction easy.
-
Robonomics Protocol - network library that provides primitives to build P2P communication for Industry 4.0 and Smart City cases.
-
Robonomics Frame - a collection of pallets suitable for Smart City and Industry 4.0 cases.
-
Open Robonomics Portal.
When connection is success you can explore Robonomics Testnet
and DAO IPCI
chain.
-
Accounts management: https://parachain.robonomics.network/#/accounts
-
Looking for network events: https://parachain.robonomics.network/#/explorer
-
Transfer test XRT: https://parachain.robonomics.network/#/transfer
-
Send extrinsics to robonomics modules: https://parachain.robonomics.network/#/extrinsics
-
Robonomics wiki pages: https://wiki.robonomics.network
-
Framework Documentation: https://crates.robonomics.network
Robonomics on Substrate binary blobs available as an assets in releases. Latest version you can try to build from source code.
Ensure you have Rust and the support software installed:
curl https://sh.rustup.rs -sSf | sh
# on Windows download and run rustup-init.exe
# from https://rustup.rs instead
rustup update nightly
rustup target add wasm32-unknown-unknown --toolchain nightly
rustup update stable
cargo +nightly install --git https://github.com/alexcrichton/wasm-gc
You will also need to install the following packages:
-
Linux:
sudo apt install cmake git clang libclang-dev libudev-dev
-
Mac:
brew install cmake pkg-config git llvm
-
Windows (PowerShell):
# Install LLVM # Download and install the Pre Build Windows binaries # of LLVM from http://releases.llvm.org/download.html
Install robonomics node from git source:
cargo install --force --git https://github.com/airalab/robonomics --tag v0.18.2 node-cli
Run node in Robonomics Testnet:
robonomics
Or run your local development network:
robonomics --dev
Currently Robonomics on Substrate testnet is maintained by developers but anyone can support the project by several ways described below.
You can support the network just by launch the node. Every additional full node of blockchain helps it to be more sustainable and fault tolerant. Robonomics node binaries is available on releases or could be build from source.
For nodes that can be online 24/7 also available most important role on chain - block producers or briefly validator. Robonomics on Substrate use NPoS algorithm for choosing block production accounts. For this reason if you have any stake in testnet XRT then you can try self in block production.
-
Launch node and wait for synchronization.
robonomics
-
Generate session keys during RPC call at Toolbox page:
-
Submit RPC call
author:rotateKeys()
and copy result, it will be required later.
-
-
Restart node in validator mode.
robonomics --validator
-
Generate accounts at Account page:
-
create
stash
usignSchnorrkel (sr25519)
crypto; -
create
controller
usingSchnorrkel (sr25519)
crypto.
-
-
Request testnet XRT in our Matrix room.
-
Transfer testnet XRT to
stash
and a little bit tocontroller
account. -
-
call
New stake
forstash
andcontroller
accounts; -
call
Set Session Key
for result account pair and paste session key given in step before; -
call
Validate
action.
-
-
Check Validator List, at new Era validator set will updated.
Especially to make hardware interaction easy we introduce robonomics_io crate. This crate implements two kinds of devices: source
- device that intended to read a data and sink
- device that intended to write data. This approach suits the pipelines paradigm well and implemented in Robonomics CLI as io
subcommand.
$ robonomics io
robonomics-io 0.18.0
Run I/O actions using Robonomics Framework.
USAGE:
robonomics io [FLAGS] [OPTIONS] <SUBCOMMAND>
SUBCOMMANDS:
help Prints this message or the help of the given subcommand(s)
read Read information from device
write Write information into device
For example, the sentence that simple read value from Nova SDS011 sensor is followed.
$ robonomics io read sds011
{"timestamp":"1588090281","pm25":0.5,"pm10":1.5}
Is it also possible to combine IO actions to get something useful, like this:
$ robonomics io read sds011 | gz | robonomics io write pubsub my-sensor-data
The sentence above reads JSON values from a sensor, compresses it using gzip, and publishes it into my-sensor-data
topic.
Special feature ros
helps to use Robonomics Substrate modules in ROS-enabled cyber-physical systems.
-
Install ROS using instruction.
-
Import ROS environment:
source /opt/ros/melodic/setup.bash
-
Build with
ros
feature:cargo build --release --features ros --bin robonomics